Methodology Cost engine Build pgiq-20260926-211939

Recurring Cost Engine — Methodology

How PowerGridIQ builds a standardized recurring delivered-cost band for one declared large-load case, what each published line is worth, and the rules that stop a band publishing at all. This describes the engine as it currently runs; every vocabulary below is read from the code that produces the figures, so this page cannot drift from them.

The declared case

Every band answers one question about one customer, and comparability depends entirely on that customer being the same everywhere:

Contracted demand100 MW
Annual load factor0.95 — 8,322 MWh per MW-year
ServiceTransmission-level (high voltage)
CurrencyUS dollars per MWh
ExcludedCustomer-funded connection capital, and refundable taxes

The band does not transfer below the archetype's load factor. Demand, capacity and network charges are levied per MW of contracted demand, not per MWh consumed. Spread over fewer MWh they contribute more per MWh, so applying a 95% band to a 60% load understates its delivered cost — and understates it exactly for the flexible profiles most likely to be screened. The engine refuses that calculation rather than performing it quietly.

Two directions of arithmetic, and why the difference is everything

This is the single most important thing to understand about a PowerGridIQ cost breakdown, and until August 2026 it had only one answer. It now has two, and the payload says which one applies in realized_cost.total_derivation.

total_derivationHow the number was madeWhat the sum proves
compiled_band_allocated_across_categories The delivered-cost band is compiled first, from cited market-monitor and operator sources. The component lines are then an allocation of its midpoint. Nothing. The lines sum to the midpoint by construction, always, in every such market — so "the components reconcile" reads like assurance and carries none.
tariff_reconstruction Each line is derived independently from a filed, dated tariff rate by a published formula, and the total is whatever they came to. Nothing was fitted to a preselected figure. That the filed rates, applied to the declared case, produce this delivered cost. The sum is a result rather than an identity.

Both produce a number and a set of lines that add up to it. Only one of them is evidence. A reader who cannot tell them apart will over-trust the first, which is why the field exists rather than being left implicit in the confidence label.

How each line was produced

Every component line carries provenance.provenance_state. The boundary that matters most is the first one: a published rate is not a published answer. Dominion files Rider A at 3.7648 cents per kWh. It does not publish "$37.65/MWh for a 100 MW load at 95% load factor" — that conversion is ours, over our archetype, and it can be wrong in ways the rate sheet cannot. Calling it observed would borrow the utility's authority for our arithmetic; calling it an allocation would throw away a filed rate and pretend we guessed. Both are false, in opposite directions.

StateMeaning
directly_observed Directly observedThe cited source publishes this component amount for this case. No conversion of ours stands between the source and the number.
tariff_derived Tariff-derivedCalculated from applicable filed tariff rates, riders or taxes by a stated formula, at the declared archetype. The rates are published and dated; the conversion to $/MWh is ours and is published with it.
estimated_allocation Estimated allocationApportioned from a compiled total or midpoint by analyst judgement. Not independently calculated, and not corroborated by anything outside the band it came from.
unavailable UnavailableNo defensible value exists for this component today. Published as absent rather than filled with a proxy.

A tariff_derived line publishes the arithmetic with the number: formula, method, inputs, customer_applicability, source, source_id and effective. A derived figure a reader cannot reproduce is an assertion wearing a decimal point.

The evidence class and confidence are derived from this state, not set beside it. They were once set independently at three call sites, and in August 2026 a live record published a line that was independently_sourced and allocation_of_compiled_midpoint at the same time. One field is now the source of truth and a build gate enforces it.

A sourced line is still not a decomposed one. Where one line covers several categories, category_coverage reports each of them as bundled and carries line_provenance_state for the line they share. Dominion's base schedule is read exactly and still bundles energy, transmission, distribution and demand: knowing a number is not knowing how it splits.

How much of a figure is evidenced is published per market at component_status.provenance_summary: counts and dollars by state, the evidenced share as a percentage, and the lines still awaiting evidence. Today that share is 100% for Northern Virginia and 0% for the six comparison markets, whose lines remain allocations. Publishing that number is uncomfortable and is the point.

Reconciliation: two questions, never merged

CheckWhat it asksStatus
arithmetic_integrityDo the printed lines add up to the total printed beneath them?A hard build gate. Cheap, and it catches an edited line or a rounding drift. It is not evidence: an allocation always sums to its own anchor.
evidence_reconciliationWere the lines observed separately, and do they then agree with the compiled total?A published coverage grade, not a gate. independently_reconciled only where every line stands on its own evidence; not_independently_reconciled wherever the lines apportion a compiled band.

What a component line is worth

