Skip to main content

Extract data from quotations and proposals

A quotation is a supplier's offer to sell goods or services at stated prices, binding until it expires, and for the sales engineer who issues it the document is both a commercial commitment and the opening move in a negotiation. Vendors send thousands of them: a machine-tool builder quoting a configured line with a 30-day validity, a software reseller pricing a three-year proposal with staged discounts, a fabricator answering a buyer's RFQ with a quote number that has to travel all the way through to the eventual invoice. UBL models the document as a Quotation, X12 as the 843 response to an RFQ, and EDIFACT as QUOTES, yet the PDF that reaches the customer follows the seller's own letterhead, so the numbers a buyer needs to compare offers never arrive in a form a spreadsheet can rank. Comparability is the whole problem. Two vendors quoting the same specification present it three different ways: one bundles freight into the unit price, another itemizes it, a third quotes ex-works and lets the Incoterm do the talking. Validity dates matter because a quote lapses, and a buyer who orders against an expired price invites a dispute. Payment terms, lead times, and the reference back to the originating RFQ each sit in a different corner of the page. Staged or volume discounts turn a single line into a small pricing table of its own. Talonic reads the quotation and returns the supplier and its contact, the buyer, the quote number, the issue and valid-until dates, the RFQ reference, the currency, and a line array with each item, quantity, unit price, and line total, plus subtotal, tax, and total. An offer of €54,900 valid until 2026-05-20 lands as structured fields a buyer can drop straight into a bid comparison, so quote evaluation stops being a copy-and-paste exercise.

What gets extracted from quotations and proposals

Quotation NumberQUO-2026-0891
Quotation Date2026-04-20
Valid Until2026-05-20Quote expiry date
SupplierMeridian Systems GmbH
Supplier ContactA. Brandt, Sales
BuyerTalvik Industries AB
RFQ ReferenceRFQ-TI-2026-114Links the quote to the request it answers
CurrencyEURISO 4217 code
IncotermsCIF Gothenburg
Quote Total€54,900.00
Line ItemsArray: line, item code, description, quantity, unit price, line total

How extraction works for quotations and proposals

Quotes come out of CPQ tools, ERP sales modules, and hand-built spreadsheets, so the same offer can arrive as a polished PDF or a scanned signed page. Talonic classifies the quotation and maps it to the quotation model in the Field Registry, which separates the seller and buyer identity block from the priced-line table and the validity and terms metadata. The valid-until date is captured as a first-class field because an expired quote should never be ordered against, the RFQ reference is preserved so the quote links to the request that prompted it, and freight and discounts are kept as their own lines rather than folded into a unit price. Amounts are normalized to their ISO 4217 currency, and the line totals are reconciled against the stated quote total. Every captured value carries a confidence score and a pixel-region anchor back into the source PDF in keeping with DIN SPEC 91491, so a buyer or a sales-ops reviewer can confirm a quoted price or lead time against the document before the offer is compared or accepted.

Sample extraction

A supplier quotation in EUR answering an RFQ, valid for 30 days

{
  "document_number": "QUO-2026-0891",
  "document_date": "2026-04-20",
  "valid_until_date": "2026-05-20",
  "supplier.name": "Meridian Systems GmbH",
  "supplier.contact_person": "A. Brandt, Sales",
  "buyer.name": "Talvik Industries AB",
  "rfq_reference": "RFQ-TI-2026-114",
  "currency": "EUR",
  "incoterms": "CIF Gothenburg",
  "delivery_date": "2026-06-15",
  "line_items": [
    {
      "line_number": 1,
      "item_code": "MS-CTRL-9",
      "description": "Line controller unit",
      "quantity": 3,
      "unit": "EA",
      "unit_price": 14200,
      "line_total": 42600
    },
    {
      "line_number": 2,
      "item_code": "MS-INSTALL",
      "description": "On-site commissioning",
      "quantity": 4,
      "unit": "DAY",
      "unit_price": 1800,
      "line_total": 7200
    }
  ],
  "subtotal": 49800,
  "tax_amount": 5100,
  "total_amount": 54900,
  "payment_terms": "40% on order, 60% Net 30 after delivery"
}

Frequently asked

Does it capture the quote validity date?

Yes. The valid-until date is a first-class field, because a quote that has lapsed should not be ordered against without a re-quote. Both the issue date and the expiry are returned so a buyer can see at a glance whether an offer is still live.

How does a quotation link back to the RFQ it answers?

The RFQ reference is extracted and preserved, so a quote can be matched to the request that prompted it and carried through to the purchase order and invoice. That thread is what lets a sourcing team compare like for like across competing vendors.

Can it separate itemized freight and staged discounts?

Yes. Freight, handling, and volume or staged discounts are kept as their own lines with the sign matching their effect on the total, rather than being folded into a unit price, so a buyer can compare a bundled quote against an itemized one on the same basis.

Is the structured quote ready for a bid comparison?

The output exports to CSV or JSON with the priced lines as a flat array and the header fields once. Loading several quotes in the same shape lets a buyer rank offers on unit price, total, lead time, and terms without retyping each PDF.

Author note

Reviewed by Talonic engineering · last reviewed 2026-07-06