Americana Foods — case file

Americana Foods

ANOVA collections suite (PRD_ANOVADispatcher + PRD_ANOVACollector + PRD_ANOVAMissingData + PRD_ANOVAFinalConsolidator) · 39 nodes · FinanceIn production

Runs daily receivables collection off SharePoint Excel: sends the day's dunning batches per the collection calendar, reads every reply, extracts payment data, chases missing information, writes the collection state back into the workbook cells, and consolidates the day's outcome. — Daily 09:34 UTC trigger; in the 30-day window to 2026-08-10: dispatcher 31/31 completed, final consolidator 31/31, missing-data chaser 30/30, collector 25/25 — 0 failures across the suite (a 2026-08-28 correction: it runs daily, not the earlier-reported 24 tasks per fortnight)

ANOVA collections suite (PRD_ANOVADispatcher + PRD_ANOVACollector + PRD_ANOVAMissingData + PRD_ANOVAFinalConsolidator)no measured cost
1
Dispatcher (19 nodes) reads file index, collection calendar, SPOC list, state, and templates from SharePoint Excel; normalizes the calendar in code
2
Determines today's action per department against the dunning calendar and bulk-sends the reminder batches via Outlook
3
Collector (39 nodes, the main graph) catches replies; reads and normalizes SPOC master and collection state in code
4
Identifies the department, parses the attachment (Excel or not), and extracts the payment data
5
Writes updates back into the collection-sheet cells
6
Forwards to L2 or replies asking for exactly the missing data
7
Missing-data chaser (16 nodes) sends wave-based follow-ups; final consolidator (9 nodes) closes the day
Where the money goes · per run
Step typeCountRateSubtotal
Code / integration steps46$0.025$1.15
Model calls · standard tier12$0.1$1.2
Model calls · mid tier8$0.2$1.6
Model calls · top tier4$0.4$1.6
Other13—$0
Rate-card estimate (standard tier)$5.55

Per daily cycle at the credit-rail card (four-tier canon, 03-projects/14-agent-modularization/01-planning/two-axes.md): dispatcher 13 sys×$0.025=$0.325 + GPT4_1 $0.30 + GEMINI_3_1_PRO $0.30 + 2×Sonnet-4.5 $0.80 = $1.725; missing-data chaser 10×$0.025 + 4 Flash×$0.10 = $0.65; final consolidator 4×$0.025 + $0.10 + (GPT40+GPT5_2)×$0.30 = $0.80; collector full-graph ceiling 19×$0.025=$0.475 + 7 std×$0.10 + 4 high×$0.30 + 2 Sonnet×$0.40 = $3.175 (Excel/non-Excel twin branches mean a real reply fires roughly half of it). Suite ceiling ≈ $6.35/day; under the parent 3-tier card ($0.30-class models folded to mid $0.20) the sums are $1.525+$0.65+$0.60+$2.775 ≈ $5.55/day. No measured per-run figure exists anywhere in the repo (catalog cost_basis 'none') — the honest fallback per the catalog meta note is menu price (Dunning ladder $0.30 + Missing-document chasing $0.25 at std) plus the 5-10x-lower at-cost band. The 'other' 13 nodes are exit/no-tool placeholders, unbilled; GPT5_2/GPT4_1/GPT40/GEMINI_3_1_PRO are counted under mid here but price at $0.30 'high' on the repo's own four-tier card.

Models seen in the graph: GEMINI_3_FLASH, GEMINI_25_FLASH, GEMINI_25_FLASH_LITE (bulk sends, sheet reads, code nodes); GPT5_2 (Process-new-input ×2, Build Consolidated Payload); GPT4_1 + GPT4_1_MINI (Department Identifier, conditions); GPT40 (Determine Month); GEMINI_3_1_PRO (dispatcher condition); BEDROCK_CLAUDE_SONNET_4_5 (2 collector routing conditions, 1 dispatcher condition, dispatcher Build Email Payload)

Graph read: All four suite graphs opened and node-classified: 04-agents/americana-foods/prd-anovacollector/agent.json (39 nodes), prd-anovadispatcher/agent.json (19), prd-anovamissingdata/agent.json (16), prd-anovafinalconsolidator/agent.json (9) — breakdown below aggregates the 83 nodes across the suite (catalog 'nodes: 39' counts only the main collector graph).

