BC master (dispatcher). High-altitude master for the 4th pillar — the system that runs between annual NetSuite pricing locks. NS holds locked annual prices; bid season runs all year between annual rolls. Three intake paths converge on the customer-pricing build → quote → NS push lifecycle: Path 1 email intake at bids@ai-globalfoodsolutions.co (R632 consolidated pricing@ into the dashboard alongside bids@); Path 2 direct chat — 11 skill workflows under Bids_and_Customer_Pricing/Prompts/, HITL-gated per ADR-031; Path 3 July 1 rollover — the SY26-27 anchor at 2026-07-01, operator surface is the NetSuite Price Roll 26-27 tab (R612). Scope: 127 commercial items × 8 brands, 14 USDA commodity items, 69 active customers, 4 regions, 44 external bids. Trace thread: customer + SY-version (e.g. ACC Distributors / SY2627-v2.5) — analogous to the SO PO# thread. Live tool: gfs-pricing.pages.dev.
Dashboard surfaces (as of R632 / 2026-05-27): Dashboard · Intake (Bid Intake, Pricing Requests) · Pricing (Customers, Bids + Pipeline split R624, Item Catalog, Price Matrix, Regional Pricing, Programs R619) · Analytics (Price Analysis, Coverage Map, Distributor Map) · Tools (Quote Compare, NetSuite Price Roll 26-27 R612). The Pipeline tab features a GitHub-style activity heatmap (R628) of all bid events; Programs is the bill-back / rebate layer between quoted pricing and NS-settled cost.
bids@ai-globalfoodsolutions.co (HITL on auto-customer-match). Path 2 direct chat (Mike kicks off). Path 3 July 1 rollover (annual flip).src/email.ts parses → proposed_actions row0 5 1 7 * or manual /api/bid/rollover/startcustomer_id + sy_version (e.g. ACC Distributors / SY2627-v2.5)customers · name_synonyms.json · bid_customers · bid_quote_versionsBids_and_Customer_Pricing/Prompts/. Each is a contract; HITL-gated per ADR-031.commercial_items.json (127 items × 8 brands) · commercial_regional_prices.json (4 regions) · per-customer customer.json · External_Bids/bids_log.json (44 bids)bid_customers · bid_items · bid_regional_prices · bid_external_pipeline · bid_reviews · bid_programs · bid_price_snapshots · bid_quote_versionsPOST /api/ns/push/named-price-list?preview=false&confirm=truecustomer_id · X-Edit-Tokenevents.bid.namedlist_pushed per customer · events.bid.rollover_completed for the cohort| kind | name | purpose |
|---|---|---|
| Mailbox | bids@ai-globalfoodsolutions.co | Path 1 inbound bid intake |
| File (folder) | Customer-Pricing/commercial_items.json | 127 commercial items × 8 brands |
| File (folder) | Customer-Pricing/commercial_regional_prices.json | 4-region pricing grid |
| File (folder) | Customer-Pricing/<customer>/customer.json | per-customer config + SY-version state (69 customers) |
| File (folder) | Customer-Pricing/External_Bids/bids_log.json | external bid pipeline log (44 bids) |
| File (folder) | Bids_and_Customer_Pricing/Prompts/ | 11 skill workflow definitions (Path 2 direct chat) |
| Mailbox | pricing@ai-globalfoodsolutions.co | Path 1 sibling inbox (consolidated into Intake R632) |
| Dashboard tab | NetSuite Price Roll 26-27 | operator surface for the July rollover (R612, variance flag R616) |
| Dashboard tab | Programs | bill-back / rebate layer between quoted price and NS-settled cost (R619) |
| Dashboard tab | Bids · Pipeline | R624 split — Bids = table+detail; Pipeline = chronological feed + heatmap (R628) |
| File (output) | Customer-Pricing/<customer>/quotes/<sy_version>.docx | per-customer per-SY quote |
| File (output) | Customer-Pricing/STATUS.json | per-customer freshness metadata |
| D1 table | bid_customers | normalized customer identity (69 active) |
| D1 table | bid_items | 127 items × 8 brands mirror |
| D1 table | bid_regional_prices | 4-region grid |
| D1 table | bid_external_pipeline | 44 external bids tracked |
| D1 table | bid_reviews | 23 .md analyses linked |
| D1 table | bid_programs | HPS MAP GPO allowance program (SY2526 / SY2627) |
| D1 table | bid_price_snapshots | line-level price snapshot per (customer, SY-version) |
| D1 table | bid_quote_versions | SY-version per customer · is_latest=1 drives rollover |
| Endpoint | POST /api/bid/rollover/start | manual trigger for the Jul 1 path |
| Endpoint | POST /api/ns/push/named-price-list | NS write-back per customer (preview + confirm) |
| Endpoint | POST /api/proposed-actions/bulk-decide | cohort approve / reject / subset |
| Workflow | prepare_next_school_year | Path 3 driver |
| Durable Object | PushMutexDO | prevents concurrent NS writes per customer |
| Code path | src/email.ts | Path 1 inbound email pipeline (incl. bids@) |
| Live tool | https://gfs-pricing.pages.dev | the visual Bid Center dashboard |
bids@ + pricing@ inboxes consolidated into the dashboard Intake group (R632). HITL still gates everything; classifier confidence tracked.