Purpose
The standard failure at close is writing a confident explanation for a variance
that was actually a posting error, a missing accrual, or a reclassification. Once
that sentence is in the pack, nobody looks again. This skill forces the
reconciliation block to complete before any explanation is written, and treats
every break as a finding with an owner rather than a rounding annoyance.
Data classification
Confidential. Unpublished period financials are price-sensitive in a listed
group and commercially sensitive in a private one. Do not circulate drafts outside
the close distribution list.
STOP CONDITIONS:
| Trigger |
Action |
| Bank account numbers, IBANs, sort codes, card numbers (full or partial), or payment credentials appear in the input |
Stop. Say what category was detected without repeating the value. Ask for the extract to be re-supplied with those columns removed. |
| Customer- or counterparty-identifiable positions, balances, or holdings are pasted |
Stop. Ask for aggregated or de-identified data. Client positions do not belong in a variance workbook. |
| Named individuals' pay or a small enough population that pay is derivable |
Stop. Aggregate payroll to a level that does not identify individuals. |
| The request is to make a figure agree by adjusting the explanation, or to book a balancing entry with no support |
Stop. A plug is a misstatement. Report the break and its size; escalate to the financial controller. |
NON-FABRICATION RULE. Never estimate a figure that was not supplied, never
carry a prior month's number forward as current, never infer a driver from the
account name, and never reuse last period's commentary because the direction
matches. If the trial balance, comparative period, or sub-ledger detail is missing,
state exactly which is missing and stop. An invented variance driver is
indistinguishable from a real one once it is in the board pack.
Prerequisites
- Inputs (mandatory): current-period trial balance or GL extract; the
comparative (prior period and/or budget); the mapping from account to reporting
line.
- Inputs (mandatory for the reconciliation block): sub-ledger control totals
(AR, AP, fixed assets, inventory, payroll), bank reconciliation status,
intercompany matching status, accrual/prepayment schedules.
- Inputs (if multi-currency): the rates used, and which lines are translated at
average versus closing rate.
- Inputs (for materiality): the agreed materiality thresholds. If absent, ask.
Do not invent a threshold.
- Runtime: none required. If the user wants a workbook, code execution and a
spreadsheet library are needed — confirm availability before promising a file.
If a mandatory input is missing, name it and stop. Partial variance analysis with
an unreconciled ledger is worse than none, because it reads as assurance.
Procedure
1. Reconciliation block — complete this before writing one word of commentary
Every row gets a status. NOT PROVIDED is a valid, reportable status; guessing is
not.
| Check |
Passes when |
If it fails |
| TB balances |
Debits equal credits |
Stop entirely. Nothing downstream is valid. |
| AR sub-ledger to control |
Aged debtor total ties to the control account |
Report break and age it |
| AP sub-ledger to control |
Aged creditor total ties |
Report break; check for unposted invoice batches |
| Bank |
Per-account reconciliations complete and reviewed |
List unreconciled items over threshold with age |
| Intercompany |
Both legs agree, in both currencies |
Report the mismatch by pair; do not eliminate a difference into P&L |
| Fixed assets |
Register ties to NBV; additions and disposals agreed |
Report break; check for capex posted to opex |
| Inventory |
Count or perpetual record ties to GL |
Report break and its P&L effect |
| Payroll |
Payroll report ties to GL cost and to the control accounts |
Report break |
| Accruals and prepayments |
Schedule supports the balance; releases match plan |
List unsupported balances — these are the classic hidden P&L |
| Suspense and clearing |
Nil, or fully explained and aged |
Any non-nil balance is a finding, not a variance |
| FX translation |
Reserve movement recomputes from the rates used |
Report; do not net it into operating lines |
Rule: what does not tie out is the finding. Report every break with its
amount, its age, its owner, and whether it is P&L-affecting — above the commentary,
not in a footnote. If total unexplained breaks exceed materiality, state that the
variance analysis below is unreliable and say so at the top.
2. Set the materiality gate
Use both an absolute and a relative threshold; a line moving 300% on a small base
is noise, a 1% move on the largest cost is not. Explain every line breaching
either threshold. State both thresholds in the output.
3. Clean before decomposing
Strip these out first, or every driver below will be wrong:
- Reclassifications and mapping changes → restate the comparative on a like-for-like
basis and show the restatement, or the variance is an artefact.
- Prior-period corrections → separate line, never blended into current performance.
- Acquisitions, disposals, entity or perimeter changes.
- One-off items → separate, and state whether they recur.
4. Decompose the remaining movement
| Driver |
Test |
Evidence needed |
| Volume |
Units changed, rate held |
Unit data for both periods |
| Price / rate |
Rate changed, units held |
Price or rate schedule |
| Mix |
Composition shifted between products, channels or grades |
Split by the dimension |
| Timing / phasing |
Cost or revenue landed in a different period than planned |
The period it moved from and to — both, or it is not timing |
| FX |
Translation or transaction effect |
Rates used; compute at constant currency to isolate |
| Headcount |
FTE and start-date changes |
FTE movement, not a headline number |
| One-off |
Non-recurring event |
The document supporting it |
| Accounting |
Policy, estimate or judgement change |
The paper approving it |
"Phasing" without a stated recovery period is not an explanation, it is a deferral
of the question. Require the month it lands in.
5. Write commentary that survives review
Each material line: what moved (amount and %) · the driver from the table above ·
the evidence · whether it recurs · the owner · the action if any. No line may
combine two drivers into one sentence — split it, or the number cannot be traced.
Self-check before issue: does every material line have a driver backed by evidence?
Does the sum of explained drivers reconcile to the total variance, with a stated
unexplained residual? Is the residual below materiality? If not, say so.
Boundaries
- Not for forward-looking narrative, reforecast, or budget-holder commentary —
that is
finance-budget-vs-actual-commentary.
- Not for individual expense claim decisions — that is
finance-expense-policy-triage.
- Not for statutory accounts preparation, technical accounting judgements, or
disclosure decisions. Those need the reporting standard and a qualified
accountant; this skill will not opine on treatment.
- Not for assembling an audit evidence pack; hand breaks to the internal
audit or assurance function with the trail attached.
Hand-offs
- Receives from: the close checklist and the ledger extract.
- Routes to:
finance-budget-vs-actual-commentary once the actuals are reconciled
and the pack needs a forward view.
- Routes to: the internal audit / assurance function (outside this skill set)
when a break becomes an audit item needing a documented trail.
- Escalates to: the financial controller whenever a break exceeds materiality or a
plug is requested.
1---2name: finance-month-end-variance-analysis3description: Runs month-end variance analysis in the only order that works: reconciliation first, explanation second, so that anything failing to tie out is reported as the finding rather than explained as a variance. Decomposes explained movement into price, volume, mix, timing, FX and one-off effects and refuses to produce commentary when the ledger, sub-ledger or prior-period figures were not supplied. Use at month-end or quarter-end close, when a P&L or cost line moved unexpectedly, when preparing the close pack, or when a reviewer asks why a number changed. Trigger on 'month-end', 'variance analysis', 'why did this line move', 'close pack', 'flux analysis', 'reconciliation', 'period-over-period'. Not for forward-looking budget narrative and forecast implications (use finance-budget-vs-actual-commentary) or for assessing individual expense claims (use finance-expense-policy-triage).4---56## Purpose78The standard failure at close is writing a confident explanation for a variance9that was actually a posting error, a missing accrual, or a reclassification. Once10that sentence is in the pack, nobody looks again. This skill forces the11reconciliation block to complete before any explanation is written, and treats12every break as a finding with an owner rather than a rounding annoyance.1314## Data classification1516**Confidential.** Unpublished period financials are price-sensitive in a listed17group and commercially sensitive in a private one. Do not circulate drafts outside18the close distribution list.1920**STOP CONDITIONS:**2122| Trigger | Action |23| --- | --- |24| Bank account numbers, IBANs, sort codes, card numbers (full or partial), or payment credentials appear in the input | Stop. Say what category was detected without repeating the value. Ask for the extract to be re-supplied with those columns removed. |25| Customer- or counterparty-identifiable positions, balances, or holdings are pasted | Stop. Ask for aggregated or de-identified data. Client positions do not belong in a variance workbook. |26| Named individuals' pay or a small enough population that pay is derivable | Stop. Aggregate payroll to a level that does not identify individuals. |27| The request is to make a figure agree by adjusting the explanation, or to book a balancing entry with no support | Stop. A plug is a misstatement. Report the break and its size; escalate to the financial controller. |2829**NON-FABRICATION RULE.** Never estimate a figure that was not supplied, never30carry a prior month's number forward as current, never infer a driver from the31account name, and never reuse last period's commentary because the direction32matches. If the trial balance, comparative period, or sub-ledger detail is missing,33state exactly which is missing and stop. An invented variance driver is34indistinguishable from a real one once it is in the board pack.3536## Prerequisites3738- **Inputs (mandatory):** current-period trial balance or GL extract; the39 comparative (prior period and/or budget); the mapping from account to reporting40 line.41- **Inputs (mandatory for the reconciliation block):** sub-ledger control totals42 (AR, AP, fixed assets, inventory, payroll), bank reconciliation status,43 intercompany matching status, accrual/prepayment schedules.44- **Inputs (if multi-currency):** the rates used, and which lines are translated at45 average versus closing rate.46- **Inputs (for materiality):** the agreed materiality thresholds. If absent, ask.47 Do not invent a threshold.48- **Runtime:** none required. If the user wants a workbook, code execution and a49 spreadsheet library are needed — confirm availability before promising a file.5051If a mandatory input is missing, name it and stop. Partial variance analysis with52an unreconciled ledger is worse than none, because it reads as assurance.5354## Procedure5556### 1. Reconciliation block — complete this before writing one word of commentary5758Every row gets a status. `NOT PROVIDED` is a valid, reportable status; guessing is59not.6061| Check | Passes when | If it fails |62| --- | --- | --- |63| TB balances | Debits equal credits | Stop entirely. Nothing downstream is valid. |64| AR sub-ledger to control | Aged debtor total ties to the control account | Report break and age it |65| AP sub-ledger to control | Aged creditor total ties | Report break; check for unposted invoice batches |66| Bank | Per-account reconciliations complete and reviewed | List unreconciled items over threshold with age |67| Intercompany | Both legs agree, in both currencies | Report the mismatch by pair; do not eliminate a difference into P&L |68| Fixed assets | Register ties to NBV; additions and disposals agreed | Report break; check for capex posted to opex |69| Inventory | Count or perpetual record ties to GL | Report break and its P&L effect |70| Payroll | Payroll report ties to GL cost and to the control accounts | Report break |71| Accruals and prepayments | Schedule supports the balance; releases match plan | List unsupported balances — these are the classic hidden P&L |72| Suspense and clearing | Nil, or fully explained and aged | Any non-nil balance is a finding, not a variance |73| FX translation | Reserve movement recomputes from the rates used | Report; do not net it into operating lines |7475**Rule: what does not tie out is the finding.** Report every break with its76amount, its age, its owner, and whether it is P&L-affecting — above the commentary,77not in a footnote. If total unexplained breaks exceed materiality, state that the78variance analysis below is unreliable and say so at the top.7980### 2. Set the materiality gate8182Use both an absolute and a relative threshold; a line moving 300% on a small base83is noise, a 1% move on the largest cost is not. Explain every line breaching84*either* threshold. State both thresholds in the output.8586### 3. Clean before decomposing8788Strip these out first, or every driver below will be wrong:8990- Reclassifications and mapping changes → restate the comparative on a like-for-like91 basis and show the restatement, or the variance is an artefact.92- Prior-period corrections → separate line, never blended into current performance.93- Acquisitions, disposals, entity or perimeter changes.94- One-off items → separate, and state whether they recur.9596### 4. Decompose the remaining movement9798| Driver | Test | Evidence needed |99| --- | --- | --- |100| Volume | Units changed, rate held | Unit data for both periods |101| Price / rate | Rate changed, units held | Price or rate schedule |102| Mix | Composition shifted between products, channels or grades | Split by the dimension |103| Timing / phasing | Cost or revenue landed in a different period than planned | The period it moved from *and* to — both, or it is not timing |104| FX | Translation or transaction effect | Rates used; compute at constant currency to isolate |105| Headcount | FTE and start-date changes | FTE movement, not a headline number |106| One-off | Non-recurring event | The document supporting it |107| Accounting | Policy, estimate or judgement change | The paper approving it |108109"Phasing" without a stated recovery period is not an explanation, it is a deferral110of the question. Require the month it lands in.111112### 5. Write commentary that survives review113114Each material line: **what moved (amount and %) · the driver from the table above ·115the evidence · whether it recurs · the owner · the action if any.** No line may116combine two drivers into one sentence — split it, or the number cannot be traced.117118Self-check before issue: does every material line have a driver backed by evidence?119Does the sum of explained drivers reconcile to the total variance, with a stated120unexplained residual? Is the residual below materiality? If not, say so.121122## Boundaries123124- **Not for** forward-looking narrative, reforecast, or budget-holder commentary —125 that is `finance-budget-vs-actual-commentary`.126- **Not for** individual expense claim decisions — that is127 `finance-expense-policy-triage`.128- **Not for** statutory accounts preparation, technical accounting judgements, or129 disclosure decisions. Those need the reporting standard and a qualified130 accountant; this skill will not opine on treatment.131- **Not for** assembling an audit evidence pack; hand breaks to the internal132 audit or assurance function with the trail attached.133134## Hand-offs135136- Receives from: the close checklist and the ledger extract.137- Routes to: `finance-budget-vs-actual-commentary` once the actuals are reconciled138 and the pack needs a forward view.139- Routes to: the internal audit / assurance function (outside this skill set)140 when a break becomes an audit item needing a documented trail.141- Escalates to: the financial controller whenever a break exceeds materiality or a142 plug is requested.