Extract price lists. From PDF to usable data.
Suppliers send PDFs, scans or photos. Your business system needs article numbers, prices and units. We build the connection: AI document processing, reviewable data and DATANORM 4 for article imports. JSON and CSV for Excel are also available.
PDF / ImageExtract articles, variants and prices
JSON / CSVReview and correct against the source
DATANORM 4Export the selected articles
What one price-list page becomes.
Four positions from a fictional supplier document. Reviewable article numbers, prices and price units, with one explicitly excluded position. Switch between the table, JSON and DATANORM.
Keep the price and its unit together.
EUR 8.50 per 100 pieces is not EUR 8.50 per piece. The reference preserves the price basis. A price on request stays empty.
| Article | Price / basis | Export |
|---|---|---|
MW-101Montagewinkel 40 x 40 mm |
2.40 EURper 1 pcs | Include |
MW-205Schutzkappe, schwarz |
8.50 EURper 100 pcs | Include |
MW-310Dichtband 20 mm |
1.85 EURper 1 m | Include |
MW-420Sonderhalter nach Zeichnung |
On request | Excluded |
DATANORM: 3 articles included. 1 position without a price excluded. All prices exclude VAT.
{
"positions": [
{
"article_number": "MW-101",
"bbox": null,
"currency": "EUR",
"description": "Montagewinkel 40 x 40 mm",
"evidence": "MW-101 Montagewinkel 40 x 40 mm 2.40",
"minimum_quantity": null,
"pack_quantity": null,
"price": "2.40",
"price_quantity": "1",
"price_type": "net",
"uncertainties": [],
"unit": "Stück",
"variant": null
},
{
"article_number": "MW-205",
"bbox": null,
"currency": "EUR",
"description": "Schutzkappe, schwarz",
"evidence": "MW-205 Schutzkappe, schwarz 8.50",
"minimum_quantity": null,
"pack_quantity": null,
"price": "8.50",
"price_quantity": "100",
"price_type": "net",
"uncertainties": [],
"unit": "Stück",
"variant": null
},
{
"article_number": "MW-310",
"bbox": null,
"currency": "EUR",
"description": "Dichtband 20 mm",
"evidence": "MW-310 Dichtband 20 mm 1.85",
"minimum_quantity": null,
"pack_quantity": null,
"price": "1.85",
"price_quantity": "1",
"price_type": "net",
"uncertainties": [],
"unit": "m",
"variant": null
},
{
"article_number": "MW-420",
"bbox": null,
"currency": "EUR",
"description": "Sonderhalter nach Zeichnung",
"evidence": "MW-420 Sonderhalter nach Zeichnung auf Anfrage",
"minimum_quantity": null,
"pack_quantity": null,
"price": null,
"price_quantity": null,
"price_type": "net",
"uncertainties": [
"Preis auf Anfrage; nicht für den Preisexport ausgewählt."
],
"unit": "Stück",
"variant": null
}
],
"reference_kind": "manually_transcribed_reference",
"reference_note": "Manuell gegen das fiktive Original geprüfte Referenz, keine gemessene KI-Ausgabe. Manually checked reference from a fictional document, not a measured AI result.",
"schema_version": "1.0",
"source_kind": "synthetic_demo",
"source_page": 1,
"supplier": "Musterwerk Nord",
"valid_from": "2026-09-01",
"warnings": []
}
V 070926Preislisten-Konvertierung Auszug - Werte gegen Quelle pruefen Artikelstamm 04EUR
A;N;MW-101;00;Montagewinkel 40 x 40 mm;;1;0;Stk;240;;;;
B;N;MW-101;;;;0;0;0;;;;;;;;
A;N;MW-205;00;Schutzkappe, schwarz;;1;2;Stk;850;;;;
B;N;MW-205;;;;0;0;0;;;;;;;;
A;N;MW-310;00;Dichtband 20 mm;;1;0;m;185;;;;
B;N;MW-310;;;;0;0;0;;;;;;;;
DATANORM 4 · CP850 · CRLF · EUR
Reference output manually checked against the fictional source. It explains the data flow; it does not measure model extraction quality.
Try it with a price list.
Choose a fictional sample or upload a PDF or image. PDF pages are processed in sequence; save a checkpoint to resume later. Review the extracted positions before creating DATANORM. The interactive demo uses German labels.
Loading connects you to the demo hosted on Hugging Face, where uploaded files are processed. Inactive sessions and temporary files are cleaned up after approximately one hour. Download any results and checkpoints you need to keep.
Loading demo …
Loading is taking longer. Open the demo in its own window or inspect the reference example above.
Live extraction depends on the available ZeroGPU quota. The reference example above is always available.
Open demo in its own windowFrom your supplier’s format to a tested import.
The service is a conversion workflow for your documents and target system. Sample pages, required fields and import rules define the scope.
-
01
Map the formats
Review supplier pages, edge cases and a sample of the required import together.
-
02
Test extraction
Compare AI output with checked references. Record missing rows, wrong fields and correction effort.
-
03
Map the export
Map article numbers, quantities, units and price types to the receiving system’s rules.
-
04
Verify the import
Run an import with test data. Receive the conversion workflow, validation rules, results and a documented handover.
Demo capabilities. Your project’s requirements.
A defined scope makes the next step predictable. Your supplier formats and import rules determine the implementation.
How do I extract a PDF price list to CSV or DATANORM?
Upload a supplier price-list PDF or image. AI extracts article numbers, descriptions, prices and units. Check each row against the source. Download JSON or CSV, or review the export selection to create DATANORM 4. The customer project includes testing the import into your inventory or trade software.
Can I edit the extracted price list in Excel?
Yes. Open the CSV export in Excel and check decimal separators and leading zeros in article numbers during import. The demo currently does not accept XLSX uploads. Create DATANORM in the review interface or from a saved JSON output.
Which files and exports are supported?
The demo accepts PDF, PNG, JPG and WebP up to 100 MB. It processes PDF pages in sequence, with up to 60 positions per model response and 100,000 positions in the combined export. Incomplete pages stay visible. If the quota runs out, save a checkpoint and resume later with the original document. JSON and CSV contain the original extraction; DATANORM contains the subsequently selected and, where necessary, edited articles.
What happens to price tiers and missing information?
The demo’s DATANORM 4 export supports new EUR articles with one general price per article. Tiers, duplicate article identifiers, missing prices and unclear VAT treatment must be corrected or excluded. Prices are not automatically converted or filled in.
Which model does it use?
The public demo uses the Qwen3-VL-8B-Instruct base model without a custom fine-tune. Schema and export checks complement extraction. Model choice for your documents is evaluated against a test set. Explore model comparison
How does this become a production workflow?
Data handling, access controls, hosting and import tests are agreed for your project. Saved JSON can be processed without repeating AI extraction. Accuracy, runtime and correction effort are measured on your documents.