Data Extraction Engine

A PDF Walks In.
A Discipline Score
Walks Out.

Every uploaded report — a weekly S-curve, a manpower histogram, a cost variance sheet — goes through the same three-stage pipeline: OCR pulls the text out, an AI agent figures out what it's looking at, and a specialized extractor turns it into the numbers a project manager actually needs.

What the Extraction Engine Does

Documents rarely announce what they are. A GPT-4o-mini classification agent reads filename, sheet names, and a content preview together, then assigns discipline, document type, and sub-category with a confidence score — fuzzy enough to handle "EVR_Wk45_final_v2.pdf" without a human renaming anything first.

🔎
OCR Text Extraction
PDFs are parsed via OCR Space with table detection enabled; Excel files are read sheet by sheet — no manual re-typing of numbers out of a scanned report.
🏷️
Three-Level Classification
Discipline (Civil, Piping, Electrical...), document type (S-Curve, EVR, Cost Analysis...), and sub-category (by contract, by shop, weekly/monthly) — all in one AI call.
📐
Full EVM Extractor
Detects planned/actual/earned curves and computes PV, EV, AC, BAC, CPI, SPI, EAC, ETC, and VAC — plus a plain-language delay estimate.
👷
Manpower Extractor
Pulls headcount-by-date series, detects peak and average manning, and flags increasing/decreasing/stable trends for resource planning.
💵
Cost Extractor
Extracts OPEX/CAPEX, budget vs. actual, and computes variance percentage with an automatic over/under-budget status.
🛟
Generic Fallback
Anything that doesn't match a known type still gets basic text stats and a content preview, rather than silently disappearing from the pipeline.

Who Reads the Output

Project Controls Teams

Get CPI/SPI without opening each subcontractor's spreadsheet by hand — the extractor does the arithmetic and flags what's off-track.

Discipline Leads

See only the documents classified under their discipline, with a performance rating attached, instead of digging through a shared drive.

Project Managers

Cross-discipline rankings and recommendations arrive already sorted by priority — high-variance disciplines surface automatically.

Owners & Sponsors

Receive the same numbers translated into an executive summary, without needing to know what SPI stands for.

Feeds Reports · Notifications Directly

The extraction engine doesn't stand alone — it's the first half of the n8n workflow. Once documents are classified and extracted, the results are merged, grouped by discipline, and cross-analyzed before being handed to the backend's report generator.

Classification Router A switch node inspects the AI's documentType field and routes to the matching extractor — S-Curve/EVR, Manpower, Cost, or the generic fallback.
Discipline Grouping All extracted documents are merged and grouped by discipline, aggregating average SPI/CPI and an overall performance rating per discipline.
Cross-Discipline Intelligence Rankings, top performers, at-risk disciplines, and priority-sorted recommendations are computed once, then handed to the backend as a single payload.
Webhook Handoff The final payload is POSTed to the backend's authenticated /api/notifications/webhook endpoint, which takes over report generation and distribution.

Next Module

From extracted data to a delivered report

Once disciplines are scored and ranked, Reports · Notifications turns that data into an HTML/PDF report and sends it out.