ClassMeaning
estimated_allocationApportioned from the compiled midpoint. No independent observation stands behind this line.
independently_corroboratedStill an apportionment, but an independently sourced observation of the same category agrees with it within tolerance. The published value is the allocation, not the observation.
independently_sourcedThe published value IS the observation, with its own source, date, method and confidence.

Corroboration is not sourcing. Where a cited observation of the same category agrees with an allocated line within $1.00/MWh, the line is independently_corroborated: the published value remains the allocation and the observation is recorded beside it. Substituting the observation would break the sum against the compiled midpoint and move a live band on partial evidence. Only independently_sourced counts toward publication grade.

Per-line provenance

Every published line carries its own source, date, method and confidence. The trap is that all four exist for the band, and pasting them onto each line would satisfy the requirement while asserting something false: the band's source observed a delivered cost, which an analyst then apportioned. It never saw the energy line.

So an allocated line reports the band's source as source_of_band_not_line, carries no source key at all, and takes its confidence from a vocabulary the band cannot lend it. The two are deliberately disjoint:

Line confidenceMeaning
observedSeparately observed from a cited source, with its own date and method.
modelled_from_observedCalculated by PowerGridIQ from a cited observation, using a published formula and stated assumptions.
allocationApportioned from the compiled delivered-cost midpoint by analyst judgement. Not separately observed.
bundled_allocationApportioned, and covering more than one cost category in a single line. Neither the total nor the split within it was separately observed.
tariff_derivedCalculated from filed, dated tariff rates by a published formula at the declared archetype. The rate is the utility's; the conversion is ours.

Band confidence is administered, triangulated or modelled. No line can read as any of those and borrow the band's standing.

Cost categories, and what is bundled

A comparable stack needs comparable categories. Coverage is derived against this vocabulary and the gaps are published rather than implied:

CategoryIn the recurring boundary?
energy Wholesale or tariff energyyes
capacity Capacity or resource adequacyyes
transmission Transmissionyes
distribution Distributionyes
demand_charges Demand chargesyes
ancillary Ancillary services and upliftyes
riders Riders and unavoidable regulatory chargesyes
carbon Carbon-related chargesyes
taxes Recurring taxesyes
connection_capital Customer-funded connection capitalno — reported separately

Transmission & delivery is bundled in most markets. One line covers transmission, distribution and demand-related network charges, and no separate figure for any of them has been sourced. That is reported as bundled, never as three estimates: the line exists, but nobody has apportioned it, and calling that an estimate would credit an apportionment never made. No artificial split is created to populate categories.

Capacity: a sourced observation and a declared conversion

A capacity-auction clearing price is the one input that is genuinely observed — published by the operator, dated to a delivery year, derived from nothing of ours. Turning it into the archetype's $/MWh is a different act, and the two are reported separately with separate provenance.

$/kW-month  →  ($/kW-mo × 12 × 1000) / (8760 × load factor)
$/MW-day    →  ($/MW-day × 365)        / (8760 × load factor)
at the declared case:  8760 × 0.95 = 8,322 MWh per MW-year

No reserve-margin gross-up is applied, and the result is a floor. A load's capacity obligation is not its contracted MW: it is set by its contribution to system peak and grossed up by a reserve margin each market defines for itself. We hold no cited multiplier for any market, so the multiplier is 1.00, stated, and the output is labelled a floor — the real obligation is at least this and probably more. Inventing a multiplier would place a PowerGridIQ assumption inside a number a reader would take for an auction result.

This is not a tariff charge and must not be quoted as one. It is an auction clearing price converted to the archetype's consumption; tariff research has not established what a supplier would actually bill.

Price basis is part of provenance. A current_delivery_year price answers what a load pays now; a forward_auction price answers what a different load contracted to pay later. Both are cited and correct, and comparing one against the other under a single column heading is a boundary error. A comparator on a different basis may not corroborate a line and may not supply its provenance.

When a band does not publish

A market that cannot be priced is not a hole in the product. Each state below implies a different remedy and a different expectation of when, if ever, it closes:

Evidence stateMeaning
publication_grade Publication gradeEvery publication gate is clear: applicability, cost boundary, components with their own provenance, reconciliation and evidence depth.
applicable_evidence_incomplete Applicable, evidence incompleteThe archetype can buy the service and the band is sound, but some published figures do not yet carry their own source, date, method and confidence.
methodology_unresolved Methodology unresolvedThe underlying observations exist and are cited, but the correct conversion or treatment for the archetype is not yet established, so the resulting figure is not settled.
inapplicable Inapplicable evidenceThe evidence we hold cites a tariff or service the standard archetype cannot purchase. It may be accurate about some other customer and still say nothing about this one.
scope_fragmented Observable in part; complete cost fragmented by jurisdictionPart of the cost is established from a filed, applicable tariff and is published. The remainder is set by many serving utilities across several jurisdictions, so no single figure exists at this market's geographic scope. The gap is not missing research; it is a scope the evidence cannot span.
structurally_unavailable Structurally unavailableNo public evidence can establish this cost, because the archetype is contract-served in this market rather than tariff-served. There is no posted figure to find.