What a copycat build should know
  • Four cooperating graphs share one SharePoint workbook as the state store — timed dispatcher (daily 09:34 UTC), reply-triggered collector, wave-based missing-data chaser, day-close consolidator; collection state lives in Excel cells written back via SharePointCCAction_ExcelUpdateCellValues, no database.
  • Collector runs twin Excel vs non-Excel reply branches — duplicated normalize/update/reply/send node pairs selected by condition, with UrlToBase64 + S3FileLink handling attachments before extraction.
  • Code-first normalization: 7 deterministic CodeExecutor nodes (~9.7k chars) normalize SPOC master and collection state before any model sees data — 28-finance/01-planning/overview.md names this the pattern to copy (vs Zurich's zero-code graphs).
  • Deliberate tier mixing: Flash on all sends/reads, GPT5_2 only on the two reply-parsing judgments, Sonnet 4.5 reserved for high-stakes routing conditions and the dispatcher's Build Email Payload.
Lessons from the client record
  • Graph flags are unusable for status: prd-anovadispatcher reported isEverExecuted=false on the same day the task probe counted 31 completions — production status comes only from the probe (03-projects/25-media/01-planning/overview.md; 30-module-library/04-outputs/four-line-module-summary.md).
  • The fragment library's '双周 24 任务' provenance caption is stale and understates volume — 2026-08-28 correction: the suite runs daily (dispatcher 31/31/0, consolidator 31/31/0, chaser 30/30/0, collector 25/25/0 in the 30-day window) (25-media/01-planning/overview.md line 62).
  • The workspace is littered with superseded builds (anova-c-submissions-collector-old/-test, data-consolidation-agent-deprecated, dep-finalconsolidatormanual) — only the prd-* graphs carry probe volume; a copycat should mirror only those (04-agents/americana-foods/ directory).
  • No measured per-run cost was ever captured for the platform's steadiest daily finance suite — 0 failures across 117 probe tasks but cost_basis 'none'; instrument credits from day one on a rebuild (solution-intelligence/content/agent-catalog.json meta note).
Reusable fragments cut from this agent
  • mediaNormalise Spocs,03-projects/25-media/02-resources/module-library/02-整理格式.md#1
  • mediaNormalise Collection State03-projects/25-media/02-resources/module-library/02-整理格式.md#2
  • mediaNormalise Payload03-projects/25-media/02-resources/module-library/02-整理格式.md#3
  • mediaNormalise Payload not excel03-projects/25-media/02-resources/module-library/02-整理格式.md#4
  • mediaDepartment/s Identifier.03-projects/25-media/02-resources/module-library/03-判断名称.md#3
  • mediaDetermine Month & Item IDs03-projects/25-media/02-resources/module-library/06-结算金额.md#1
  • mediaBuild Consolidated Payload03-projects/25-media/02-resources/module-library/06-结算金额.md#2
  • mediaProcess new input from email03-projects/25-media/02-resources/module-library/08-待办与确认.md#1
  • mediaProcess new input from email (not excel).03-projects/25-media/02-resources/module-library/08-待办与确认.md#2
  • cxAmericana 缺资料追问(生产) · 代码03-projects/27-cx/02-resources/run-steps/05-lookup-查库与取证.md#6
  • cxAmericana 缺资料追问(生产) · 提示词03-projects/27-cx/02-resources/run-steps/07-compose-写回复.md#4
  • cxAmericana 缺资料追问(生产) · 提示词03-projects/27-cx/02-resources/run-steps/08-commit-写回与打标.md#6
Dunning ladderMissing-document chasingSharePoint Excel (direct cell writes)Microsoft OutlookS3

04-agents/americana-foods/prd-anovacollector/agent.json · 04-agents/americana-foods/prd-anovadispatcher/agent.json · 04-agents/americana-foods/prd-anovamissingdata/agent.json · 04-agents/americana-foods/prd-anovafinalconsolidator/agent.json · solution-intelligence/content/agent-catalog.json · 03-projects/25-media/01-planning/overview.md · 03-projects/28-finance/01-planning/overview.md · 03-projects/30-module-library/04-outputs/four-line-module-summary.md · 03-projects/14-agent-modularization/01-planning/two-axes.md

Americana Foods · ANOVA collections suite (PRD_ANOVADispatcher + PRD_ANOVACollector + PRD_ANOVAMissingData + PRD_ANOVAFinalConsolidator)7 stepscase analysed