Data

Building products & industrial supply
Sample data. Every figure, product and customer name is invented to show the shape of the tool. Real numbers appear once your own data is loaded.
Quality score
58 / 100
22 issues found · blocking −15, serious −5, advisory −1
Files
25
1 need attention
Tables
15
32,997 rows landed with real types

Rows landed per table

Top 12 of 15 tables, from your structured uploads.

crew_hours14Kjob_costs8,383estimate_lines4,256po_lines1,963job_activity1,912leads706invoices_ar570purchase_orders442vendor_price_list416change_orders221jobs218inventory118
CategoryValue
crew_hours14K
job_costs8,383
estimate_lines4,256
po_lines1,963
job_activity1,912
leads706
invoices_ar570
purchase_orders442
vendor_price_list416
change_orders221
jobs218
inventory118

What arrived, by week

Files ingested per ISO week — gaps are weeks nothing landed.

0102030402026-W332026-W342026-W362
Categoryfiles
2026-W3322
2026-W341
2026-W362

Files by type and status

Every status is on the chart — a failed file is a fact, not an embarrassment.

05101520csvpdfdocxpngtxtxlsx
ingestedduplicatefailed
Categoryingestedduplicatefailed
csv1300
pdf610
docx200
png001
txt100
xlsx100

Sources

Files can arrive by upload or straight from a cloud drive. Synced files run through the identical pipeline — re-syncing an unchanged file is detected and skipped.

25 uploaded by hand

Data quality

Found by reading your rows, not by a rule you configured. Issues that corrupt grouping also ride the charts they affect.

serious: 5 advisory: 17

SeverityColumnKind RowsWhat it means
seriouschange_orders.statusmissing values4444 of 221 rows (19.9%) are blank with no pattern explaining which ones.
seriousinvoices_ar.invoice_numberduplicate identifiers4invoice_number is named like a unique key and is 99.3% unique, but 4 row(s) share a value with another row. Joining on it multiplies rows and double-counts money.
seriousjob_costs.invoice_numberduplicate identifiers364invoice_number is named like a unique key and is 95.7% unique, but 364 row(s) share a value with another row. Joining on it multiplies rows and double-counts money.
seriousjob_costs.job_idorphan references251251 rows (3.0%) reference a job_id that does not exist in jobs. Examples: J-241782, J-241790, J-241994. Any total grouped through jobs silently excludes them.
seriousjob_costs.cost_categorycasing drift03 value(s) differ only by capitalisation, so they group as separate categories: Equipment / equipment; Material / material; Subcontractor / subcontractor
advisorychange_orders.approved_dateconditional column100Blank on 100 rows (45.2%), but that is expected: it is blank exactly when status is 'Pending', 'Rejected', 'Verbal'. Filter on status rather than treating the blanks as missing data, and use the non-blank subset as the denominator.
advisoryinventory.descriptionpossible spelling variants01 pair(s) of near-identical values that may be the same thing typed differently: 2x10x16 #2 SYP / 2x6x16 #2 SYP
advisoryinvoices_ar.paid_datemissing values4747 of 570 rows (8.2%) are blank with no pattern explaining which ones.
advisoryjob_activity.notepossible spelling variants05823 pair(s) of near-identical values that may be the same thing typed differently: Crew pulled to Angier for the morning / Crew pulled to Dunn for the morning; Crew pulled to Angier for the morning / Crew pulled to Micro for the morning; Crew pulled to Benson for the morning / Crew pulled to Dunn for the morning
advisoryjob_costs.tradevalues outside the reference list519519 rows (6.2%) carry a trade that subcontractors does not list: General conditions. Usually fine — only a problem if you expected subcontractors to be exhaustive.
advisoryjob_costs.trademissing values419419 of 8,383 rows (5.0%) are blank with no pattern explaining which ones.
advisoryjobs.actual_complete_dateconditional column41Blank on 41 rows (18.8%), but that is expected: it is blank exactly when status is 'In production', 'Signed, mobilising'. Filter on status rather than treating the blanks as missing data, and use the non-blank subset as the denominator.
advisoryjobs.townpossible spelling variants02 pair(s) of near-identical values that may be the same thing typed differently: Wilson's Mills / Wilsons Mills; Wilson's Mills / wilsons mills
advisoryleads.won_job_idconditional column519Blank on 519 rows (73.5%), but that is expected: it is blank exactly when outcome is 'Lost', 'No response', 'Quoted, no decision'. Filter on outcome rather than treating the blanks as missing data, and use the non-blank subset as the denominator.
advisoryleads.first_contact_atconditional column144Blank on 144 rows (20.4%), but that is expected: it is blank exactly when outcome is 'No response'. Filter on outcome rather than treating the blanks as missing data, and use the non-blank subset as the denominator.
advisoryleads.response_minutesconditional column144Blank on 144 rows (20.4%), but that is expected: it is blank exactly when outcome is 'No response'. Filter on outcome rather than treating the blanks as missing data, and use the non-blank subset as the denominator.
advisorypo_lines.descriptionpossible spelling variants01 pair(s) of near-identical values that may be the same thing typed differently: 2x10x16 #2 SYP / 2x6x16 #2 SYP
advisorypurchase_orders.received_datemissing values2121 of 442 rows (4.8%) are blank with no pattern explaining which ones.
advisorypurchase_orders.promised_datemissing values66 of 442 rows (1.4%) are blank with no pattern explaining which ones.
advisoryvendor_price_list.skupossible spelling variants09 pair(s) of near-identical values that may be the same thing typed differently: DCK-54X6-12 / DCK-54X6-16; LMB-2X10-16 / LMB-2X12-16; LMB-2X4-12 / LMB-2X4-16
advisoryvendor_price_list.descriptionpossible spelling variants011 pair(s) of near-identical values that may be the same thing typed differently: 1x4 D boards KD / 1x6 D boards KD; 2x10 #2 SYP KD / 2x12 #2 SYP KD; 2x10 #2 SYP KD / 2x4 #2 SYP KD
advisoryvendor_price_list.dimensionpossible spelling variants01 pair(s) of near-identical values that may be the same thing typed differently: 1x6x16 / 1x6x6

