One API call turns kWh and kW into a Rate DS bill with every rider broken out, for every month Duke has published. The engine is verified against bills computed by Duke's own calculator, so your EV, solar or energy software can show a number it can defend.
| Rider RE (Retail Energy) | $756.94 |
| Rider RC (Retail Capacity) | $236.68 |
| Distribution Demand Charge | $209.03 |
| Rider BTR (Base Transmission) | $99.33 |
| Rider SCR (Supplier Cost Reconciliation, credit) | -$98.08 |
| 13 more riders | $139.81 |
| Total | $1,343.71 |
No key needed. The sandbox allows 25 bills a day.
Send a billing period and usage. Get back every line item, subtotals by bucket, and what isn't modeled.
Bills ending in a month without published rates return 422 no_rates_for_period.
Request
curl https://veridor.ai/v1/bills/duke-oh-ds \
-H "Authorization: Bearer $VERIDOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"billing_period": {"start": "2026-10-01", "end": "2026-10-31"}, "inputs": {"kwh": 10000, "kw": 30, "rate_code": "DS01", "phase": 1}}'Response (trimmed)
{
"object": "bill",
"tariff": {
"version_id": "duke_oh_ds@2026-01-01",
"utility": "Duke Energy Ohio",
"rate_schedule": "DS"
},
"billing_period": {
"start": "2026-10-01",
"end": "2026-10-31"
},
"total": 1343.71,
"subtotals_by_bucket": {
"delivery": 306.94,
"other": 42.82,
"transmission": 96.4,
"generation": 897.55
},
"line_items": [
{
"id": "customer_charge",
"name": "Distribution Customer Charge",
"category": "fixed_charge",
"bucket": "delivery",
"amount": 23.0
},
{
"id": "distribution_demand_charge",
"name": "Distribution Demand Charge",
"category": "demand_charge",
"bucket": "delivery",
"amount": 209.03
},
"… 23 more"
]
}POST /v1/bills/duke-oh-ds | Itemized bill. Omit Authorization to use the sandbox. |
GET /v1/tariffs/duke-oh-ds | Inputs, allowed values, coverage, line items, sources. |
GET /v1/evidence/duke-oh-ds | Every verification check, re-run live on request. |
Rate data is only useful if it's right. Nothing ships until it reproduces bills the utility itself computed.
Rates and rider logic come from Duke's PUCO-filed tariff sheets and its published bill calculator, with every source archived.
The engine recomputes bills that Duke's calculator produced, line by line. All 14 must match to the cent.
The checks re-run on every request to /v1/evidence. Months Duke hasn't published are refused, never guessed.
Read these before you rely on a number. Most match the limits of Duke's own calculator.
422 until Duke publishes their rider rates.One plan while Rate DS is the only tariff. Self-serve: no sales call, no contract.
Renews automatically every month at $199 until you cancel. Cancel anytime by emailing support@veridor.ai; access continues through the period you've paid for.
Software that has to show a Duke Ohio commercial customer a bill or savings number: EV-charging, solar and storage, and energy-management tools.
Yes, using the same verification. Email support@veridor.ai with the utility and rate you need; requests decide what's next.
We add each newly published month after it passes
verification. Until then, bills for that month return 422 instead of a guess.
Email support@veridor.ai from your billing address. Access continues to the end of the period you paid for.
Calculated bills based on Duke Energy Ohio's published tariffs and bill calculator, with the limits listed above. They are estimates, not Duke invoices, and exclude taxes, franchise fees and proration.
The service is provided as is. Veridor is not liable for decisions made using its output; liability is limited to the fees you paid in the prior three months.
$199/month, billed in advance through Stripe and renewed automatically each month until you cancel. Cancel anytime; access runs to the end of the paid period. No partial-month refunds.
A hash of your API key, a salted hash of the calling IP (for sandbox limits), a hash of each request's inputs (to count usage), and your Stripe customer and email. We don't store your usage values. Payments are handled by Stripe. Data questions or deletion requests: privacy@veridor.ai.
These terms are governed by the laws of the State of California.