Chapter 03 · Section II · 16 min read
Variance analysis and explanation
A structured workflow for the "why did this change?" question — using the model to generate candidate explanations and the accountant to decide which actually moved the needle.
Half of every management meeting in Nepal is some version of one question: why did this number change? Why did revenue fall 22% at the Pokhara hotel last quarter. Why did the cement trader’s gross margin shrink three points. Why are receivables up forty days at the construction firm when nominal sales are flat. The accountant who can answer that question quickly, with a defensible story, is the accountant who gets the next engagement. The accountant who answers it slowly — or worse, confidently and wrongly — loses the room. This section is about using AI to do the first half of that work faster without surrendering the second half.
Frame the question with structured inputs
The single most common variance-analysis prompt failure is feeding the model two numbers and asking “why did this change?” The model, having nothing else to work with, invents an answer. The answer sounds plausible — it usually mentions inflation, demand softness, and one industry trend — and it bears no relation to what actually happened in your client’s business.
The correct frame is the opposite. You give the model a tightly structured input set: the prior-period numbers, the current-period numbers, and a list of candidate drivers drawn from your knowledge of the business. Candidate drivers fall into a small number of buckets that recur across almost every Nepali engagement: volume (how many units, room-nights, transactions), price (the average realisation per unit), mix (which product or segment dominated), FX (especially for businesses with USD or INR exposure), one-offs (a single large contract, a write-back, a settlement), seasonality (Dashain-Tihar peaks, monsoon troughs, Asadh-end fiscal effects), and regulatory change (a Finance Act amendment, an NRB directive, a customs change).
You list the buckets that plausibly apply. The model’s job is then to walk through them systematically against the numbers you provided, and produce a ranked set of candidate explanations — not a single answer. The accountant’s job is to take that ranked list back to the books and check which candidates actually have evidence.
Ask for candidates, not conclusions
This is the second discipline, and it is what most prompt patterns get wrong. The instinct is to ask the model “what is the explanation?” The better instinct is to ask: “List the five most plausible candidate explanations, ranked by likely contribution. For each, state what data I would need to check to confirm or rule it out.”
That phrasing does two important things. 1. It forces the model into hypothesis-generation mode, which it is good at, rather than conclusion mode, which it is not. 2. It hands the accountant a verification checklist — for each candidate, the exact data lookup needed to test it. The slow part of variance analysis has always been generating the hypotheses; the testing is usually quick once you know what to test. The model takes the slow part down to minutes.
A concrete Nepali example
Make this concrete. A Pokhara hotel reports revenue for Q1 FY 2082/83 (Shrawan-Bhadra-Ashwin) that is 22% below the same quarter the prior year. The partner wants a one-paragraph explanation for the owner by end of day. The numbers themselves are clean — there is no question about what the revenue is. The question is why.
You frame the prompt with the candidate-driver buckets that actually matter for a Pokhara hotel:
“Q1 FY 2082/83 revenue is down 22% YoY. Candidate drivers to consider: occupancy rate (rooms sold / rooms available), ADR (average daily rate), segment mix shift between FIT (free independent traveller) and group bookings, domestic vs inbound traveller share, FX movement on USD-priced bookings, weather and landslide disruptions on the Prithvi Highway and Beni-Jomsom road during the monsoon, and monsoon-season seasonality (Q1 is structurally the weakest quarter in Nepali tourism). List the five most plausible explanations, ranked, and for each state what data I would need to check from our PMS, booking records, or external sources to confirm.”
The model produces a ranked list — typically something like: monsoon seasonality always drives a large baseline drop, but a 22% YoY decline points to additional factors; the Prithvi Highway landslide closures in Bhadra are the most likely incremental driver; inbound share may have fallen if last year’s Q1 had a residual post-pandemic surge that has since normalised; FX is unlikely to be material at this scale; segment mix would need PMS data to assess.
You then take that ranked list and check. The PMS confirms occupancy was down sharply in Bhadra week 2-3 (the landslide period). The booking system confirms inbound share is in line with the prior year. ADR is actually up slightly. The explanation writes itself: “The decline is driven primarily by Prithvi Highway disruptions during Bhadra, compounded by the normal monsoon trough; ADR and inbound mix held steady.” That is a paragraph the partner can put in front of the owner.
What the model did: structured the search. What you did: tested the candidates and chose the story. Neither half of that work is replaceable.
The honest-unknowns rule
There is one more discipline that separates a useful variance-analysis prompt from a dangerous one, and it is the honest-unknowns rule: the model must be instructed, explicitly, that when it does not have data on a candidate driver, it says so rather than inventing.
The default behaviour of a language model is to fill gaps fluently. Ask it “could FX movements explain this?” without telling it the actual FX data, and it will reach for a plausible-sounding range — “given the NPR-USD movement of roughly 2-3% over the period” — without any source for the figure. The 2-3% is invented. It might be right. It might be ten times off. Either way, it has no business in a draft you sign.
The fix is one line in the prompt: “For any candidate driver where I have not provided you the underlying data, do not estimate. Say ‘I cannot assess this without [specific data]’ and list what you would need.” With that line in place, the model produces a list of testable candidates and a list of data gaps — both of which are useful. Without it, the model produces a list of testable candidates mixed in with confident inventions, and you cannot tell the two apart.
This rule applies across the chapter, but it bites hardest in variance analysis, because variance work is the place where the temptation to fill gaps with a plausible story is strongest. Resist it in the prompt and the model resists it in the output.
Check your understanding
Quick check
—In a variance-analysis workflow using AI, which division of labour is correct?
What comes next
Variance analysis is about explaining the past. The next section turns the workflow forward — into forecasts and budgets, where the central risk is the model inventing your business rather than projecting from it. The discipline is the same shape, but the stakes are higher because there is no historical record yet to check the answer against.