A solar PPA savings true-up is the periodic reconciliation that checks whether a power purchase agreement actually delivered the savings it promised — the host customer's guaranteed discount against what they would have paid the utility without the system — and settles the difference. It needs three numbers for every period: what the customer paid the developer (the PPA invoice), what they paid the utility (the actual bill), and what they would have paid with no solar or storage at all (the counterfactual). The first two are documents you can collect. The third has to be reconstructed against the tariff in effect — and that reconstruction is where a true-up quietly goes soft, or stops happening altogether.
This guide explains what a savings true-up actually reconciles, why the counterfactual is the number that decides the settlement, where true-ups go wrong, and what it takes to produce one a developer and a host can both sign.
#What a savings true-up reconciles
A PPA with a savings guarantee promises the host that its all-in cost of energy will come in below the do-nothing case by some margin. "All-in cost with solar" is not one bill — it's the PPA payment plus the reduced utility bill the site still gets. So the true-up compares two totals:
| Without the system (counterfactual) | With the system (actual) | |
|---|---|---|
| Utility bill | Full bill on the pre-solar tariff and load | Reduced utility bill, extracted from the PDF |
| PPA payment | — | What the host paid the developer for solar kWh |
| All-in cost | Counterfactual utility bill | Reduced utility bill + PPA payment |
Realized savings is the counterfactual minus the all-in actual cost. If a guarantee is in play and realized savings fall short, the developer typically owes a make-whole payment to close the gap. That settlement is the whole point of the exercise — and it rests entirely on a number that isn't printed anywhere: the counterfactual.
#Why the counterfactual decides the settlement
Two of the three inputs are evidence. The PPA invoice is what the developer billed. The actual utility bill is a document you can extract line by line. Nobody argues about those.
The counterfactual is the one number that has to be built, and it's the one the settlement turns on. Move the assumed tariff, the load shape, or the demand peak even slightly and the do-nothing total moves — and with it, whether the guarantee was met and who owes whom. A true-up is only as defensible as its counterfactual. When a make-whole payment is on the line, "trust our spreadsheet" is not an answer the paying party accepts.
This is also why the modeled number can't stand in for it. The savings projected at financing was the right tool to size the deal, but it drifts the moment the tariff or load changes — and a true-up settled against a stale projection settles against fiction.
#Where true-ups go soft
Most savings disputes don't come from a bad system. They come from a soft counterfactual or a true-up that was never built to be inspected.
- The blended-rate shortcut. Reconstructing the do-nothing bill as average ¢/kWh × kWh erases demand charges, ratchets, and TOU structure — exactly the charges solar and storage move most. The counterfactual ends up understating avoided cost, and the guarantee looks missed when it wasn't (or vice versa).
- Tariff drift. The host's tariff changes, gets a rate revision, or the customer switches plans after signing. A counterfactual frozen at the contract's assumptions reconciles against a rate that no longer exists.
- A stale baseline. Using one pre-install bill as the template for every future period bakes one season's load and one rate snapshot into every true-up. (Building one that holds up is its own discipline — see defensible solar pro-forma baseline.)
- No line-item trail. A true-up that produces a single savings figure with no breakdown can't answer "which charge type drove the shortfall?" — so a disagreement has nothing to resolve against except two opposing totals.
#What a defensible true-up requires
The same thing verified savings requires in general: the actual bill, a properly reconstructed counterfactual, and the line-item delta between them — produced per site, per period, with provenance.
- The actual utility bill, extracted — energy by TOU period, demand, fixed charges, credits, taxes.
- The PPA invoice for the period, as paid.
- A counterfactual bill reconstructed against the tariff actually in effect that period — full rate structure, not a blended average — on the load the site would have drawn without the system. That load often has to be reconstructed from interval data.
- The settlement math: counterfactual − (actual utility bill + PPA payment) = realized savings, compared to the guarantee.
- A line-item trail so a shortfall resolves into which charge type and which period — and every figure points back to its source.
Done by hand across a portfolio of PPAs, this is the work that slips: the annual true-up arrives, the counterfactual gets rebuilt under time pressure, and corners get cut on the one number the settlement depends on. Done with infrastructure built for it, it runs as the bills arrive.
#What Tariform does
Verify produces the reconciliation. For each PPA site, every period, it extracts the actual utility bill, reconstructs the counterfactual against the tariff in effect using a US and Canadian tariff catalog and rate engine, and reports realized savings as a line-item delta — energy, demand, TOU, credits — that you net against the PPA payment and test against the guarantee. Every number traces to its source: the PDF line for the actual bill, the tariff component and load input for the counterfactual. It's the same machinery described in utility bill verification for solar and storage, pointed at the contractual true-up.
If your next savings true-up will decide a make-whole payment, the counterfactual is the number worth getting right. Book a demo — twenty minutes, your portfolio, you see the reconciliation broken out by charge type.