Who and what shows up

Values taken from columns the profiler already typed as a person, place, category or code — counted across your tables, not extracted from prose.

People and organizations

16
ValueTables RowsSeen in
Ridgeview Mutual187invoices_ar.payer_name ×87, invoice-ridgeview-remittance-2026-0518.pdf, master-services-ridgeview-2025.docx
invoices_ar.csv
Blue Ridge Casualty134invoices_ar.payer_name ×34
invoices_ar.csv
Sandhills Property & Casualty127invoices_ar.payer_name ×27
invoices_ar.csv
Tarheel Indemnity122invoices_ar.payer_name ×22
invoices_ar.csv
Cardinal Peak Mutual118invoices_ar.payer_name ×18
invoices_ar.csv
Neuse Valley Insurance118invoices_ar.payer_name ×18
invoices_ar.csv
Whole-house remodel117jobs.job_name ×17
jobs.csv
Braddock Dental Group115invoices_ar.payer_name ×15
invoices_ar.csv
Wakefield Veterinary115invoices_ar.payer_name ×15
invoices_ar.csv
Ferrand Optical114invoices_ar.payer_name ×14
invoices_ar.csv
Basement finish113jobs.job_name ×13
jobs.csv
Master suite addition113jobs.job_name ×13
jobs.csv
Vestry Dental113invoices_ar.payer_name ×13
invoices_ar.csv
Ardmore Logistics112invoices_ar.payer_name ×12
invoices_ar.csv
Home addition112jobs.job_name ×12
jobs.csv
Bathroom remodel, 2 baths111jobs.job_name ×11
jobs.csv

Places

