How to run monthly flux and variance analysis with AI

Finance & FP&A3 AI tools7 steps6 friction points

Monthly flux and variance analysis is the discipline of comparing this month's actuals against the prior month (flux) and against budget (variance), then explaining what moved and why. For most operators, it lands on someone's plate between day 3 and day 10 after month-end close — a recurring obligation that feeds investor updates, board decks, and the next round of budget decisions. It's not glamorous work, but getting it wrong means your team is operating on stale or misleading signals.

The workflow feels like an AI problem because the analytical skeleton is repetitive: pull two columns of numbers, compute the delta, apply a materiality threshold, then write a plain-English explanation for every line that crosses it. That's pattern recognition and structured prose — exactly what language models are good at. Operators who've tried pasting a P&L into ChatGPT and asking for a variance commentary often come away genuinely impressed with the first result.

ChatGPT, Claude, and Gemini can all contribute meaningfully to flux and variance analysis today. They'll read a formatted table of actuals vs. budget, calculate percentage variances, surface the largest movers, draft line-item explanations, and produce a narrative summary ready to paste into a board update. The quality is high enough that most operators stop rebuilding the analysis from scratch in Excel — they're just doing prep work and editing LLM output instead.

Finance & FP&A3 AI tools7 steps6 friction points
AI walkthrough

How to do it with AI today

A practical walkthrough using ChatGPT, Claude, and other off-the-shelf LLMs — what they're good at, what you'll have to do by hand.

Tools that work for this
ChatGPTClaudeGemini
Step-by-step
1 Export your current-month P&L from QuickBooks, NetSuite, or Xero as a CSV or copy the table directly. Do the same for the prior month and your budget. You need three columns minimum: account name, actual, and comparison figure (prior month or budget).
2 Open Claude or ChatGPT and paste the table directly into the chat. Plain text, markdown table, or CSV all work — Claude handles messy formatting better than most; GPT-4o is solid with structured tables.
3 Write a setup prompt that tells the model what you want: your materiality threshold (e.g., flag anything over $5K or 10%), which direction is unfavorable (higher spend vs. budget is bad; higher revenue is good), and the output format you need (narrative memo, table with commentary column, or both).
4 Ask the model to calculate the variance for every line, flag items above your threshold, and draft a one-sentence explanation for each flagged item based on the numbers alone. You'll supply context for items where the number doesn't tell the full story.
5 Review the flagged items. For lines where you know the cause (a one-time vendor payment, a prepaid annual contract, a delayed hire), paste that context back in and ask the model to revise the explanation for those specific rows.
6 Ask the model to produce a final executive summary — 3 to 5 sentences — that captures total revenue variance, total opex variance, net burn impact, and the top two or three drivers. This is the paragraph that goes into your investor update.
7 Copy the output into your reporting template. The model won't format it into your specific slide deck or Notion page automatically, so final assembly is manual.
Prompts you can copy
Here is my August P&L vs. July actuals as a table. Flag every line where the month-over-month change exceeds $3,000 or 15%. For each flagged line, write a one-sentence explanation of what the numbers suggest. Format your output as a table with columns: Account, July Actual, August Actual, $ Change, % Change, Commentary.
Using the variance table above, draft a 4-sentence CFO memo summarizing total revenue variance, total opex variance, net burn change vs. prior month, and the top two expense drivers. Write it in plain English suitable for a board update.
I've pasted my August actuals vs. annual budget prorated to August. Calculate the YTD variance for each line item. Flag anything unfavorable by more than 10% or $5,000. Separate the output into two sections: Revenue and Expenses.
The $18,400 variance in Professional Services is explained by a one-time legal retainer for the Series A process, not recurring spend. Update that line's commentary accordingly and flag it as non-recurring in the summary.
Reformat the variance analysis as a Notion-compatible table with these columns: Category, Budget, Actual, Variance ($), Variance (%), Status (Over / On Track / Under), Notes. Use emoji status indicators.
Reality check

Where this gets hard

The walkthrough above works — until your numbers change, the LLM hallucinates, or you have to re-paste everything next month.

No live connection to your accounting system — every run starts with a manual export from QuickBooks, NetSuite, or Xero, and if the books aren't closed yet, your numbers are wrong before you start.
Context window limits constrain detail — a full chart of accounts with 80+ line items plus three months of actuals can push you against token limits, forcing you to summarize or truncate the data you paste in.
Output structure drifts between sessions — the table format, column names, and commentary style you carefully prompted in July aren't automatically replicated in August; you're re-prompting from scratch each month.
The model has no knowledge of your business context — it doesn't know that your Q3 marketing spike is planned, your headcount variance reflects a backfilled role, or that a vendor invoice arrived late. Every exception requires manual annotation.
Nothing persists — there's no stored version of last month's analysis, no audit trail, and no way to compare this month's commentary against what you wrote three months ago without keeping your own document archive.
Sharing the output requires another manual step — copy to Notion, paste into Slides, email the table — because the LLM has no connection to wherever your team actually reads this information.

Tired of the friction?

Starch runs the whole workflow on live data — no copy-paste, no hallucinated numbers, no re-prompting next month.

See the Starch version →
Starch alternative

The same workflow on Starch

Starch is an agentic operating system — for this workflow, that means an agent builds a persistent variance analysis app connected directly to your live accounting and banking data, so the analysis runs automatically every month instead of starting from a blank chat window.

Starch syncs your QuickBooks data on a schedule — invoices, bills, payments, and journal entries — so your actuals are already in the system when month-end arrives. No export, no copy-paste, no waiting for the books to close manually.
Connect Plaid for bank transaction data alongside QuickBooks for an accounting-level view. The Runway Analysis starter app uses both to calculate real net burn, and you can fork it to add budget comparison columns specific to your chart of accounts.
The Transaction Insights app surfaces month-over-month category trends and flags anomalies automatically — a $2,000 charge that's normally $200 gets flagged without you writing a threshold prompt every month.
Describe the variance report you want in plain English and the agent builds it: 'Build a monthly variance dashboard comparing QuickBooks actuals to my budget by category. Flag anything over 10% or $5,000 unfavorable. Generate a draft commentary column for each flagged line.' That app runs every month on live data.
Once built, the analysis persists — prior months are stored, commentary is version-tracked, and you can compare August's drivers against June's without reconstructing anything. The context your model needed last month is already there.
The Budgeting app (currently in development — request beta access) will close the loop: set your annual budget by category, let Starch compare actuals from your connected accounts continuously, and surface pace indicators so variance analysis becomes a live view rather than a monthly fire drill.
Get closed-beta access →
Toolkit

Starch apps for this workflow

Pick your role

See this workflow by operator

Run run monthly flux and variance analysis on Starch

You're on the list! We'll be in touch soon.