Skip to content
Forms and a pen on a wooden table
File-first

Bills, checked against what you signed.

Our estimate: 40–80 invoice formats across 15 countries for a group of this shape. Each line is checked against the contract and the inventory, and every format is learned once.

Request a pilot
A stack of receipts and invoices
What it does
Turns carrier invoices into a tree of sections, lines and usage detail, each line carrying its own service period and direction, checked arithmetically in minor units before anything downstream reads it.
What it reads
CSV and XLSX through saved mappings, built; PDF through AI extraction into a review queue, built, with its accuracy measured per carrier in a pilot; structured e-invoicing XML is planned. Each path carries its own status label on the carriers page.
What stays yours
Every line, exactly as billed. Money stays integer minor units beside its ISO-4217 code, every conversion names the rate id it used, and an unclassified charge is kept and routed to review.
Where it shows up
The cost side of every metric, the evidence behind every dispute, and the most reliable single source the inventory has.

Also inside this capability

Each row opens to what it does and where it stands.

Contracts and pricing

The contract is the second file every bill is read against.

Price lines
Per service, site and country, with amendments and linked documents kept beside the contract.
Notice deadlines
Each contract's notice deadline carries an alert.
Findings
A line billed above or below its contract price, billed before go-live, or billed for a service contracted and never delivered opens a finding.
Status
Built.

Findings and disputes

What the files prove on day one, per operating company, in its own currency.

Billed, missing from inventory
A bill line with no service behind it in the inventory.
Held, missing from bills
A service in the inventory that no bill mentions.
Outside the contract
A charge outside any contract, or outside its contract's term.
Order reference
A charge with no order reference behind it.
Disputes
A finding becomes a dispute with its evidence attached: the bill line, the contract price and the inventory record.
Status
Built.

Bundles

What a bundle is
A managed package the carrier prices as one charge.
How it is read
The charge is split to its member services, so each carries its share of the cost and none is counted twice.
Status
Built.

Who uses it

The reader
Group finance and the accounts-payable team who receive the invoices, and regional IT, who know what the lines are for.
The question
What did each carrier bill this month, line by line, in the currency it billed in, and does the document add up?
What they get
Every invoice as lines with their own service periods, an arithmetic check on the document, a review queue for the uncertain field, and the rate id on every converted figure.
Where it starts
Three invoices, in whatever form the carrier sent them. A PDF, a spreadsheet and a portal export are three different paths into the same tables.

Which paths carry which status

How it is built

The review queue

An extraction engine at 95% accuracy is wrong in front of a CFO one time in twenty, so human review is a first-class surface rather than error handling. A field below the carrier's confidence floor, an unclassified charge, a failed arithmetic check or a Hijri date opens a work item showing the page and the exact location of the claim.

Money that survives audit

Amounts are integer minor units plus an ISO-4217 code, with the exponent read from a currency table. KWD, BHD and OMR have three decimals. FX rates are append-only, a restated rate is a new row, and every converted figure names the rate id it used.

Real billing periods

Recurring charges bill in advance and usage bills in arrears, so one invoice spans two windows. Every line carries its own period, which is what stops a false variance appearing on every install and every disconnect.

Bilingual and local

Arabic-Indic digits, the Arabic decimal and thousands separators, Hijri issue dates with mandatory review confirmation, bilingual label matching, and dated per-jurisdiction tax rates including levies that sit outside the VAT base.

What you get

Lines you can dispute

Each line carries its service period, its direction, its amount in minor units and a pointer back to the page it came from, so a dispute opens with the evidence already attached.

Totals that reconcile

Lines sum to the document total and tax lines sum to the declared tax, in minor units, before anything downstream reads the invoice. A mismatch is a review item, with the failing figures shown.

Conversions you can reproduce

Every converted amount names the rate id it used, and rates are append-only. A figure presented in March is the same figure in September, whatever was restated in between.

Yellow and green cables neatly connected

How it works

  1. LandThe invoice arrives as a file and is stored as immutable raw bytes. Nothing downstream ever edits it; corrections are new claims against it.
  2. ExtractTwo paths write into the same tables, both built: saved mappings for CSV and XLSX, and AI extraction from PDF. Structured e-invoicing XML is planned as a third peer. Every extracted field carries a confidence and a locator.
  3. CheckLines must sum to the document total in minor units, and tax lines must sum to the declared tax. A mismatch opens a review item with the document and the failing figures attached.
  4. ConvertEach figure is held in three layers: as billed, in the entity's functional currency, and in the group's presentation currency. Each layer names its rate id, and the presentation rate is frozen onto the roll-up so a later restatement cannot move a board pack already presented.

One invoice, end to end

A bilingual PDF invoice from a Gulf carrier, billed in a three-decimal currency, followed from the mailbox to the group figure.

Landing
The PDF is stored as raw bytes under the operating company, deduplicated by content hash. A second copy forwarded by a colleague is recognised as the same document.
Extraction
Pages go to the extraction step. Arabic-Indic digits are folded, the Hijri issue date is read and flagged for confirmation, and each field lands with a confidence and a locator.
The check
Twenty-three lines sum to the total in fils, and the VAT line matches the declared tax. One line's charge code is unclassified and opens a review item showing the page.
The review
A person classifies the charge in the queue. The correction is recorded against the invoice as a new claim, with the earlier extraction kept beneath it.
The join
Each line matches a service on the inventory. The recurring charges are held as billed, in the entity's functional currency and in the group's presentation currency, each naming its rate id.
The figure
The month's cost fact per service is fixed, and the group view reads it. A restated rate next month adds a row, and the fixed figure stays as presented.

How the group view fixes the month

Questions about bills

How accurate is the extraction?

Extraction carries uncertainty, so every field lands with a confidence, and anything under the carrier's floor waits for a person. The review queue is where that happens, and it shows the page beside the field.

Do you handle invoices in Arabic?

Yes. Bilingual label matching, Arabic-Indic digits and the Arabic separators are built in, and a Hijri issue date is read and then confirmed by a person before it drives a period.

Arabic-Indic numerals on invoices

Can a carrier's invoice change layout on us?

It will, and a changed layout opens a review item rather than a silently wrong figure. A saved mapping is keyed to the shape of the header row, so the new layout becomes a second mapping and the old one keeps working for the older documents.

Who sees the review queue?

The people you give the billing permission to, inside the operating company the invoice belongs to. Group finance sees the queue across entities through the audited group path, so a stalled item is visible from the seat that cares about the close.

How the boundary is enforced

People crossing a sunlit city street

Send three invoices. A person replies with what they show.

Request a pilot