How to Extract and Normalize Supplier PDFs and Excel Files into One Schema

Ben Hartig
Ben Hartig
Co-Founder & CTO
Last updated on
October 22, 2026
Extracting Supplier PDFs and Excel Into One Schema

Every supplier thinks their file format is the obvious one. The price list arrives as a spreadsheet, the catalog as a PDF, and the invoice as a document with a header block and product lines underneath. Your system has one defined schema, and none of the three files matches it, so without automated tools, your operations team eventually reformats the data by hand.

Combining these formats into a single table takes two main steps: extracting the raw data, then mapping, validating, and cleaning it against your schema. Here is a breakdown of how these steps differ, why quick manual fixes don’t work over time, and how to set up an automated, streamlined pipeline with the right technology.

Five Tools. Five Approaches. Which Fits Your Team?

Compare CSVBox, Dromo, Flatfile, OneSchema, and Ingestro, and see which data onboarding tool your team can best run on its own.

Compare tools

Two jobs hiding inside one question

Teams often look for one solution that “extracts and normalizes.” In practice, those are separate problems with distinct points of failure.

JobQuestion it answersTypical approachWhere it breaks
ExtractionWhat’s in this document, and where?Document AI services, open-source parsers, custom scriptsLayouts differ by supplier, and the output is raw text or tables, not your schema
NormalizationHow does this content fit our schema?ETL pipelines, spreadsheet formulas, importers, per-supplier mappingsEvery new source needs new mapping logic, and errors get caught late

Excel files mostly need normalization. PDFs and invoices need both steps in sequence. If you only extract data, you get clean text that still doesn’t fit your system.

Invoice tools usually handle just one document type. This guide covers a broader problem: processing invoices alongside price lists, catalogs, and stock sheets into a single schema.

Why supplier data arrives as PDFs, Excel files, and invoices at once

Suppliers don’t coordinate their formats. Each one sends what its own systems create, or what’s easiest for the person sending it.

Teams that process external data describe a consistent pattern: Most data arrives via email as spreadsheets, PDFs, or images – and a single file can combine data that belongs in different tables.

Consider a typical week:

  • One vendor emails an Excel list with hidden tabs.
  • Another sends a PDF catalog with embedded tables.
  • A third attaches invoices with stacked line items. All three describe overlapping products, but none use your field names.

What the manual route costs

Manual data processing seems fairly “doable” for a single file. It’s a series of small tasks: copying tables, retyping totals, and checking product codes.

The cost shows up in the structure of the work:

  • Finding errors takes time. Tracking down the cause of a failure often takes longer than fixing it.
  • Specialists create bottlenecks. When custom rules live in a few minds, only those people can fix “failed” files.
  • Scaling works only with headcount. More supplier files directly demand more manual hours.
  • Work is repeated. One person extracts the data, and another reviews it before importing.

Reformatting a single file by hand is manageable – doing it for dozens of different layouts is where your team’s time disappears.

Why a PDF parser alone won’t solve it

When PDFs slow you down, a better parser feels like the answer. It might help, but it only solves part of the problem.

Extracted tables still use supplier terms. Column names, units, and categories won’t match your system out of the box.

Each common answer has a limit:

ApproachWorks whenBreaks when
Custom parser and scriptsOne or two stable layoutsLayouts change, business logic moves into code, and every fix needs a developer
Document AI serviceYou need text and tables out of documentsYou still need to map, validate, and clean the output into your schema
ETL pipelineSources are structured and stableSources arrive as PDFs or as spreadsheets with changing headers
Chat assistantOne small, low-stakes fileResults can differ from run to run, nothing enforces your validation rules, and there’s no record of what changed
Invoice-capture productInvoices are the only document typeYou also receive price lists, catalogs, and stock sheets

AI chat assistants are often a popular quick fix. They can restructure a file based on your instructions. However, they work one prompt at a time, and nothing guarantees they will handle the next file the same way. For a recurring process with customer or supplier data, you need rules that run the same way every time and a record you can inspect.

What one schema has to settle for supplier data

A target schema is more than column names. It defines how to align different file structures. Here are common mismatches and the rules each one needs:

MismatchExampleRule to set
Header and line itemsAn invoice lists supplier and totals once, then many product linesModel it as linked tables: one header record and many line records, joined by an invoice ID
One field versus twoA source holds one combined price where your schema separates list price and discountDefine the split once and apply it to every source
Categories and required fieldsThe product category decides which attributes are mandatoryMake required fields depend on category, and validate per category
Identifiers and joinsA catalog and a stock sheet describe the same product under different IDsChoose one primary key, map the others to it, and flag duplicates
CorrectionsA later file corrects a price in an earlier oneDecide whether corrections overwrite or append, and record which
Units, currency, and datesWeights in pounds in one file and kilograms in anotherFix the target format, convert on the way in, and flag ambiguous values

Two areas deserve a closer look. Per-category rules cause rework if a user selects the wrong category. Joins work best when unique IDs exist across both files.

How to build the pipeline, step by step

