Paddock20
Highway at dusk, the corridor a measured vehicle actually runs
TelemetryData EngineeringAPI IntegrationLive Production

Paddock Garage

Two telemetry feeds go in. Both get checked against the real bills, and out comes a true cost per mile. Every number says how it was got: measured, modeled, or reported. Live at garage.paddock20.com.

8.82%
Charge loss measured
Found by reconciling two sources
2
Independent data sources
Reconciled on natural keys
211 KB
Ten pages, total
Down from 1,054 KB on one
0
Runtime requests
Fully static at the edge

The Problem

Every Number on the Internet About EV Cost Is an Estimate.

Cost-per-mile calculators use national averages for a car nobody owns. Manufacturer range figures are laboratory numbers. Review sites publish figures from vehicles they did not pay for. The result is an entire category of content that reads as authoritative and cannot be checked.

The brief was to build the opposite: a site where every published figure traces back to an invoice or a sensor, where estimates are labelled as estimates, and where the unflattering numbers stay on the page. That constraint is an engineering problem, not an editorial one. It requires the provenance of a value to survive all the way from ingestion into the rendered page.

A number is either measured from a receipt or a sensor, or it is labelled modeled. There is no third category, and the system enforces that rather than trusting the author to remember.

How It Was Built

The Build,
Phase by Phase.

Ingest

01

Two Sources That Disagree on Purpose.

Vehicle telemetry provides drives, pack-side energy and battery health. The manufacturer Fleet API provides billing-grade charging invoices and live vehicle state. Access tokens refresh themselves; the vehicle is never woken on a schedule, because waking it consumes battery the site itself measures as a cost.

Reconcile

02

The Number Neither Source Publishes.

The invoice reports energy drawn from the charger. The car reports energy that reached the pack. They are not the same, and the gap is real money. Matching them per session across 11 invoices measured 8.82% loss: 422.56 kWh billed, 385.30 kWh stored. Matching is on time proximity at a site, because the two sources stamp different time zones and a date join silently drops sessions across midnight.

Derive

03

Aggregate Until It Is Safe to Publish.

Raw drive coordinates resolve a residence and a workplace to within a few metres. They are generalised into city-pair corridors weighted by trip count, and departure timestamps are discarded entirely, because a departure pattern discloses when a property is unoccupied. The site publishes the shape of the driving without publishing the driver.

Gate

04

The Build Fails Rather Than Leaks.

A pre-deploy gate encodes the privacy and editorial rules as executable checks: identifier redaction, address and coordinate patterns, earnings figures, dead internal links, page weight ceilings. It is not documentation that asks a human to remember. On its first run against real content it caught a published weekly schedule and a stale asset reference that review had missed.

Architecture

Static at the Edge, Reconciled in Postgres.
No server, no runtime dependency, no request at view time.

The single source of truth is one JSON snapshot. A figure cannot be current on one page and stale on another, because no page holds a hand-typed number. Refreshing the snapshot and rebuilding is the entire update path.

DeliveryCloudflare Workers static assets, edge redirects
GenerationDeterministic generator, one snapshot renders every page
WarehouseNeon Postgres, dedicated schema, idempotent on natural keys
IdentityOAuth 2.0 client credentials and auth code, EC P-256 key pinned at a well-known path
VisualisationSVG generated at build time, no charting library in the browser
PaletteChart hues re-derived in OKLCH and validated for colour-vision separation
Quality gatePolicy-as-code, fails the deploy on a rule violation

The Result

A Number That Did Not Exist Before.

The reconciliation produced a measurement neither source offers: 8.82% of purchased energy never reaches the battery, which turns a billed rate of 37.8 cents per kWh into an effective 41.5 cents. That figure had previously been withdrawn from the site for lack of evidence. It returned measured.

Alongside it: real charging power curves sampled once a minute, city-level corridor mapping from 61 drives, and a published cost per mile that already includes the loss because it is priced from the invoice rather than the dashboard. Ten pages totalling 211 KB, replacing a single 1,054 KB page whose weight was almost entirely images pasted into the HTML.

The site is the proof. It is not a description of what the studio can do; it is a production system anyone can open, read, and check.

Share this case study
LinkedInX

See It Running. Then Check It.

Paddock Garage is live, indexable, and auditable. Read the build log at the end of the case study on the site itself, including what went wrong and what it cost to fix.

Book a Free Fit CallView All Work →Read the Full Methodology →

Build With RAIL: Free

90 Seconds to
Build Your App
With RAIL.

Answer three questions—type them or say them out loud—and watch RAIL scope your app in real time. Named app, working interface, and a build blueprint you keep. Before you ever talk to anyone.

A named app. A working interface. A blueprint PDF you keep. Whether we ever talk or not.

AI-powered90 secondsType or speakPDF blueprint
Build Your App Blueprint →Name + email to receive your PDF blueprint.
← All Case StudiesWhy architect-directed, every time →© 2026 Paddock20. All rights reserved.

SECURE CHECKOUT

Loading secure checkout…

256-bit SSLPowered by StripeCancel any time