# Section 2 – Scope Gap Analysis

## Vendor registration & management
- Vendor records store only basic identity plus optional contact collections; there are no performance metrics or rating fields, so supplier evaluation cannot happen from the same dataset (`models/vendors.php:6-22`). // TODO: Extend the model and UI to capture vendor scoring data.

## Purchase requisition & approval workflows
- Procurement requests are flat records with a single `status` field and no approval routing metadata (`models/procurement_requests.php:5-17`).
- Workflow automation relies on an unimplemented `ProcurementService`, so requisitions are never auto-routed or budget-checked (`api/services/workflow_steps/CreateProcurementRequestStep.php:51-55`).

## Automated purchase order generation
- The purchase order model only defines storage fields; no PHP service or workflow references `purchase_orders`, so nothing links requisitions, RFQs, and POs automatically (`models/purchase_orders.php:6-13`).

## RFQ management
- RFQs store just vendor and due dates with no templating, distribution, or reminder logic in code (`models/rfqs.php:5-11`).
- No front-end module or workflow sends RFQs to pre-qualified vendors; the router exposes no RFQ UI (`FrontEnd/js/router.js:5-27`).

## Bid collection & comparison
- Quotes are saved without structured terms, lead times, or scoring data, preventing side-by-side evaluation (`models/vendor_quotes.php:6-10`).

## Reporting & analytics
- There is no procurement reporting module registered on the dashboard, so KPIs and cost analytics required by scope are absent (`FrontEnd/js/router.js:5-27`).

## Vendor communication & collaboration
- The repository lacks messaging threads or RFQ discussion handlers; no tables or services mention negotiation or threaded comments (`models/rfqs.php:5-11`).

## Integration with ERP & records systems
- A repository search finds no integration stubs for Epicor, CM10, or other ERP connectors—only schema definitions—so external synchronization is missing (`models/procurements.php:6-12`). // TODO: Confirm target systems and design connector interfaces.

## Real-time RFQ tracking
- There is no polling or websocket channel tied to RFQ updates; the IndexedDB schema only registers static tables without real-time hooks (`FrontEnd/js/core/schema.js:38-46`).
