How do I build a variance vs budget table in Excel?
Every month-end it's the same ritual: export the GL, rebuild the SUMIFS matrix, hand-roll the $ and % variance columns, re-sort by the biggest misses, then find out someone refreshed the pivot wrong. The work isn't hard — it's just manual, repetitive, and one typo away from a wrong number in the board deck. The demo below runs the whole thing on a sample export: one question in, a working SQL query and the finished variance table out.
The gl_2026.csv sample (period…) is registered as a DuckDB table in your browser — the exact engine workspaces use. SQL is always shown.
Running on the sample gl_2026.csv — the question is editable, and the Your own CSV tab registers your file in your browser instead.
How to build a variance vs budget table in Excel — without the manual grind
What the manual version costs you
A scenario column means every account × month needs four SUMIFS (actual, budget, prior year, forecast), plus variance math, plus a flag column for anything off budget by more than 10%. That's an hour of formula-dragging that has to be re-audited every cycle because it was rebuilt from scratch.
What the demo does instead
Your export becomes a DuckDB table in the browser. The question becomes a conditional-aggregation query (SUM(amount) FILTER (WHERE scenario = 'budget')) with $ and % variance columns and the biggest absolute budget variances first. The SQL is shown — you can copy it into your own tooling or edit it inline.
Then it becomes an artifact
In a workspace, that query saves as a re-runnable artifact with a share link: next month you drop the new export on it and the same table regenerates. The variance table stops being a rebuild and becomes an asset.
Common questions
Does this work on my own GL export?
Yes — the free demo tab accepts your own CSV/XLSX, registered locally in your browser (DuckDB-WASM). Column names like scenario/version, period/month and account/account_code are matched automatically; nothing is uploaded.
What if my scenarios are named differently (e.g. 'PY' or 'Plan')?
The engine profiles your columns and detects which scenario values exist — actual, budget, prior year/PY, forecast/plan are all recognized. Detected values drive the FILTER clauses in the generated SQL.
Is it really free?
The demos are free and need no signup. A free workspace gives you 10 questions a day on files up to 10 MB; Pro is $15/mo (or $99/yr) for 100 MB files and unlimited questions.
Run this on your own export, every month
Free workspace: 10 questions/day, files up to 10 MB. Pro $15/mo ($99/yr) for 100 MB. Your files never leave your browser.
client-side by design SQL always shown
More live demos
How do I pivot headcount from an HR export?
Stop hand-filtering termination dates in Excel. Ask for the headcount pivot in plain English — active heads by departmen…
How do I merge ERP exports into my planning model?
ERP exports never match the planning model's keys. Join the GL to your dept map, re-key accounts to planning names, and …