HOW IT WORKS

One invoice in. One defensible decision out.

LedgerLock does not route invoices or move money — your AP system already does that. It sits in front of payment and answers a narrower question: is this bill supported by the contract you signed and the work that actually happened?

01

Send us the packet

Invoices, field tickets, rate sheets, POs, work orders, timesheets, receipts, approval emails. Upload a folder, forward an inbox, or drop a CSV. Nothing has to be clean, and nothing has to come out of your ERP.

  • The vendor's master service agreement and any rate amendments
  • Signed field tickets and timesheets for the billing period
  • Purchase orders, work orders, and the approvals attached to them
  • Fuel, disposal, and third-party receipts
  • The vendor's prior invoices — history is evidence
02

Every line gets matched

Each charge is priced against the contracted rate, allocated to signed proof of work, checked for an approval where one is required, and compared against everything that vendor has already billed you.

  • Rate: billed unit price against the contract or rate sheet in force on the service date
  • Quantity: billed units against the units signed proof actually supports
  • Authority: whether a PO or approval covers the charge, and whether it was still open
  • History: whether these hours, this ticket, or this fee have been billed before
  • Arithmetic: quantity × rate against the line, and lines + tax + fees against the total
03

You get a decision, with receipts

An approve/hold split, a trust score that is never shown without its reason, and a finding for every disputed dollar — each one citing the document, the page, and the line it came from.

  • Approve the supported portion today so the vendor is not held up on the whole bill
  • Hold the disputed portion with the evidence already assembled for the conversation
  • Dismiss a finding as a false positive, with a reason, into the audit log
  • Send the vendor a drafted message — after a human has read and cleared it
A REAL RUN

Invoice BR-18492, Blue Ridge Water Hauling

A month of saltwater disposal and hauling across four well pads. Forty three thousand dollars, eleven line items, thirty one field tickets. Nothing about it looks wrong at a glance, which is the point — this is what a normal invoice from a vendor you like looks like.

What went in

Invoice
BR-18492 · 11 lines
Contract
MSA-2024-BRWH + Exhibit B
Field tickets
31 · 24 signed
Purchase order
PO-9931 · open
Receipts
Fuel and haul, 3,900 mi
Vendor history
18 prior invoices

What came back

Approve
$34,615.00
Hold
$8,255.00
Invoiced
$42,870.00

The approved portion can go out today. The vendor is not held up on a whole month of work because five lines are in question, and your team is not paying forty three thousand dollars to avoid an argument about eight.

The six findings

  • Duplicate ticket

    Critical

    Field ticket FT-4471 was already billed in full on invoice BR-18355, paid 22 days earlier.

    $1,980.00
  • Emergency callout fee with no approval on file

    High

    The MSA allows the fee only against a dispatch authorization. No authorization exists for this service date.

    $2,165.00
  • Unsupported labor hours

    High

    84 hours billed. Signed field tickets support 68. The remaining 16 hours have no proof of work behind them.

    $2,000.00
  • Disposal rate above contract

    High

    850 barrels billed at $8.00. Exhibit B of the master service agreement sets saltwater disposal at $6.00.

    $1,700.00
  • Rental billed past off-rent date

    High

    The frac tank went off rent after 25 days. Line 5 bills 26. The extra day is also inside the duplicate ticket above — see below.

    $480.00
  • Mileage above receipts

    Medium

    4,100 miles billed against 3,900 miles of fuel and haul receipts for the same period.

    $410.00

We count a disputed dollar once.

Two of those six findings reach for the same money. The duplicated ticket carries an equipment-rental day, and the rental-past-off-rent finding claims that identical day. Both are real — the ticket was genuinely billed twice, and the tank genuinely went off rent — but the overlapping dollars are one set of dollars.

The six findings total $8,735.00. Add them up line by line and you hold that rental day twice. LedgerLock records which dollars each finding claims, not merely how many, then prices the union of those claims. The $480.00 claimed twice is held once, so the hold is $8,255.00 — not the $8,735.00 a spreadsheet would produce.

It matters because an inflated hold is the fastest way to lose an argument with a vendor. The first number you put in front of them has to survive their controller checking it.

EVIDENCE

Every held dollar cites a document, a page, and a line.

A finding you cannot source is an accusation. Open the $1,700 disposal-rate finding and this is the whole of it — no score to interpret, no model to take on faith, just the three documents that disagree.

Disposal rate above contract$1,700.00
  • MSA-2024-BRWH.pdfpage 4 · Exhibit B, Rate Schedule

    Saltwater disposal — $6.00 per barrel, all volumes, no minimum.

  • BR-18492.pdfpage 2 · line 7

    Disposal, saltwater — 850.00 BBL @ $8.00 — $6,800.00

  • Rate amendment logno entry

    No amendment to Exhibit B is in force on 06 May 2026.

850 barrels × $2.00 overcharge$1,700.00

That block is what your analyst forwards to the vendor. It is also what an auditor reads two years later, when nobody involved still works here.

THE DECISION

A person decides. Always.

Your analyst opens BR-18492 and works down six findings. Four are clearly right and get held. The callout fee turns out to have been approved by phone during a Sunday night spill response, so it is dismissed as a false positive with that reason recorded. The mileage gap is small enough to let go.

The split updates as they go. When they release the invoice, the approval, the dismissals, the reasons, and the evidence as it stood at that moment are written to an append-only log that nobody — including us — can edit afterwards.

Then the honest constraint: LedgerLock never pays anything, and never sends your vendor a message on its own. It has no payment rails and no outbound authority. It can draft the dispute email; a human reads it and clears it. The product’s job is to make sure the person deciding has the documents in front of them, not to decide for them.

Run it against invoices you have already paid.

Ninety days of history is enough to see whether there is anything to find. If there is not, that is a useful answer too.