And the coarse answer a reader needs first — is there a number, is one coming, or must it be negotiated:

AvailabilityWhat to do next
standardized_observable Standardized cost observableUse the band, with its stated confidence and boundary.
contingent_evolving Cost contingent or evolvingTreat cost as unresolved and track the named proceeding. Do not plan against a figure that a pending decision may change.
customer_specific Customer-specific costEngage the utility directly. No published band is coming, and waiting for one loses time.
scheduled_change Cost basis changes on a known datePlan against the new tariff from its effective date and treat today's cost as a different basis. Check whether its terms -- contract length, minimum charges, exit fees -- bind your load shape, because they are written for a customer who may not be you.
varies_by_jurisdiction Availability varies by jurisdictionIdentify the jurisdiction the site sits in and read that record. Do not apply one jurisdiction's conclusion to the region.

Bands withdrawn

A defect against the component allocation withholds the breakdown and leaves the band standing. A defect against the band itself withdraws it, because the band is what the screen filters on and the memo concludes from. No substitute is published — no widened range, no carried midpoint, no modelled stand-in.

DefectMarketWhy
#317desert-southwestThe published band blended an effective regulated rate with APS's PROPOSED extra-large-load class of roughly +45%, which the Arizona Corporation Commission has not decided: the rate-case hearing closed 7 July 2026 and the Commission's vote is due by 31 December 2026. A pending proceeding may not set a current delivered cost. The band's primary source was also an ACC large-load workshop rather than a tariff.
#320isoneA single delivered-cost estimate cannot be defended at ISO-NE-wide scope. The regional transmission layer is uniform and verifiable, but local transmission, distribution and retail demand charges are set by 32 serving utilities across six states and five regulators. The superseded values are recorded in the correction record, not here.
#305pacific-northwestThe published band was derived from the Bonneville Power Administration priority-firm rate, which a new large load cannot obtain: federal hydro allocations are largely committed and a new customer would pay a market premium above the federal rate. A tariff the standard archetype cannot purchase may not set a delivered-cost band.
#316us-southeastThe band was anchored on a regulated bundled industrial tariff that a new 100 MW load cannot take: Georgia closed its standard schedules to new large loads on 1 February 2025 and requires an individually negotiated contract instead. The band's primary source was also EIA industrial monthly pricing, which may serve only as a lagged validation layer and not as the headline large-load price.

Verified cost layers: a sourced part of a cost we cannot yet state in full

Some markets publish enough for part of the delivered cost to be derived exactly from primary documents, while the rest stays out of reach. That part is published as a verified cost layer — a figure built line by line from named primaries, shown beside the band and never inside it. Today 2 markets currently publish one.

A verified layer is not a delivered cost and is not a cheaper version of the band. It covers fewer things. Where a market has both, the two answer different questions, are often in different currencies, and must never be netted, ranked or subtracted against each other.

RuleWhy
A layer never enters realized_costSeparation is the safety mechanism. A sourced layer merged into a band would upgrade the band's apparent provenance without improving it, and the merge could not be undone by a reader.
Every component line names its own primaryA layer is only worth more than a band because each line is separately checkable. A layer with one citation for five lines is a band wearing better clothes.
What it excludes is printed, not impliedThe exclusions are the part a reader is most likely to get wrong, so they are stated as plainly as the total.
A determinant is established before it is usedA published rate is not enough on its own: most tariffs charge on a quantity — a billing capacity, a coincident demand, a power factor — that is defined in a different document, or not defined publicly at all. Where the quantity cannot be established, the layer carries a range rather than a point, and says which determinant the range is.

Why a layer can be permanently partial

The obvious assumption is that a partial layer is simply unfinished research. Often it is not. A transmission tariff can set some of its charges as published rates and leave others as allocations — a share of whatever the system actually spent that month, divided among users after the fact. Those charges have no rate to read, in any document, ever. Reading more of the tariff does not close them; only settlement data would, and that is a different class of source.

This matters more than it sounds. A market can have a single named operator publishing a current, approved, uniform tariff — every signal that usually means "reconstructable" — and still not be reconstructable in full. Where that is the case, the layer says so rather than presenting its readable part as the whole.

What public evidence can and cannot support

