## TL;DR
Fix this in Power BI by acting on the exact problem first: check the relationship between the budget table and the date table in Power BI, make the budget grain match the actuals grain by account and month, rewrite the variance measure so it reads actuals and budget in separate calculations and subtracts them, and test the measure on one account and month with known GL actuals and approved budget figures. Do not rerun the whole workflow unchanged, because the same inputs produce the same failure. Prove the fix on one account, period or department first, then rerun the full scope and reconcile the results.

```text
Power BI budget vs actual variance error DAX measure returns blank
```

## Use this when
- The operation in Power BI fails with this exact problem: Power BI budget vs actual variance error DAX measure returns blank.
- The same failure repeats on retry with unchanged inputs.
- A variance report, forecast, commentary or board pack step is blocked until this is resolved.

## Not for this skill when
- The notice is a platform outage from the vendor. Resolve that first, then return here if this problem remains.
- The operation completes and you only disagree with a business judgement such as the budget itself or a materiality call. That is an FP and A decision, not this failure.

## Steps
1. Reproduce the failure on one named account, period or department in Power BI and record the full problem text plus the account, period or report involved. Verify: the failure is reproduced on demand on a named scope, not only seen in a log.
2. Apply the specific fix for this problem: check the relationship between the budget table and the date table in Power BI, make the budget grain match the actuals grain by account and month, rewrite the variance measure so it reads actuals and budget in separate calculations and subtracts them, and test the measure on one account and month with known GL actuals and approved budget figures. Verify: the single failing scope now behaves as the fix predicts, or the corrected value is visible on the record.
3. Check neighbouring accounts, periods or departments that share the same mapping, template or load, because this class of failure rarely affects only one scope. Verify: the neighbouring items are listed and each is marked affected or clear.
4. Rerun the original operation in Power BI on the previously failing scope, watching for the same problem rather than assuming success from a quiet log. Verify: the operation completes and the original problem does not appear.
5. Compare the result against the source of truth, the GL actuals, the approved budget or the planning system record, so a silent partial success is caught. Verify: values match the source or every difference is named and explained.
6. Record the fix, the triggering input and the verification result on the report or close file so the next occurrence is recognised immediately. Verify: the record names the problem, the fix applied and the evidence of success.

## Variant phrasings

### Power BI budget vs actual variance error DAX measure returns blank
The verbatim form searchers paste from the console, report or run log. Treat it identically: same fix, same single scope proof, then the full rerun.

### How to fix - Power BI budget vs actual variance error DAX measure returns blank
The how to phrasing for the same failure in Power BI. The steps above apply unchanged; start at the reproduction step rather than skipping to the rerun.

### Power BI troubleshooting for this failure
The symptom first phrasing used when the console hides the full problem. Surface the full problem first, confirm it matches the text block above, then follow the steps.

## Why it happens
Budget and actuals usually sit at different grains or share no active relationship through the date and account tables, so filter context from the visual reaches one table and returns blank for the other, and the subtraction then renders blank instead of a variance.

## Edge cases
- The period was closed, the budget was reloaded or the org mapping changed after the failing run started. Refresh the scope state and reapply the fix against the current values, not the values from the failed run.
- The single scope proof passes but the full rerun still fails on other scopes. Treat each remaining failure as its own scope, because a shared load or mapping can hide more than one cause.
- The source systems disagree on the correct value. The GL governs actuals, the approved budget version governs plan figures, and the planning system governs forecast; record which source won and why.

Compatibility: Power BI at current versions, plus Power BI, Excel, Tableau, Looker, NetSuite and Adaptive Planning where the query names them; sources of truth are GL actuals and the approved budget, and no extra tooling is needed beyond access to those source records.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_g_NL9Pbt20GbSRq_pMu5mQ