16
ValueTables RowsSeen in
Johnston2658leads.county ×492, jobs.county ×166, weekly-price-sheet-piedmont-2026-0727.pdf, master-services-ridgeview-2025.docx
jobs.csv, leads.csv
Clayton2100leads.town ×74, jobs.town ×26
jobs.csv, leads.csv
Harnett296leads.county ×80, jobs.county ×16, master-services-ridgeview-2025.docx
jobs.csv, leads.csv
Four Oaks288leads.town ×68, jobs.town ×15, jobs.town ×5, order-ack-piedmont-2026-0803.pdf, samples.pdf
jobs.csv, leads.csv
Wake284leads.county ×65, jobs.county ×19, invoice-tarheel-concrete-2026-0402.pdf
jobs.csv, leads.csv
Wilson272leads.county ×29, leads.town ×29, jobs.county ×7, jobs.town ×7
jobs.csv, leads.csv
Smithfield271leads.town ×54, jobs.town ×17
jobs.csv, leads.csv
Archer Lodge257leads.town ×39, jobs.town ×18
jobs.csv, leads.csv
Benson252leads.town ×40, jobs.town ×12, invoice-tarheel-concrete-2026-0402.pdf
jobs.csv, leads.csv
Princeton252leads.town ×43, jobs.town ×9
jobs.csv, leads.csv
Dunn251leads.town ×43, jobs.town ×8
jobs.csv, leads.csv
Goldsboro250leads.town ×40, jobs.town ×10
jobs.csv, leads.csv
Wayne250leads.county ×40, jobs.county ×10, master-services-ridgeview-2025.docx
jobs.csv, leads.csv
Micro249leads.town ×36, jobs.town ×13
jobs.csv, leads.csv
Kenly248leads.town ×34, jobs.town ×14
jobs.csv, leads.csv
Pine Level246leads.town ×37, jobs.town ×8, jobs.town ×1
jobs.csv, leads.csv

Categories

16
ValueTables RowsSeen in
Electrical51,358job_costs.trade ×727, estimate_lines.trade ×433, po_lines.category ×185, inventory.category ×9, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, estimate_lines.csv, inventory.csv, job_costs.csv
Plumbing51,334job_costs.trade ×608, estimate_lines.trade ×374, po_lines.category ×344, inventory.category ×5, acme_corporation_export_branch_stock_summary.category ×3
Acme-Corporation-Export.xlsx, estimate_lines.csv, inventory.csv, job_costs.csv
Flooring51,189job_costs.trade ×629, estimate_lines.trade ×386, po_lines.category ×168, acme_corporation_export_branch_stock_summary.category ×3, inventory.category ×3
Acme-Corporation-Export.xlsx, estimate_lines.csv, inventory.csv, job_costs.csv
Drywall51,185job_costs.trade ×643, estimate_lines.trade ×363, po_lines.category ×162, inventory.category ×13, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, estimate_lines.csv, inventory.csv, job_costs.csv
Roofing5753job_costs.trade ×405, estimate_lines.trade ×231, po_lines.category ×100, inventory.category ×13, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, estimate_lines.csv, inventory.csv, job_costs.csv
Selma4255purchase_orders.branch ×141, jobs.branch ×76, inventory.branch ×27, acme_corporation_export_branch_stock_summary.branch ×11
Acme-Corporation-Export.xlsx, inventory.csv, jobs.csv, purchase_orders.csv
Clayton4248purchase_orders.branch ×139, jobs.branch ×71, inventory.branch ×27, acme_corporation_export_branch_stock_summary.branch ×11
Acme-Corporation-Export.xlsx, inventory.csv, jobs.csv, purchase_orders.csv
Four Oaks4185purchase_orders.branch ×95, jobs.branch ×46, inventory.branch ×32, acme_corporation_export_branch_stock_summary.branch ×12
Acme-Corporation-Export.xlsx, inventory.csv, jobs.csv, purchase_orders.csv
Smithfield4135purchase_orders.branch ×67, inventory.branch ×32, jobs.branch ×25, acme_corporation_export_branch_stock_summary.branch ×11
Acme-Corporation-Export.xlsx, inventory.csv, jobs.csv, purchase_orders.csv
ea31,997estimate_lines.unit ×1175, po_lines.unit ×777, inventory.unit ×45
estimate_lines.csv, inventory.csv, po_lines.csv
Piedmont Building Supply3975job_costs.vendor ×483, vendor_price_list.vendor ×416, purchase_orders.vendor ×76
job_costs.csv, purchase_orders.csv, vendor_price_list.csv
lf3697estimate_lines.unit ×668, po_lines.unit ×26, inventory.unit ×3
estimate_lines.csv, inventory.csv, po_lines.csv
Tools & Safety3350po_lines.category ×339, inventory.category ×7, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, inventory.csv, po_lines.csv
sq3261estimate_lines.unit ×231, po_lines.unit ×26, inventory.unit ×4
estimate_lines.csv, inventory.csv, po_lines.csv
Lumber3209po_lines.category ×186, inventory.category ×19, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, inventory.csv, po_lines.csv
Paint & Sundries3203po_lines.category ×189, inventory.category ×10, acme_corporation_export_branch_stock_summary.category ×4
Acme-Corporation-Export.xlsx, inventory.csv, po_lines.csv

