Plain-language questions
Ask for budget variance per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
KPI · Finance
Budget variance is the difference between actual figures and the budget for the same period, in euros or as a percentage of the budget. You calculate it per account group, cost centre or department, usually per month and cumulatively for the year. It shows early on where reality departs from the plan and where you need to act.
Absolute: actual − budget. Relative: (actual − budget) ÷ budget × 100%
For the first quarter of 2026 Acme Groothandel budgeted €3,000,000 of revenue and €210,000 of other operating expenses. Actual revenue was €2,850,000 and other operating expenses were €231,000. The revenue variance is €2,850,000 − €3,000,000 = −€150,000, or −5%. The cost variance is €231,000 − €210,000 = +€21,000, or +10%. Both variances are unfavourable.
Fictitious figures for Acme Groothandel, a sample wholesaler.
For revenue a positive variance is favourable, for costs it is unfavourable, so label every variance as favourable or unfavourable. Look at the cumulative variance for the year to smooth out timing shifts between months. For large variances, find the cause: volume, price, timing or an error in the budget itself.
SQL & DAX
Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.
WITH actual AS (
SELECT date_trunc('month', entry_date)::date AS period_month, account_group, SUM(amount) AS actual
FROM gl_entries
WHERE entry_date >= date_trunc('year', current_date)
GROUP BY 1, 2
)
SELECT b.period_month,
b.account_group,
b.amount AS budget,
a.actual,
a.actual - b.amount AS variance,
ROUND(100.0 * (a.actual - b.amount) / NULLIF(b.amount, 0), 1) AS variance_pct
FROM budgets b
LEFT JOIN actual a ON a.period_month = b.period_month AND a.account_group = b.account_group
WHERE b.period_month >= date_trunc('year', current_date)
ORDER BY b.period_month, b.account_group;Budget Variance = SUM(GL[Amount]) - SUM(Budgets[Amount])
Budget Variance % = DIVIDE([Budget Variance], SUM(Budgets[Amount]))In ENABLE
Ask for budget variance per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.
Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.
With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.
FAQ
Subtract the budget from the actual figure; for a percentage, divide that difference by the budget. With actual costs of €231,000 against a budget of €210,000, the variance is €21,000, or 10% over budget.
The budget is the plan set at the start of the year, the forecast is the current expectation for the rest of the year. Compare actuals with budget to see how far you are from plan, and with forecast to check whether your expectations hold.
A variance is favourable when it improves the result: more revenue or lower costs than budgeted. Lower costs are not always good news, though; they can also mean planned activities have been postponed.
In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.