The problem isn't the variance. It's the explanation.
Every FP&A team knows the routine. Close hits day 5. Variance pivot table on day 6. Then four days of chasing line owners for explanations — "why is opex 8% over plan in EMEA?" — assembling the answers into a board narrative, double-checking the numbers, having the controller approve.
The variance numbers are easy. The defensible explanations are not. Most teams spend 70% of close-week time turning columns of differences into sentences a board member can read in 90 seconds.
Three inputs, one draft. Every sentence is hyperlinked back to the source row — the controller verifies in seconds, not hours.
What the co-worker reads.
- Current-cycle forecast from the FP&A model. Read-only export, frozen at lock-down.
- Posted actuals from the GL, post-close. Pulled as-of close-day +1.
- Driver tables — headcount as of period end, FX rates posted, volume metrics from the operational systems.
- Prior commentary from the last 6 months of board decks. Used as style and structure reference, not as fact source.
Nothing else. No emails, no slack, no calendar. Variance commentary doesn't need them and including them widens the security review.
One sentence per material line.
The co-worker scans every P&L line item where the absolute or percentage variance exceeds the configured materiality threshold. For each, it produces one structured sentence:
[Line item] closed [$ amount], [over/under] forecast by [$Δ / %Δ], driven primarily by [driver] — see [citation].
The "driven primarily by" claim is the hard part. The co-worker doesn't speculate — it runs a deterministic variance decomposition (price/volume/mix or rate/efficiency depending on the line type) and only names a driver if that driver explains > 60% of the variance. Below that threshold, the sentence ends with "— driver inconclusive, see detail".
Every number is a link.
In the controller's review queue, every dollar figure in the draft is clickable. Click goes to: the exact GL row, journal entry ID, posting date, and approver. For driver claims, the citation expands the variance decomposition math (price × volume table, FX impact table, headcount waterfall).
This is the single feature that turned controllers from cautious to enthusiastic. The defensibility moves from "I trust the analyst who wrote this" to "I can show the board the exact row that backs every claim, in 4 seconds."
| Claim in draft | Citation type | Click target |
|---|---|---|
| Line total ($) | GL aggregate | SQL query result + posting period |
| Forecast value | FP&A snapshot | Locked model cell + lock timestamp |
| Driver share (%) | Decomposition | Worked math, line by line |
| "Driven by FX" | FX impact table | Per-currency rate movement, $ impact |
"The job stops being 'write the commentary' and starts being 'check the commentary and approve it.' That's a 70% time cut, not a 20% one."
Approval, edit, send — in one screen.
- Open queue. All material variance sentences listed, sorted by absolute $ impact.
- Skim, click-through where suspicious. Most claims will look right because they're sourced.
- Edit in place any sentence that needs softer language for the board context (the model writes accurately but flatly — humans add tone).
- Approve in batch. One click marks all reviewed lines as ready-for-deck.
- Export as the commentary section of the board pack.
The audit log captures: who approved, what the original draft said, what edits were made, source citation IDs. Survives the export — the board pack itself can include source links if you want them visible.
What we measure to know if it's working.
- Close-week hours saved across the FP&A team. We baseline pre-rollout and re-measure month 2.
- % of draft sentences approved without edit. Higher = co-worker is well-tuned. Target: > 60% by month 3.
- Time to defensible answer when a board member asks "what's behind the EMEA opex line?" Pre-rollout: 1–2 days. Post: instant (the citation is in the deck).
Most teams see the hours saved metric land between 8 and 14 hours per FP&A analyst per close. That's not the most interesting number though — the interesting one is the third: turning post-meeting follow-ups into in-meeting answers.
Want this for next month's close?
Most FP&A teams can have a working pilot by close period two. Discovery first — we look at your model, your GL, and your current commentary process before we promise a date.