Codes and identifiers

12
ValueTables RowsSeen in
J-25120110289crew_hours.job_id ×194, job_costs.job_id ×34, estimate_lines.job_id ×24, po_lines.job_id ×21, job_activity.job_id ×5, invoices_ar.job_id ×4, purchase_orders.job_id ×4, change_orders.job_id ×1, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25080310252crew_hours.job_id ×132, job_costs.job_id ×47, estimate_lines.job_id ×25, po_lines.job_id ×21, job_activity.job_id ×14, purchase_orders.job_id ×5, invoices_ar.job_id ×4, change_orders.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25090610241crew_hours.job_id ×143, job_costs.job_id ×32, po_lines.job_id ×25, estimate_lines.job_id ×22, job_activity.job_id ×6, purchase_orders.job_id ×6, invoices_ar.job_id ×3, change_orders.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-24090910238crew_hours.job_id ×135, job_costs.job_id ×38, estimate_lines.job_id ×22, po_lines.job_id ×21, job_activity.job_id ×11, change_orders.job_id ×3, invoices_ar.job_id ×3, purchase_orders.job_id ×3, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25101010236crew_hours.job_id ×127, job_costs.job_id ×42, po_lines.job_id ×25, estimate_lines.job_id ×16, job_activity.job_id ×13, purchase_orders.job_id ×5, change_orders.job_id ×3, invoices_ar.job_id ×3, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25050110231crew_hours.job_id ×143, job_costs.job_id ×31, estimate_lines.job_id ×19, job_activity.job_id ×14, po_lines.job_id ×12, change_orders.job_id ×5, purchase_orders.job_id ×3, invoices_ar.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-26020510226crew_hours.job_id ×140, job_costs.job_id ×37, po_lines.job_id ×15, estimate_lines.job_id ×13, job_activity.job_id ×9, purchase_orders.job_id ×5, change_orders.job_id ×3, invoices_ar.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25060910223crew_hours.job_id ×122, job_costs.job_id ×38, estimate_lines.job_id ×26, po_lines.job_id ×16, job_activity.job_id ×10, change_orders.job_id ×3, invoices_ar.job_id ×3, purchase_orders.job_id ×3, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25070710217crew_hours.job_id ×110, job_costs.job_id ×51, estimate_lines.job_id ×21, po_lines.job_id ×19, job_activity.job_id ×6, invoices_ar.job_id ×4, purchase_orders.job_id ×3, change_orders.job_id ×1, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-24120210216crew_hours.job_id ×110, job_costs.job_id ×42, estimate_lines.job_id ×25, po_lines.job_id ×15, job_activity.job_id ×14, change_orders.job_id ×3, purchase_orders.job_id ×3, invoices_ar.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-24091110204crew_hours.job_id ×108, job_costs.job_id ×43, estimate_lines.job_id ×20, po_lines.job_id ×16, job_activity.job_id ×6, invoices_ar.job_id ×4, purchase_orders.job_id ×3, change_orders.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv
J-25100910191crew_hours.job_id ×102, job_costs.job_id ×42, estimate_lines.job_id ×21, po_lines.job_id ×11, invoices_ar.job_id ×4, job_activity.job_id ×4, change_orders.job_id ×3, purchase_orders.job_id ×2, jobs.job_id ×1, leads.won_job_id ×1
change_orders.csv, crew_hours.csv, estimate_lines.csv, invoices_ar.csv

