# Pine Assembly Workshop: bill of materials, work order, conformance certificate and inspection documents

The shop and quality paperwork around one production order: a multi-level bill of materials in four formats, the order exploded against it, a routing and cost build-up that closes exactly to standard, an inspection report with real measured deviations against bilateral and unilateral tolerances, the nonconformances that follow, and the certificate of conformance that discloses them rather than hiding them.

All parties, amounts and identifiers are fictional. Fixed snapshot: 2026-09-08. Records are derived from the shared operating model `inventory-manufacturing`, so identifiers join across this set, across the other commercial document sets, and across every fixture built on the same model.

## Reconciliation identities this set asserts

- Extended quantity is quantity per parent times parent quantity on every explosion row, and the leaf totals of 8 LEG, 2 PANEL and 24 SCREW equal the material requirements the model holds for BUILD-1.
- Leaf material of 25.20 USD plus added value of 14.80 is the 40.00 USD standard cost of a finished unit.
- The work order costs 50.40 of material, 18.50 of labour and 11.10 of overhead, which is 80.00 USD and exactly the standard cost of the output, so the variance is zero.
- Total routing time is 10 setup minutes plus 10 run minutes per unit times 2 units, which is 30 minutes.
- A reading passes only when it lies between both limits inclusive; 23 of 25 do, and the 2 that do not each raise one nonconformance.
- Every gauge is in calibration on the inspection date and every characteristic is measured by exactly one gauge.
- Every evidence reference in the certificate of conformance and the lot genealogy names a file that exists in this directory.

## Parameters this set introduces

These are properties of the document class, not of the operating model. They are declared once and every file in the set agrees with them.

- The routing: 5 operations with setup and run times, a labour rate of 37.00 USD an hour and overhead absorbed at 60 percent of labour. The model carries parts, a bill of materials and production orders and nothing about how the work is done.
- The drawing DRW-LEG-002 revision C, its 5 characteristics and their tolerances, four bilateral and one unilateral.
- The measured readings, the gauges and their calibration dates, the sampling table and the lot number LOT-2026-0912.
- The material certificate properties, which are invented values in a plausible shape, and the fictional test methods they name.

## Files

| File | Format | Validity | What it is |
| --- | --- | --- | --- |
| `bill-of-materials-indented.csv` | csv | valid | Indented bill of materials |
| `bill-of-materials-explosion.csv` | csv | valid | Bill of materials exploded for a production order |
| `bill-of-materials-explosion-rollup-mismatch.csv` | csv | invalid | Exploded bill of materials whose sub-assembly quantities do not roll up |
| `bill-of-materials.json` | json | valid | Bill of materials JSON |
| `bill-of-materials.xml` | xml | valid | Bill of materials XML |
| `standard-cost-rollup.csv` | csv | valid | Standard cost roll-up |
| `bill-of-materials.xlsx` | xlsx | valid | Bill of materials workbook |
| `work-order-operations.csv` | csv | valid | Work order routing |
| `work-order-cost.csv` | csv | valid | Work order cost build-up |
| `work-order-register.csv` | csv | valid | Work order register |
| `material-issue-list.csv` | csv | valid | Material issue list |
| `work-order-BUILD-1.pdf` | pdf | valid | Work order (PDF) |
| `work-order-BUILD-1.docx` | docx | valid | Work order (DOCX) |
| `inspection-characteristics.csv` | csv | valid | Inspection characteristics and tolerances |
| `inspection-measurements.csv` | csv | valid | Inspection measurements with tolerances |
| `inspection-measurements.xlsx` | xlsx | valid | Inspection measurement workbook |
| `inspection-summary.csv` | csv | valid | Inspection summary |
| `inspection-report-INS-2026-0001.pdf` | pdf | valid | Inspection report with measured tolerances |
| `nonconformance-register.csv` | csv | valid | Nonconformance register |
| `nonconformance-report-NCR-2026-0001.pdf` | pdf | valid | Nonconformance report |
| `gauge-calibration-register.csv` | csv | valid | Gauge calibration register |
| `sampling-plan.csv` | csv | valid | Attribute sampling plan |
| `certificate-of-conformance-COC-2026-0001.pdf` | pdf | valid | Certificate of conformance (PDF) |
| `certificate-of-conformance-COC-2026-0001.docx` | docx | valid | Certificate of conformance (DOCX) |
| `certificate-of-conformance-register.csv` | csv | valid | Certificate of conformance register |
| `material-certificate-MC-2026-0001.pdf` | pdf | valid | Material certificate |
| `lot-genealogy.csv` | csv | valid | Lot genealogy |
| `first-article-inspection.csv` | csv | valid | First article inspection |
| `yield-and-scrap.csv` | csv | valid | Yield and scrap |
| `quality-reconciliation.json` | json | reference | Manufacturing and quality reconciliation identities |
| `README.md` | md | reference | Document set README |

## Deliberate defects

These files are broken on purpose. Each is a single named mutation of a correct file in the same directory, and the size of the discrepancy is stated, so a parser under test can be checked against both.

- **`bill-of-materials-explosion-rollup-mismatch.csv`** One row of 6 fails the multiplication: 8 times 2 is 16, not 12. SCREW totals 20 against a declared 24, a shortfall of 4; LEG and PANEL still agree, so a checker that only compares grand totals across all components misses which branch caused it.

## Notes and limits

- None of this is an engineering record. The drawing does not exist, no part was made and no measurement was taken; the readings are fixed values chosen so that the pass and fail logic can be checked.
- The bill of materials must not be totalled across every row. Sub-assembly rows carry the same material as the leaves beneath them, which is why every structure file has an is_assembly flag.
- SCREW is reached down two branches with different quantities per parent, so a reader that takes the first match for a component is short by the other branch.
- The surface roughness characteristic has a unilateral tolerance, so its lower limit equals its nominal. Assuming symmetry computes a lower limit that is 0.4 below the correct one and passes a reading the drawing rejects.
- Component scrap and finished-goods yield are different measures. Two legs were scrapped and replaced, and every order still yields its full quantity of finished units.
