Help us improve
Share bugs, ideas, or general feedback.
From fpa-essentials
Turns a budget-vs-actual Excel or CSV workbook into a monthly management reporting commentary by computing variances and a bridge, applying a materiality threshold so only meaningful movements are discussed, and drafting clear what/why/so-what narrative for FP&A reporting packs, board decks, and month-end close.
npx claudepluginhub kimonarrow/ledgerskills --plugin fpa-essentialsHow this skill is triggered — by the user, by Claude, or both
Slash command
/fpa-essentials:variance-commentary-writerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill takes a budget-vs-actual (and optionally prior-year) data set and produces the variance analysis and written commentary that goes into a monthly management reporting pack. It computes favourable/adverse variances, builds a contribution bridge from budget to actual, screens movements against a materiality threshold so the narrative stays focused, and drafts commentary in a disciplined...
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
Share bugs, ideas, or general feedback.
This skill takes a budget-vs-actual (and optionally prior-year) data set and produces the variance analysis and written commentary that goes into a monthly management reporting pack. It computes favourable/adverse variances, builds a contribution bridge from budget to actual, screens movements against a materiality threshold so the narrative stays focused, and drafts commentary in a disciplined what / why / so-what structure. It is for FP&A analysts, financial controllers, and finance business partners who own the month-end commentary and want a consistent, defensible first draft.
Provide a tabular file (.xlsx or .csv). The bundled sample samples/budget_vs_actual_sample.csv shows the expected shape. Useful columns:
entity / cost centre (optional, for multi-unit packs)period (e.g. 2026-05)line_item (e.g. Revenue, Marketing, Salaries)category (Revenue, COGS, Gross Profit, Opex, Finance, Tax, Other) for grouping and bridge logicactual, budget, and optionally prior_year (or forecast) as numeric valuesSign convention: state it explicitly. The sample uses revenue/income as positive and costs as negative (natural sign), so a single arithmetic rule applies throughout. If costs are stored as positives, confirm before computing favourability. Also tell the skill the reporting currency, the units (actuals vs thousands), and the materiality basis you want (see below). If not provided, ask once, then proceed with stated defaults.
actual and budget. Flag blanks, text in numeric columns, and obvious unit mismatches (e.g. one row in thousands, the rest in units).For each line, compute against budget (and against prior year if supplied):
Variance = Actual - BudgetVariance % = (Actual - Budget) / |Budget| (guard against Budget = 0; if zero, report the absolute movement and mark "n/m" for the percentage).Variance > 0 on natural-sign data is favourable to profit; Variance < 0 is adverse (A). Always label F or A; never leave the reader to infer direction from a sign.Decompose the movement in operating profit (or the headline metric) into additive contributions so the parts sum to the total:
sum(line variances) = Actual profit - Budget profit exactly. If it does not tie, you have a sign or scope error.Volume effect = (Actual qty - Budget qty) x Budget price; Price effect = (Actual price - Budget price) x Actual qty); otherwise keep it as a single revenue line and say so.Discuss only movements that matter. Use a dual test and flag a line if it breaches either limb:
For each material line, write a tight three-part note:
Keep each note to two or three sentences. Lead with the largest adverse and largest favourable movements. Quantify everything; avoid vague adjectives ("significantly", "broadly in line") unless paired with a number.
Open the commentary with a two-to-three sentence executive summary: headline metric vs budget (F/A and %), the one or two drivers that explain most of the gap, and the net read-through to the full-year position. This is what an executive skims.
Produce a Markdown management commentary workpaper with these sections:
If the user wants a spreadsheet, mirror the variance table as a CSV (one row per line item, plus subtotal rows) so it can paste into the pack. Keep currency formatting consistent and show the sign convention in a note cell.
Budget = 0 cases are handled with "n/m", not a divide-by-zero or a misleading large percentage.Using samples/budget_vs_actual_sample.csv (Aurora Components Ltd, 2026-05, natural sign, currency units, thresholds: absolute >= 25k or |%| >= 10%):
Executive summary draft: "Operating profit was broadly favourable to budget on a 7% revenue beat, but the gross margin compressed ~150bps and one-off professional fees plus a 30k bad-debt provision absorbed most of the upside. Excluding the likely-one-off advisory spend, the run-rate remains in line; the bad-debt provision warrants a credit-risk follow-up." Each material line then gets its what/why/so-what block, and the bridge confirms the line variances sum to the operating-profit movement.
Disclaimer: This skill is a drafting and analysis aid, not professional advice. It does not provide accounting, audit, tax, investment, or legal advice. All output must be reviewed and approved by a qualified professional before use or reliance.
Part of LedgerSkills - security-vetted Claude Code skills for finance teams. New skills scanned and tested weekly; subscribe on the site.