Data Forge
Automated ingestion and modeling of warehouse and operational data into a governed lakehouse.
What Data Forge does
Data Forge takes the ERP exports, spreadsheets, and warehouse tables your business already runs on and lands them in a governed lakehouse, profiled, mapped, and modeled. The result is clean, connected data that is ready for analytics and AI, without replacing the systems that produce it.
Operations, finance, and data teams who spend more time assembling reports than acting on them.
- Profile last month's inventory export and flag anything that looks off.
- Map the new supplier file to our item master.
- Which pipelines failed overnight, and why?
Example questions. Answers come from your own connected data.
Twenty systems in, one governed view out
Twenty siloed systems to one model-ready view in six steps. No ERP implementation.
Example dataA fictional manufacturer with twenty systems. All names and figures are made up.
Twenty systems, twenty opinions
The same PO, part, and supplier, spelled differently everywhere.
Core ERP and finance
Sourcing and supplier
Logistics and operations
Reference and external
- Purchase ordersSAP ECCCSV412k rows61 cols
- Goods receiptsSAP ECCCSV651k rows54 cols
- Material masterSAP ECCCSV88k rows140 cols
- Vendor masterSAP ECCCSV5k rows96 cols
- Purchase ordersNetSuite, Vernon plantJSON96k rows44 cols
- Invoice registerGreat Plains APCSV233k rows38 cols
- Card and travel spendConcurCSV158k rows36 cols
- RequisitionsCoupaCSV74k rows52 cols
- Order confirmationsSupplier portalXLSX61k rows22 cols
- Supplier scorecardsSharePointXLSX9k rows31 cols
- Contract metadataDocuSign CLMJSON2k rows47 cols
- Quote and RFQ logPlant workbookXLSX19k rows26 cols
- Nonconformance logQuality, plant 2XLSX5k rows29 cols
- Shipment tracking3PL platformCSV184k rows40 cols
- Freight invoicesCustoms brokerCSV121k rows33 cols
- Inventory on handWMSPARQUET1.2M rows25 cols
- Production consumptionMESPARQUET2.9M rows19 cols
- Customs entry summariesBroker filingsPDF42k rows58 cols
- Resin price indexMarket data feedCSV2k rows12 cols
- Purchasing archiveLegacy AS/400FIXED604k rows72 cols
Why this costs you weeks
- One PO, four IDs:
4500012880,PO-12880,12880-A,0004500012880 - Quantities disagree
- Dates arrive in five formats
- One supplier, six spellings
Reconciling twenty systems by hand is never finished.
Three of the twenty, up close
SAP ECC, purchase orders
ERP_PO_Export.csv
| EBELN | EBELP | MATNR | MENGE | NETPR | LIFNR | BEDAT |
|---|---|---|---|---|---|---|
| 4500012880 | 10 | RM-4401 | 500 | 12.40 | V00391 | 2025-11-03 |
| 4500012881 | 20 | RM-7620 | 1200 | 3.85 | V00104 | 2025-11-04 |
| 4500012882 | 10 | RM-1155 | 250 | 28.70 | V00391 | 2025-11-05 |
s3://client-landing/erp/
Supplier portal, confirmations
SupplierConfirmations_Nov.xlsx
| Order Number | Line | Part # | Qty Confirmed | Unit Cost | Vendor Code | Promise Date |
|---|---|---|---|---|---|---|
| PO-12880 | 1 | RM-4401 | 500 | $12.40 | ACM-391 | 11/10/2025 |
| PO-12881 | 2 | RM-7620 | 1,000 | $3.85 | BLK-104 | 11/12/2025 |
| PO-12882 | 1 | RM-1155 | 250 | $28.70 | ACM-391 | 11/14/2025 |
s3://client-landing/portal/
3PL platform, shipments
ShipmentTracking_Q4.csv
| ref_id | line_item | sku | ship_qty | declared_val | carrier_acct | etd |
|---|---|---|---|---|---|---|
| 12880-A | LN10 | 4401 | 500 | 6200.00 | FDX-9281 | 2025-11-08 |
| 12881-A | LN20 | 7620 | 1000 | 3850.00 | UPS-4410 | 2025-11-10 |
| 12882-A | LN10 | 1155 | 250 | 7175.00 | FDX-9281 | 2025-11-12 |
s3://client-landing/3pl/
Data Forge reads each source where it sits
Six formats land raw in warehouse evidence tables.
- SAP PO
- SAP GR
- SAP MARA
- SAP LFA1
- NetSuite
- AP register
- Concur
- Coupa
- Portal
- Scorecards
- CLM
- RFQ log
- NCR log
- 3PL
- Freight
- WMS
- MES
- Customs
- Resin index
- AS/400
Evidence tables in your warehouse
- Every file lands raw: every column, every format
- Nothing dropped, nothing assumed
- Runs on your compute: Databricks, Snowflake, Spark, or DuckDB
6 formats, one landing pattern
- CSV, JSON, XLSX, PARQUET, PDF, FIXED
- Workbooks keep sheet names and merged headers
- PDFs keep the page each value came from
What is deliberately not happening
- No row leaves your warehouse
- No row is sent to a model
- Models see column names and profiles, never your data
One schema, proposed across all twenty at once
Names, types, and values compared across every source, then scored.
34 fields in the target schema. 12 shown.
What the proposal is built from
- Five signals, scored across all twenty sources
- Column names, types, and value overlap
- Uniqueness, density, and format signature
MM/DD/YYYYandYYYY-MM-DDboth becomeorder_date
Confidence decides the route
- Above 0.85: accepted and logged
- Below 0.85: sent to review with the evidence
- Your decisions are remembered for the next source
A mapping it refused to make
carrier_acctlooked like a vendor field by name- 94% of its values never appear in vendor fields
Mapped to carrier_id instead. Supplier data stays clean.
You approve before it lands
- Every mapping is inspectable and editable
- The model proposes, your team decides
- Nothing is written on a guess
Six spellings, one supplier
Vendor records resolve to legal entities and roll up to parent groups.
One supplier, as twenty systems spell it
Master record. Tax ID 12-3456789, remit-to Ogden UT
Vendor code crosswalk, email domain acme-materials.example
Name 0.99, same remit-to address, same bank account fingerprint
Name 0.93, legacy vendor number 03391 in the crosswalk table
Name 0.86, plant address matches the ship-from on 41 receipts
Name 0.81 but a different tax ID and an MX registration
Name 0.74 and nothing else. No shared tax ID, address, or domain
Rolled up the way you buy
- 2 legal entities, one negotiating relationship
- Finance still pays and reports each entity separately
$14.2M of leverage no single system showed.
- Acme Materials Inc.5 vendor records merged, 4 systems$9.6M
- Acme Materials de Mexico S.A.2 vendor records merged, 2 systems$4.6M
Where it refuses to guess
- A similar name is never enough
- Needs a shared tax ID, address, bank account, email domain, or crosswalk entry
- Every merge is logged and reversible
Acme Logistics has none of those, so it goes to review.
Every line lands in your taxonomy
Every line classified into your own category tree.
Line-level classification
Raw materials > Polymers > Polyethylene
Logistics > Ground freight > LTL
MRO services > Metrology > Calibration
MRO > Power transmission > Bearings
Services > Contingent labor > Production
Unclassified
The taxonomy is yours
- Starts from your GL accounts and commodity codes
- UNSPSC alongside, for benchmarking
- Only assigns categories that already exist
Every assignment shows its work
- Stores the text read, who decided, and the confidence
- Corrections become rules for next quarter
MISC CHARGES waits for a person to classify it.
One source of truth, ready for any model
A governed view over the evidence tables, with lineage on every row.
Unified procurement view
| po_number | material_id | quantity | unit_price | supplier | category | sources | status |
|---|---|---|---|---|---|---|---|
| 4500012880 | RM-4401 | 500 | 12.4000 | Acme Materials Inc. | Polymers > PE | 4 | Confirmed |
| 4500012881 | RM-7620 | 1200 | 3.8500 | Example Chemical Co. | Additives > Stabilizers | 5 | Qty mismatch |
| 4500012882 | RM-1155 | 250 | 28.7000 | Acme Materials de Mexico | Polymers > Compounds | 3 | Confirmed |
| 4500012884 | MRO-8820 | 12 | 41.1000 | Example Bearing Co. | MRO > Bearings | 2 | Duplicate invoice |
Sources = systems that contributed to the row, not copies of it.
Discrepancies surface on their own
4500012881: 1,000 confirmed against 1,200 ordered4500012884: the same invoice through AP and the freight broker
Nobody went looking. The unified view found them.
Every row traces home
- Every row links to its source file and ingestion run
- Supplier and category decisions carry the same trail
- Any number can be checked at its source
Next quarter's new source
- Maps into the same schema
- Resolves to the same suppliers and the same tree
- The view your team and models read does not change
Integration without an ERP implementation.
Key capabilities
Profile before you load
Every CSV, Excel workbook, and warehouse table is profiled on arrival, so data types, gaps, and outliers are known before anything lands.
Guided field mapping
Source fields are matched to a shared domain model with suggested mappings that your team reviews and confirms before they are applied.
Schema drift detection
When a source system changes shape, Data Forge flags the change instead of silently loading bad data.
Supplier identity resolution
Vendor records from every system resolve to real legal entities and roll up to parent groups. Each merge needs corroborating evidence and can be reversed.
Spend in your own taxonomy
Line items classify into the category tree your team already uses, with UNSPSC alongside for benchmarking. Anything uncertain goes to review, never to an invented category.
Layered lakehouse models
Raw, cleaned, and aggregated layers on Databricks and Delta Lake keep an auditable path from source file to final metric.
Governed access
Unity Catalog permissions control who can see and change each table, so AI assistants only reach the data they are allowed to.
Pipelines you can talk to
Jobs and pipelines are scheduled, run, and monitored from the same conversation your team uses to ask questions.
Works alongside
Quote Forge
ERP and quoting intelligence for manufacturers, covering bid pipelines, material sourcing, inventory coverage, and customer order visibility.
Learn more →Prospector Forge
An AI prospecting engine that researches, scores, and prioritizes target accounts.
Learn more →Tariff Forge
Tariff classification intelligence for imported components, producing defensible HTSUS decision records.
Learn more →See Data Forge on your own data
Tell us which systems you run and where the questions pile up. We will show you what Data Forge can answer.