Restore demo and security capacity
Owner: CRO with RevOps- Measure
- Demo wait 12 → ≤5 days; SE 2 → 4 FTE; security response 15 → ≤8 days
- Test first
- Link demo wait to deal outcome by opportunity ID
Finance Report Analytics turned nine company files into a reconciled diagnosis, a ranked list of likely causes, an executive deck, an offline dashboard with a built-in chatbot, and a Q3 action plan. Every claim cites its source file.
Northstar Flow sells workflow software to mid-sized companies. Q1 landed exactly on its $1.20M target. Q2 came in at $1.08M against $1.50M.
The CRO blamed packaging and price. RevOps pointed to fewer demos. The VP of Product warned that the buyer feedback over-represented difficult deals. The CFO asked whether the target assumed capacity the team did not have.
The job was to weigh these views against the numbers without presenting any single one as proven.
| File | Holds | Class |
|---|---|---|
| sales_performance.xlsx | Target vs actual by month, product, region, team | Measured |
| pipeline_conversion.xlsx | Funnel, demo wait, SE capacity, lost reasons | Measured |
| previous_quarter_review.pdf | Q1 baseline, Q2 plan assumptions, flagged risks | Measured |
| executive_meeting_notes.docx | Leadership views and disagreements | Signal |
| sales_team_call_notes.docx | Five field observations | Signal |
| sales_team_emails.eml | Internal thread on demos and packaging | Signal |
| customer_lost_deal_feedback.pdf | Six selected buyer comments | Signal |
| README.md · presentation_brief.txt | Definitions, cautions, deliverable | Rules |
Each agent reads only what it needs, writes to a fixed place, and stops for approval before the next one starts.
Copies every file from the input folder, checks each copy, extracts text, writes the rules.
input/raw · input_manifest.jsonReconciles totals and measures what changed. No causes allowed.
numbers.json · numbers_summary.mdWeighs each possible cause for and against, labelled and cited.
evidence_summary.mdBuilds the deck, the dashboard and the Q3 action plan.
deck.html · dashboard.html · q3_action_plan.mdBuilds a knowledge base from the findings and embeds a tested chatbot.
chatbot_kb.json · chatbot_tests.mdChatbot skill onlyCopies results to the output folder on your computer and checks every file.
Output/<topic>-diagnosis/You approve each step. After every agent the skill summarises what it found and asks, for example, “Do you want to activate Agent 02 now?”
The skill reads the real sheet names and headers during setup. The minimum is one spreadsheet with target and actual; everything else strengthens the diagnosis.
| Period | Target $k | Actual $k | Gap $k | Won | Avg $k |
|---|---|---|---|---|---|
| Q1 2026 | 1,200 | 1,200 | 0 | 60 | 20.0 |
| April 2026 | 480 | 420 | −60 | 18 | 23.3 |
| May 2026 | 500 | 360 | −140 | 15 | 24.0 |
| June 2026 | 520 | 300 | −220 | 12 | 25.0 |
| Q2 2026 | 1,500 | 1,080 | −420 | 45 | 24.0 |
| Region | Q1 actual | Q2 target | Q2 actual | Q2 gap |
|---|---|---|---|---|
| North America | 740 | 900 | 700 | −200 |
| EMEA | 320 | 400 | 280 | −120 |
| APAC | 140 | 200 | 100 | −100 |
| Total | 1,200 | 1,500 | 1,080 | −420 |
Product and Team sheets follow the same layout. Each view must add up to the same total; the Numbers Agent checks this before using any figure.
| Period | Leads | Qualified | Demos | Proposals | Won | Lost |
|---|---|---|---|---|---|---|
| Q1 2026 | 1,200 | 360 | 252 | 126 | 60 | 66 |
| Q2 2026 | 1,250 | 350 | 210 | 95 | 45 | 50 |
Counts of opportunities entering each stage. The skill never reports these as cohort conversion rates.
| Measure | Q1 | Q2 | Unit |
|---|---|---|---|
| Median demo wait | 5 | 12 | business days |
| Scheduling sample | 92 | 80 | requests |
| Sales-engineer capacity | 4 | 2 | FTE |
| Median security response | 8 | 15 | business days |
SignalA manufacturing prospect waited nearly two weeks for a tailored demo. The buying team moved the decision to July.AE (Midmarket) · sales_team_call_notes.docx
SignalWe needed a clear security response and implementation schedule. The answer came after our vendor selection meeting.Account C, lost · customer_lost_deal_feedback.pdf
SignalThe Analytics package is broader than what we planned to buy this quarter.Account B, lost · customer_lost_deal_feedback.pdf
SignalThe available feedback may over-represent difficult deals.VP Product · executive_meeting_notes.docx
People appear by role and customers as Account A, B, C… in every output, even when the input files contain real names.
About $375k of the $420k gap comes from winning 15 fewer deals than planned; the average deal actually grew 20% on Q1. This split is arithmetic, not a cause.
Analytics −30% and Automation −50% vs Q1; together 71% of the gap. Core Workflow grew 8%.
sales_performance.xlsx › ProductMidmarket is 64% of the gap. Its target was set 36% above its Q1 actual. Regions: North America −200, EMEA −120, APAC −100.
sales_performance.xlsx › Team; RegionDemo wait rose from 5 to 12 business days while sales-engineer capacity was 2 of the 4 FTE the plan assumed.
pipeline_conversion.xlsx › Quarterly Funnel; Execution Signals| Hypothesis | Strength | Evidence for | Evidence against | Test to confirm |
|---|---|---|---|---|
| H1 Sales-engineer capacity limited demos | Strong | Demo wait 5→12 days; demos −17% on flat qualified opps; risk flagged in Q1 review | Sampled median; no deal-level link yet | Match opportunity IDs: demo wait vs outcome |
| H2 Slow security review and start dates | Moderate | Security 8→15 days; timing losses 2→7 in coded sample | Small samples; may share H1’s root | Per-deal security turnaround vs outcome |
| H3 April package scope and price | Moderate | 71% of gap in Analytics & Automation; buyer comments | Wins per proposal flat; average deal up 20% | Deals, deal size and objections by product |
| H4 Target set above capacity | Moderate | Plan assumed 4 SE and ~60 wins | Explains the gap to target, not the drop vs Q1 | Re-run capacity model at 2 SE |
| H5 Competition, budget | Weak | Small rises in coded counts | Competitors won on speed or scope | Code all 50 losses |
| H6 Weak demand | Not supported | None | Leads +4%; qualified −3% | None needed |
H1 and H3 overlap in time: the new packaging launched on April 1 while sales-engineer capacity was at half of plan. The input files cannot separate them, so both go forward as tests, not conclusions.
reports/numbers_summary.md + data/numbers.jsonreports/evidence_summary.mddashboard/…-deck.htmldashboard/…-dashboard.htmlreports/q3_action_plan.mdpresentation/…pptxThis demo runs the same offline answer engine the chatbot skill embeds in the dashboard, loaded with the Northstar Flow findings. It answers only from the diagnosis and says so when it cannot.
Answers come only from this diagnosis. Hypotheses are not proven.
Try: “Why is Q2 down?”, “What happened in June?”, “Automation”, “What will Q3 revenue be?”
_previous folder with a timestamp.Output\sales-down-diagnosis\ ├── dashboard\ deck.html, dashboard.html ├── reports\ numbers_summary.md │ evidence_summary.md │ q3_action_plan.md │ chatbot_tests.md ├── data\ numbers.json │ chatbot_kb.json ├── presentation\ diagnosis.pptx ├── assets\ screenshots ├── run_log.md ├── output_manifest.json └── _previous\2026-09-29_1430\