Verification Checklist -- P4 Bois du Littoral
Per-Source Row Counts
| Source | Expected rows |
|---|---|
| Forestry inventory | 500 |
| Sawmill production | 320 |
| Customs/export | 180 |
| Tag-to-batch mapping | 480 |
Tag-to-Batch Mapping Statistics
After cleaning (pad leading zeros to 4 digits, trim whitespace):
| Metric | Expected value |
|---|---|
| Successfully matched records | ~440 |
| Quarantined records | ~40 |
| Match rate | ~92% |
Quarantined records include: genuinely unmatchable tags (~8 data entry errors), partnership concession format tags (~20 PC3-/PC4- format if not handled), and records that remain unresolvable after cleaning (~12).
Chain of Custody Statistics
| Metric | Expected value |
|---|---|
| Total shipments in customs data | 180 |
| Shipments with complete chain of custody | ~160 |
| Shipments with incomplete chain of custody | ~20 |
| Completion rate | ~89% |
A shipment has "complete" chain of custody when every sawmill batch number in its batch_numbers field can be traced through the mapping to forestry log tags with valid concession records.
Yield Ranges by Species
| Species | Expected yield range (sawn timber out / log volume in) |
|---|---|
| Sapelli | 40-55% |
| Ayous | 45-60% |
| Azobe | 35-50% |
| Iroko | 42-58% |
| Moabi | 38-52% |
Hardwoods (azobe, moabi) typically yield lower due to density and processing complexity. Yield is calculated from sawmill data: sawn_timber_out_m3 / log_volume_in_m3.
Mart Summary Values
After full pipeline build:
- Total forestry volume across all 4 concessions: verify against SUM of forestry volume_m3
- Total sawn timber output: verify against SUM of sawmill sawn_timber_out_m3
- Shipment count by destination port: Antwerp should be highest (~35%)
- Average yield across all species: should be in the 40-55% range