Public evidence currently supports defensible standardized recurring-cost bands for the U.S. organized markets tested, where the 100 MW archetype can be modelled using observable and applicable market inputs. It does not support equivalent standardized bands in the vertically integrated markets tested, where large new loads depend on tariffs that are inapplicable, still being decided, or superseded by customer-specific agreements.

Four US vertically integrated markets were tested against this standard and all four failed. The thresholds converge: Georgia's rule, the North Carolina Utilities Commission's large-load definition and Arizona's extra-large class all bite at or around 100 MW. The archetype sits exactly where US regulated utilities stop offering a posted rate. This is a finding about market structure, not a research backlog.

Source hierarchy

Sources are ranked by what they can settle, not by how authoritative they sound. A policy institute may be entirely right about a trend and still cannot establish a rate.

RankSourceWhat it can settle
1A filed, effective tariff the archetype may takeThe delivered cost itself, by derivation. The only source that supports tariff_derived.
2An operator or regulator publishing the component amount for this case A line, directly. Supports directly_observed.
3A market monitor, auction result or operator statisticA band, and a cross-check against an allocated line where the price basis matches.
4Compiled national or sectoral statisticsA band, with wider uncertainty. Never a line.
5Policy research and commentaryContext, direction and dating. Never a price. A withdrawn Northern Virginia band was built partly this way, which is how the rule came to be written down.

A band's source is not a line's source. Where lines are apportioned, the provenance field is named source_of_band_not_line for that reason, and the URL beside it is labelled the same way. The naming is deliberately awkward so it cannot be quoted as if it established the line.

Price basis must match before anything corroborates anything. A forward-auction clearing price for a future delivery year and a current delivered cost answer different questions. ISO-New England holds a cited capacity price that is refused as corroboration for exactly this reason: letting it agree would launder a basis mismatch into an evidence upgrade.

Corrections

When a published figure turns out to be wrong, it is withdrawn rather than quietly edited, and the correction is published with a date at /corrections and in /data/corrections.json.

History, and telling a market move from one of ours

The canonical cost state is snapshotted append-only, and the difference between snapshots is classified. A time series of midpoints would let someone draw a line; it would not answer the only question that matters when a number moves.

Change classMeaningMarket signal?
economic_changeThe underlying market moved. Same source and method, a new observation period.yes
source_revisionThe source restated a figure for a period it had already published. The market did not move; the record of it did.no
input_replacementPowerGridIQ changed which source or which period it reads. Any movement is ours, not the market's.no
methodology_changeA method or conversion version changed. The arithmetic moved, not the world.no
evidence_state_changeWhat can be published changed: a band withdrawn or restored, a breakdown withheld, a review opened or closed.no
correctionA defect was recorded against the previous figure and it was withdrawn or repaired.no
input_regressionPowerGridIQ moved to an EARLIER observation period than it was previously reading. This is never a market signal and usually means a stale input was reintroduced.no
first_observationThe first vintage recorded for this market. Nothing changed; this is where the record begins.no
unclassified_changeA value moved and the classification rules cannot determine why. Held for an editor rather than guessed.unknown

Direction matters, not difference. A later observation period on the same source is the market moving. An earlier one is us reading the wrong year, which is never a market signal and is recorded as input_regression — a defect signal. A vintage is never edited; a correction is a new vintage, so "what did PowerGridIQ show on the day I decided" stays answerable even when the answer is unflattering.

Scope today

The validated core is ercot-west, ercot-central, spp, miso, isone, nyiso. Six organized markets, five ISO/RTOs, four capacity constructs. It contains no vertically integrated market, for the reason above. It is the set we can defend today, not a finished destination.

Limitations, and what this is for

Intended use. Comparing markets against one another on a single declared case, early in a siting decision, and knowing how much of each comparison is evidence. It is a screening instrument.

Not intended. As a quotation, a budget line, or a substitute for an offer. No figure here is a price anyone has agreed to sell you. A real site has a real interconnection point, a real load shape and a real contract, and all three move the number.

Versions

Component evidencecost-components-1.0
Cost categoriescost-categories-1.0
Line provenanceline-provenance-1.1
Capacity conversioncapacity-auction-to-mwh-1.0
Evidence stateevidence-state-1.0
Cost vintagescost-vintage-1.0
Market-structure findingus-vertically-integrated-cost-evidence-1.0

The European Power Price Index answers a different question: it is a wholesale day-ahead signal, not a delivered cost, and the two must not be compared. Everything above is a delivered cost for the declared case.

Machine-readable: GET /api/v1/ratings/{market} — read realized_cost.component_status and cost_evidence_state. Screening: GET /api/v1/screen. Build pgiq-20260926-211939.