Why it exists
A concession runs for twenty years. The questions arrive in year nine.
A regulator asks what a household was billed in March, and against which tariff. A lender asks what the service area covered when the loan was drawn. An incoming operator asks which assets were already failing at handover.
Most systems answer these by applying today's configuration to a historic date. That produces a number, and it is not the number anyone is asking for. Undevia holds the record so the original answer is still there to be produced, with the trail that shows who changed what and when.
The idea underneath
Two clocks, kept separately.
One record answers two different questions, and confusing them is how a history becomes unusable.
Valid time
The service area really did cover that ground on that day. The meter really was in that condition.
Transaction time
The register said so on that day. A correction entered later does not quietly rewrite what the utility acted on at the time.
Ask as at a date
Set the date and the register reassembles itself: assets, boundaries, tariffs, readings and the decisions attached to them, as they stood.
Then wind the second clock back
Move the belief clock and you see the record as it read before a later correction, not the correction. That distinction is what makes a historic answer defensible instead of merely plausible.
Every change carries its author
Moves, approvals and rejections are recorded against the person or the rule that made them. The audit trail only ever grows: it cannot be edited or removed, and that is enforced by the database rather than by policy.
What it holds
One record, for the whole concession.
Not a reporting layer over other people's systems. The register itself.
Worked example
The same district, asked about twice.
A supply zone does not sit still. Undevia holds each extent with the dates it applied from, so a question about last year is answered with last year's boundary and last year's area, measured, alongside the one standing today.
Demonstration data. Figures are computed by the platform, not estimated.
- As at 2025-08-04
- 59.07 km2
- As at 2026-08-04
- 118.14 km2
- Moves in period
- 1
- Decisions recorded
- 1 approved
Built, not planned
Four things it does that are hard to add later.
Each of these had to be in the foundation. None of them retrofits onto a system that did not start with it.
Bills reproduced, not recalculated
A bill is recomputed against the tariff that was in force on its own billing date. A bill can be arithmetically perfect against the wrong schedule, so the citation is checked separately from the total.
Overcharge, undercharge and tariff-gap are distinct findingsMeasured on the curve of the earth
Extents and distances are computed geodesically, so a service area in one country and a main in another are comparable figures. Planar arithmetic on degrees produces numbers that look like distances and are not.
Square kilometres, not approximationsOperator over utility
A concession holder sees every utility it runs. A utility sees its own and nothing beyond it. Scope is carried by the session, never chosen in a request, so a second utility is not one edited address away.
Two levels, enforced on every queryNo detection vendor owns you
Satellite, acoustic, district metering and billing anomaly all arrive in one internal shape. Adding or replacing a supplier is a configuration entry, not a rebuild, and the record survives the switch.
Source recorded, source shape kept outStraight answers
The questions worth asking.
Is this running, or is it a proposal?
It is running. The platform is deployed, the surfaces described on this page exist and are exercised against live data, and a walkthrough is a walkthrough of the system rather than a slide deck about it.
How does our existing data get in?
The schema is built from migrations, so an instance stands up from nothing and is loaded from your registers. Ingest is designed around the fact that historic data arrives incomplete: a record with no version covering a date is reported as exactly that, rather than being quietly filled in.
What happens when we disagree with a figure?
Configured limits live in one place and every view and every background calculation reads the same value, so an operator screen and a report cannot drift apart. Where a figure is derived, the derivation and the inputs it used on that date are recoverable.
Can it be branded as ours?
Yes. The product name is confined to a single token in the codebase, deliberately, so the platform can carry an operator's own brand without a rebuild. That constraint was designed in from the first commit and is enforced by a build check.
Who can see what?
Scope is two-level and carried by the authenticated session. Sign-in is passwordless, so there are no stored passwords to leak. Every sign-in is recorded, and the surfaces that release scoped records, work orders, subject-data requests, reconciliation reports and the as-at views, record each read against the person who made it, in a trail that cannot be edited or deleted.
Next
See it answer a date you choose.
Bring a real question from a concession you operate. A date, a bill, a boundary. The walkthrough is running the system against it, live.