How a quote gets read
Supplier quotes have no shared format at all. One is a spreadsheet export, one is a PDF from an accounting package, one is a photograph of a handwritten sheet, and one is four sentences in the body of an email. The reader has to cope with all of them and be checkable afterwards.
Key takeaways
- Every extracted value stores the page, the line and the raw text it came from.
- The raw text is kept verbatim, not just the parsed number.
- Quantities and units are extracted separately; a number without a unit is incomplete.
- Terms pages are read too. That is where the exclusions usually live.
- An unreadable quote is flagged for a person, never partially guessed at.
One document to line items
- Compute
- Database
- App integration
- Analytics
- Front-end & mobile
Provenance on everything
Every stored value carries three things beyond the value itself: which page it was on, which line, and the raw text as it appeared. That last one matters more than it sounds. “Tiling — 11m2 — £840” parses cleanly; “Tiling to splashback area only, POA” does not, and the difference is invisible once both have been reduced to a row in a table.
The practical payoff is that the comparison can render every figure as a link back to the page it came from. Somebody querying a number resolves it in five seconds instead of reopening three PDFs, and that turns out to be the difference between a comparison people trust and one they redo by hand.
The terms pages
The exclusions are almost never in the line items. They are in the paragraph after the total, or on a separate terms page, or in a single sentence like “price assumes clear access and existing services in working order”. Reading only the priced table is the single most common way an automated comparison goes wrong.
So the terms text is extracted as its own object, associated with the quote rather than with any line, and every sentence containing an exclusionary construction is kept verbatim for the normaliser to work on. No summarising at this stage; the wording is the evidence.
When it cannot read something
- Compute
- Security & identity
- Management
- Front-end & mobile
- People
The flag is specific: it names the page, crops the region, and states what was ambiguous. “Could not read quote 3” is an unhelpful message that gets ignored; “page 2, line 7 — is this £830 or £530?” gets answered immediately.
Keeping the original
The source document is stored unmodified alongside the extraction, permanently for as long as the quote is live and for a period after the job. Extraction improves, formats change, and a disagreement six months later is settled by the original rather than by the parse.
Next: making three quotes comparable.
All posts