Technology

Four layers, deliberately separated

The boundary between interpretation and arithmetic is the most important design decision in the platform. Models are good at reading documents and unsuitable for being accountable for money.

Architecture

What each layer may and may not do

01

AI interprets documents

A language model reads invoices and contracts and proposes structured output: line items, charge types, clause text, candidate obligation parameters and the evidence those parameters would require. It runs server-side only. Its output is validated against a strict schema and rejected if it does not conform.

It never sees a final amount, and it never decides a status.

02

Evidence supports claims

A provider interface abstracts every evidence source behind the same contract: what it can prove, how reliable it is, what credentials it needs, and how to fetch observations for a movement. Adding a real telematics or gate integration means implementing one interface.

The MVP ships mock providers only, explicitly labelled as simulated.

03

Deterministic code calculates

calculateDuration, evaluateContractCondition, calculateSupportedAmount, calculatePotentialRecovery and determineVerificationStatus are pure functions over integer cents and whole minutes. No network, no randomness, no clock reads inside the arithmetic path.

Same inputs always produce the same number, and anyone can re-derive it.

04

Reality Certificates preserve results

Each verification is serialised canonically, hashed with SHA-256 and stored as an append-only version row. Re-verifying with new facts writes version n+1.

The database rejects updates and deletes on certificate versions outright.

Evidence layer

Supported evidence types

Every source is registered with what it can prove and a reliability weight used solely for resolving disagreement between sources — never in a financial calculation.

GPSMock provider

GPS / Telematics

Where the asset actually was, minute by minute

RFIDMock provider

RFID

Tag reads at fixed yard portals

EDIMock provider

EDI

Carrier-declared status milestones

TMSMock provider

TMS

Appointment windows and stop records

FACILITY_GATEMock provider

Facility gate

Independent gate in / gate out records

WEATHERMock provider

Weather

Conditions supporting exception clauses

DOCUMENTOperator input

Document

Signed BOL, POD, seal and scale tickets

MANUAL_ENTRYOperator input

Manual entry

Operator-attested observation, lowest weight

APIMock provider

Generic API

Any additional structured system of record

Engine

The deterministic surface

FunctionResponsibility
calculateDuration()Whole minutes between two timestamps, truncated toward zero
reconstructTimeline()Median-selected event sequence with recorded spread and conflicts
evaluateContractCondition()One condition: observed value, threshold, operator, satisfied
calculateSupportedAmount()Chargeable minutes, increments and supported cents, with cap
calculatePotentialRecovery()Billed minus supported, floored at zero
determineVerificationStatus()Maps completeness, conflict and conditions to one of six statuses
generateCertificateHash()SHA-256 over the canonically serialised certificate body