Related material

Tables and documents that share language already in the catalog or the extracted passages. Not a trained topic model.

Your documents

Everything uploaded, and what became of it. Remove a file to delete it from this tenant — that also clears a duplicate block on the same bytes.

duplicate: 1 failed: 1 ingested: 23
FileTypeSizeStatus
samples.pdf4,427 KBDuplicateidentical to already-ingested 'samples.pdf'
image.png164 KBFailedunsupported file type '.png' — PDF, DOCX, TXT, MD, XLSX, CSV and TSV are supported
samples.pdfother4,427 KBIngested9 passages
memo-change-order-policy-2026-06.txtcorrespondence0 KBIngested1 passages
master-services-ridgeview-2025.docxother1 KBIngested1 passages
subcontract-meridian-drywall-2026.docxcontract1 KBIngested1 passages
invoice-ridgeview-remittance-2026-0518.pdfinvoice1 KBIngested1 passages
weekly-price-sheet-piedmont-2026-0727.pdfother1 KBIngested1 passages
order-ack-piedmont-2026-0803.pdfother1 KBIngested1 passages
invoice-tarheel-concrete-2026-0402.pdfinvoice1 KBIngested1 passages
invoice-meridian-drywall-2026-0311.pdfinvoice1 KBIngested1 passages
vendor_price_list.csvdata32 KBIngested1 table(s)

Data catalog

Every table found in your files, landed with real column types.

TableRowsCols Key entitiesSource
acme_corporation_export_branch_stock_summary456branch, categoryAcme-Corporation-Export.xlsx / Branch Stock Summary
acme_corporation_export_vendor_scorecard68vendorAcme-Corporation-Export.xlsx / Vendor Scorecard
change_orders2218co_id, job_id, description, statuschange_orders.csv
crew_hours13,7276employee, job_idcrew_hours.csv
estimate_lines4,2568job_id, line_code, trade, descriptionestimate_lines.csv
inventory1189sku, description, category, branchinventory.csv
invoices_ar5709invoice_number, job_id, payer_name, payer_typeinvoices_ar.csv
job_activity1,9125job_id, author, entry_type, notejob_activity.csv
job_costs8,3839cost_id, job_id, vendor, tradejob_costs.csv
jobs21818job_id, job_name, job_type, site_addressjobs.csv
leads70611lead_id, source, town, countyleads.csv
po_lines1,9639po_number, job_id, sku, descriptionpo_lines.csv
purchase_orders44210po_number, job_id, vendor, branchpurchase_orders.csv
subcontractors147sub_name, trade, license_numbersubcontractors.csv
vendor_price_list4166vendor, sku, description, dimensionvendor_price_list.csv

Time coverage

The date range each table actually spans — gaps here mean missing exports.

TableCoverage
change_ordersco_date: 2024-09-09 to 2026-07-28
crew_hourswork_date: 2024-08-26 to 2026-07-31
inventorylast_counted: 2025-07-19 to 2026-07-28
invoices_arinvoice_date: 2024-09-12 to 2026-07-31
job_activitylog_date: 2024-08-30 to 2026-08-03
job_costscost_date: 2024-08-27 to 2026-07-31
jobsstart_date: 2024-08-24 to 2026-07-30
leadsreceived_at: 2024-08-01 to 2026-07-31
purchase_ordersorder_date: 2024-09-09 to 2026-07-30
subcontractorscoi_expiry: 2026-07-27 to 2027-06-16
vendor_price_listweek_of: 2026-02-02 to 2026-07-27