These steps work with any approach or platform:

  1. Define the target schema. List every field, its type, whether it’s required, and the rule behind it. Include linked tables where one document holds more than one record type.
  2. Collect samples in every format. Gather price lists, catalogs, stock sheets, and invoices from five to 10 suppliers, including the awkward ones. Anonymize them if needed.
  3. Extract documents into tables. Turn each PDF or invoice into one or more tables, and keep track of where each value came from in the document.
  4. Map, validate, and clean. Run every source, spreadsheet, or document through the same three stages in that order. Map source columns to schema fields, validate against your system’s rules, and clean what fails.
  5. Review by exception. Let rules handle clean rows, and send only low-confidence or failing rows to a person.
  6. Decide how to treat partial files. Choose whether a file with some errors is accepted with an error report or rejected, and apply that choice consistently.
  7. Route failures to a person. Put anything the rules can’t resolve into a short review queue instead of an email thread.
  8. Measure. Track hours from the first supplier file received to the first successful import, per supplier and per format.

Keep documents in the same flow

PDFs and invoices need more review because extraction varies. However, you should still keep them in your main workflow. They feed your central schema and require the same validation rules.

What to ask before you share supplier files

Supplier files can include prices, terms, and contact details. Before you send them to any vendor, ask these questions:

  • Can you see what the AI extracted and where in the document it came from?
  • Is confidence visible, so low-confidence values get extra review?
  • What happens when a file has errors: is it accepted with a report, or rejected?
  • Where does your data run, who can see it, and can you self-host, keep an audit trail, or bring your own LLM?
  • Can a person review every proposed change before it applies, and are the rules that execute deterministic?
  • Can your implementation or operations team run it without an engineering ticket?
  • Can you test it on real, anonymized files before you commit?

If a vendor can’t answer yes to the last question, treat that as an answer.

Build, assemble, or buy

Prototypes are fast to build. A developer can write a script to parse a single PDF in a few days. The real cost comes later when you maintain the code.

Custom parserAssembled stackData onboarding platform
First working importFast for one or two layoutsModerate, because several parts must connectFast once your schema is defined
When sources changeA developer updates the parserSeveral components may need changesYou review the changed mapping and keep the schema
Who owns itEngineeringEngineering plus whoever owns each serviceImplementation and operations teams
Review and traceabilityYou build them yourselfYou build them across componentsPart of the platform
Edge casesHandled one ticket at a timeHandled one ticket at a time, across more partsHandled as reusable rules

Decide who will maintain this pipeline in two years. If engineering time is limited, a purpose-built data onboarding tool makes sense. Building in-house works if you have available developers and stable file layouts.

Bringing PDFs and spreadsheets into one flow

The build-or-buy question comes down to one thing: who maintains the connection between what suppliers send and what your system expects? That’s the work we built Ingestro to take on. Ingestro is an AI platform for software vendors and service providers that regularly receive customer, supplier, and partner files across sources and formats.

Here’s how a supplier file moves through it:

  • Upload in any format. Ingestro extracts the tables and other content from PDFs, and spreadsheets enter the same workflow. Documents stop being a special case that someone handles by hand.
  • Restructure what was extracted. Your team can reshape the content into the tables your schema needs, for example, splitting an invoice into a header table and a line-item table. They can do that manually or describe the change to an AI agent. Optional AI steps can handle joins, splits, and nesting in one pass, and everything the agent does can also be done by hand.
  • Map, validate, and clean. AI-powered data mapping proposes how each source fits your target data model. Validation checks the data against your system’s rules, and cleaning fixes what fails.
  • Review before import. A team member reviews the output before it moves into your system.

Because PDFs and spreadsheets share one flow, the rules you set once can apply to every source in the same way. That includes category-dependent required fields, ID-based joins, and unit formats from the schema section above.

The practical difference from the assembled stack is that you maintain one schema and one set of rules, not a separate parser, pipeline, or script for each format.

Questions teams ask before they change the process

Can one platform handle both PDFs and Excel files?

Yes, in many cases. What matters is that extraction and normalization are connected, so documents and spreadsheets pass through the same mapping, validation, and cleaning.

Do I need a separate OCR step?

It depends on the PDF. A scanned document needs text recognition before extraction, while a text-based PDF doesn’t. Ask any vendor how it handles each type.

How do I handle different units or currencies?

Set the target format in your schema, convert on the way in, and flag ambiguous values. A person should review the flagged ones.

How is this different from a document AI service?

A document AI service typically returns what’s in a document. A data preparation platform also maps that content to your schema, validates it, and cleans it.

How is this different from an invoice-capture product?

Invoice-capture products typically focus on invoices. A broader approach handles invoices alongside price lists, catalogs, and stock sheets in one schema.

Do I need a template per supplier?

No, if you define one target schema. A new supplier changes the mapping, not the setup. Our guide on mapping files without a template per sender explains how.

A quick self-audit for your team

Before you look into fixing the process, get a clear picture of where supplier data enters today. These three questions give you a baseline:

  • How many different formats did our suppliers send last month, and which ones did someone retype by hand?
  • Which fields do we always correct, such as units, categories, or product IDs, and where is that rule written down?
  • How many hours pass between receiving a supplier file and the first successful import?

If these issues sound familiar, manual data processing may be costing more than you think. Ingestro can take that same mix of PDFs, spreadsheets, and invoices and run it through one flow, from extraction to mapping, validation, and cleaning against your target schema. To see how this can work on your own supplier files, get in touch with our team.

New report: The hidden costs of implementation
455 conversations with nearly 200 software companies across 12 industries reveal where implementation and onboarding teams spend most of their time.
Read Ingestro report

See how easily you can turn your customer files into ready-to-use data with Ingestro’s AI agents.

Keep exploring

icon