Extract data from bid and tender submissions
A bid submission is a supplier's structured response to a tender, and behind its cover page sits a document that maps almost one to one onto the OASIS UBL 2.1 Order and Quotation models and the X12 850 segments that procurement systems speak. The header carries a bid number (the UBL cbc:ID, the X12 BEG03), an issue date (BEG05), the tenderer and the buyer with their addresses and contacts, and the RFQ or solicitation number the bid answers. The body is a priced line array: for each item a line number, an item code, a description, a quantity, a unit price, and a line total, plus tax and an optional per-line delivery date. E-procurement teams and the buyer ERP need this document as fields, not as a scanned page, so a bid can be loaded next to fifteen others on the same axis. The gap is that suppliers answer a tender in whatever their sales system prints, while the buyer wants UBL-shaped data. One bidder quotes per line, another attaches a separate price schedule, and a third states delivery terms as free text next to the ship-to address. Delivery terms carry an Incoterm and a named place (FOB Hamburg, CIF Rotterdam), the payment terms and a payment means code state how the supplier expects to be paid, and a validity period end date fixes how long the quoted price holds. Certifications such as an ISO 9001 registration ride along as a qualifications list with issue and expiry dates, and a destination country and accounting cost center attach for customs and internal coding. None of it is standardized on the page even though the target data model is. Give the bid to Talonic and the header, the priced line items, the delivery and payment terms, the validity period, and the qualifications come back as structured fields aligned to the UBL element names. A submission dated 2026-05-12 from Baumann Fertigung GmbH answering RFQ 2026-114, quoting EUR 51,000.00 across two lines plus EUR 9,690.00 in 19% VAT for a total of EUR 60,690.00, valid to 2026-08-10 on DAP Munich terms, loads into an e-procurement system as comparable data. Line totals foot to the line-extension subtotal, tax adds to the payable total, and each certification carries its own dates, so a buyer works from structured fields rather than paging through PDFs. Talonic captures what the bid states and maps it to the data model; how the bid is scored is the buyer decision.
What gets extracted from bid and tender submissions
How extraction works for bid and tender submissions
Bids arrive as supplier PDFs, e-procurement portal exports, and occasionally as EDI that has been printed back to paper, and the pricing granularity differs on each. Talonic classifies the submission and maps it to the order model in the Field Registry, separating the header from the priced line array, the delivery and payment terms, and the qualifications. Item codes, quantities, unit prices, and line totals are typed per line and checked to foot against the line-extension subtotal, tax is added to reach the payable total, Incoterms and their named place are read as stated, and the validity period end date is parsed to a date. Certifications return as a list with issue and expiry dates. Every value returns with a confidence score and a pixel-region pointer conforming to DIN SPEC 91491, so a procurement analyst can verify a unit price or a validity date against the source bid before it enters the evaluation.
Sample extraction
A two-line bid answering a public tender, priced in EUR with 19% VAT
{
"document_number": "BID-2026-0417",
"document_date": "2026-05-12",
"tenderer.name": "Baumann Fertigung GmbH",
"buyer.name": "Stadtwerke Muenchen",
"procurement.rfq_number": "RFQ 2026-114",
"currency": "EUR",
"line_extension_total": 51000,
"tax_amount": 9690,
"total_amount": 60690,
"delivery_terms": "DAP",
"delivery_terms_location": "Munich",
"validity_period_end_date": "2026-08-10",
"note": "Lines 37,000.00 + 14,000.00 = 51,000.00; +19% VAT 9,690.00 = 60,690.00",
"bid_items": [
{
"line_number": "1",
"item_code": "TRF-630",
"item_description": "Medium-voltage transformer, 630 kVA",
"quantity": 20,
"unit_price": 1850,
"line_amount": 37000
},
{
"line_number": "2",
"item_code": "INSTALL",
"item_description": "Installation and commissioning",
"quantity": 1,
"unit_price": 14000,
"line_amount": 14000
}
],
"qualifications": [
{
"certification_name": "ISO 9001:2015",
"issue_date": "2024-03-01",
"expiry_date": "2027-03-01"
}
]
}Frequently asked
How does this differ from the commercial bid extractor?
This page targets the submission as a structured procurement document mapped to UBL and X12 850 fields (item codes, quantities, RFQ reference, delivery and payment terms). The commercial bid extractor leans on the contractual clauses. Many teams run both against the same file.
Do the line items and totals foot?
Yes. Each line total (quantity times unit price) is checked against the printed line amount, the lines foot to the line-extension subtotal, and tax is added to reach the payable total, so a bid stated at EUR 60,690.00 is verified to add up from its parts.
Are Incoterms and delivery terms captured?
The delivery terms return as an Incoterm plus its named place, for example FOB Hamburg or DAP Munich, alongside the requested delivery date and the ship-to address, because the delivery basis changes the landed cost a buyer compares.
What about certifications and validity?
Certifications such as ISO 9001 return as a qualifications array with issue and expiry dates, and the validity period end date fixes how long the quoted price stands, so a buyer can see at a glance whether a bid is still binding and compliant.
Ready to extract from your own bid and tender submissions?
Author note
Reviewed by Talonic engineering · last reviewed 2026-07-07