Solar math that matches the tariff.

Current US electricity rates, NEM 3 export credits and battery dispatch — one API. Every rate encoded from the utility's filed sheet, with its P.U.C. sheet number and effective date attached.

Get a free API key Browse current rates →

168%
savings overstated by a model still assuming NEM 2 retail netting
6,413×
spread between the cheapest and dearest export hour
2.1×
more value per exported kWh from battery dispatch alone

Try it

Calculating…

Get a free API key No card. 2,000 credits/month.

Why the numbers moved

NEM 3 broke the old assumption

Under NEM 2, an exported kWh offset an imported one at the retail rate, so a solar model could net annual kWh and ignore timing. Under the Net Billing Tariff, exports are credited at hourly Avoided Cost values while imports are still billed at retail. For PG&E in 2026 those export values run from $0.00018/kWh in April at 3pm to $1.15441/kWh in August at 7pm.

A quoting tool still netting at retail overstates annual savings on the default household above by 168% — $3,929 predicted against $1,463 actual. That error lands directly on the payback period a homeowner is shown.

Which makes dispatch the whole game

Solar exports hardest at midday in spring, when a kWh is worth almost nothing. A battery moves those kWh into the expensive hours. Same hardware, same sunlight — default self-consumption earns about $0.057 per exported kWh, well-timed dispatch earns about $0.120.

We report best-case dispatch as an explicit upper bound computed by linear program with perfect foresight, never as an achievable schedule. Quoting it as attainable is the easiest way to overstate a payback period.

And the underlying rates go stale fast

NREL's free rate database refreshes ~150 utilities annually. As of August 2026 the newest PG&E residential rates it presents as current date to 2019, and several are retired plans published with no end date. Its newest EV2 record expired in September 2024 — pricing a real EV household against it overstates the annual bill by 28%, partly because it cannot represent the Base Services Charge introduced in March 2026.

The API

curl -X POST https://rategrid.dev/battery \
  -H "X-API-Key: rg_demo_key_public" \
  -H "Content-Type: application/json" \
  -d '{
    "tariff_label": "pge-eelec-2026-06-01",
    "load_kwh": [ ...8760 hourly values... ],
    "pv_kwh":   [ ...8760 hourly values... ],
    "capacity_kwh": 13.5
  }'

/compare ranks every eligible plan · /solar bills NEM 3 exports · /battery values dispatch strategies · /calculate prices one tariff · /changes reports when a source rate sheet moves. Full docs at /docs.

How the numbers are kept honest

Pre-launch. Coverage is 37 residential tariffs across 21 utilities. Estimates exclude CARE/FERA discounts, the California Climate Credit, medical baseline, local taxes and franchise fees, annual true-up, and battery degradation. Load shapes in this demo are synthetic — real callers supply interval data.