Every connected vehicle carries a SIM card.
And every SIM card sends a bill.
Hundreds of thousands of vehicles. One very large invoice. Every single month.
VFBill
Read it. Question it. Split it fairly.
The monthly flood
Every month, this arrives.
XML≈0
e-invoices
one per bill account
XLSX≈0
usage rows
one for every SIM and every charge
PDF€
truck fleet invoice
totals only, no line detail
Somebody has to answer a simple question.
Is this invoice right?
What VFBill answers
Four questions about the money.
1
Is the invoice right?
Reconcile
3
What should we have been charged?
Forecast
4
What is broken in the fleet?
Operate
The foundation
Everything starts with a phone number.
#
Phone numberon every invoice line
SIM
SIM cardthe subscription
TCU
Telematics unitthe device
SIM active before the vehicle exists
unit swapped in service
evidence: service swap records
evidence: plant assignment files
every answer carries its source
An inference is never written down as a fact.
Question 1 · Reconcile
Is the invoice right?
Usage recordsevery SIM, every charge
Price listthe contracted tariff
Master dataSIM, device, vehicle
Vodafone systemssynced every night
THE INVOICE
TWO RULES · NEVER ASSUMED, ONLY PROVEN
ExhaustiveEvery charge lands in exactly one bucket.
ReconcilingThe buckets equal the invoice total, to the cent.
⚠ If it does not reconcile, the screen says so. No plausible chart is drawn over a gap.
Question 2 · Allocate
Who pays?
ONE MONTH'S INVOICE
Passenger & commercial vehiclesthe largest unit
INSIDE THE UNIT, IT SPLITS AGAIN
Vehicle costone-off, at activation
Operating costrecurring connectivity
OTAupdate data
Another brandbuilt under contract
Unidentified: shown by name, never silently absorbed. → corrected in a later month, when the evidence arrives
Bar widths are illustrative.
A twist
Two units. Competing brands.
Unit A
sees its own slice, only
Unit B
sees its own slice, only
the other unit's amounts
the other unit's line counts
anything derivable by subtraction
Serverfilters by scope
Browserown slice only
Not hidden in the browser. Never sent to it.
The rule cannot be switched off from the application
Payment approval
Right numbers have to stay right.
a live dashboard
computed oncerecorded runevery screen reads the record
Vehicle cost
Operating
OTA
SMS
Trucks
Other brand
Controller summary
fingerprint (sample)a3f9 c2e1
7b04 d86e
✓ matches the record
✕ recomputed or unlocked: no longer valid
Question 3 · Forecast
What should we have been charged?
SIM tableusagecontract
→ a forecast, built from scratch
above forecast ≠ over-billed
≈ ¾ of the gap: activation fees billed months latethe real claim
open→submitted→under review→accepted→credit note
amounts frozen when claimedcontract deadline trackedevery change audited
Question 4 · Operate
What is broken in the fleet?
built abroad · roaming
home
0
lines ready for roaming to be closed
0
SIMs billing from a spare-parts depot
0
SIMs in swapped-out units, silent since
One billing period, September 2026.
The fingerprint of a case leaves out the month, so the same problem is investigated once.
Ask the data
And now, you can simply ask.
Which model cost the most in September 2026?
PRE-CHECK · a small, fast model
✓in scope?
✓not asking for personal data?
Every permission rule applies to the AI, unchanged.
Under the hood
Deliberately boring.
Reactfront end
.NET APIone service
Postgresone database
message queuenothing exotic
No passwords
People: a one-time link by e-mail.
Partner systems: short-lived tokens that can only upload.
Stored reports
Computed once, stored. Screens open in milliseconds.
computed 14:02 · inputs unchanged
Built fast, kept honest
0commits in 7 weeks
0tests on the arithmetic
What we learned
A number nobody can explain
is a number nobody should pay.
Recordyour answers
Lockwhat is approved
Showthe gaps
VFBill
what we pay forwho paysand why
Thank you.
VFBill
A narrated talk · 13 slides · about 7 minutes
Space play / pause · ← → slides · C captions · F fullscreen