How your contracts and invoices are handled

Where an uploaded document is stored, which parts of it an AI model sees, how every quoted clause is checked against your own file, and how to have documents deleted.

Last updated 2026-09-04

A service contract is a commercially sensitive document. It carries your rates, your sites, your equipment and the terms you negotiated. This page describes exactly what happens to one after you upload it, in enough detail that you can decide whether you are comfortable before you do.

What you upload, and where it goes

Files travel to us over HTTPS. Plain HTTP is redirected rather than served, so a document is never transmitted in the clear. The uploaded bytes are written to Cloudflare R2 object storage, which is not publicly addressable — there is no URL that serves your contract to anyone who guesses it. Audit records, credit balances and account details live in a separate Cloudflare D1 database that stores object keys rather than file contents.

Every audit is scoped to the account that created it. The route that serves a report looks it up by audit id and account id together, so a signed-in customer cannot read another customer's report by changing the id in the address bar.

Which parts an AI model actually sees

Text is extracted from your PDFs on our own server before any model is involved. That step costs nothing and uses no AI. If a PDF turns out to be a scan with no text layer, its pages are transcribed once by a vision model and the transcription is cached against the file's content hash, so the same scan is never sent for transcription twice.

The extracted contract text and the parsed invoice are then sent to OpenAI's API to be indexed and adjudicated. Ladgerline uses the OpenAI API rather than a consumer product; under OpenAI's API data policy, content submitted through the API is not used to train their models. We do not send your documents to any other third party.

  • Text extraction and page mapping — on our server, no model involved.
  • Scan transcription — a vision model, once per file, then cached.
  • Contract indexing and invoice parsing — a fast model, once per contract.
  • Coverage adjudication — a reasoning model, the only judgement call in the pipeline.
  • Citation verification — on our server, no model involved.

Why a quoted clause is a real clause

The single largest risk in applying a language model to a contract is that it invents a clause which reads plausibly and is not there. Ladgerline handles this by refusing to trust the model's quotes. Every quoted passage is located character-for-character in the text extracted from your own upload. A quote that cannot be found is discarded and its finding downgraded to “requires confirmation” rather than shown to you as a finding.

Dates, serial numbers, invoice arithmetic and hourly-rate comparisons are not asked of a model at all. They are computed in ordinary code, because they have exact answers and a model should not be guessing at them.

Accounts and passwords

Passwords are hashed with scrypt using a unique random salt per account and are never stored in a readable form. Verification uses a constant-time comparison, so a near-miss cannot be used to recover a hash byte by byte. Sessions are random tokens with a stored expiry, and signing out deletes the session record rather than merely clearing your browser.

How long documents are kept

Uploaded documents and their audit reports are retained for as long as your account exists, so that you can reopen a past report without paying to run it again. There is currently no automatic deletion schedule, and we would rather say so plainly than imply one that does not exist.

To have specific documents or your whole account removed, email support@ladgerline.com from the address on the account. We delete the stored files, the audit records and the account itself. Making this a self-service control in the product is on the roadmap.

What Ladgerline does not do

  • It never contacts your vendor. The dispute email is a draft you edit and send yourself.
  • It does not sell, rent or share your documents with anyone.
  • It does not train any model on your contracts or invoices.
  • It is not legal advice, and it does not guarantee a refund or any particular outcome.