On a 50,000-tonne-a-year recovery facility running 5% black plastic, roughly 2,500 tonnes of recyclable material drops to landfill every year, part of the 3% to 15% of the waste stream that standard optical sorting cannot see (our 2026 market analysis). The reason is physical: carbon black absorbs across the near-infrared, so a black polypropylene tray on a black belt is a zero-signal void to every standard NIR sorter. The reflex is to treat black-plastic recovery as an accuracy race, dragging a classifier from the zero it scores on that blind stream toward the lab's near-perfect number. We built a runnable demo, Assay, to argue the race is aimed at the wrong target: a materials recovery facility sells a bale that meets a spec, and what decides whether a bale meets that spec is the guarantee layer wrapped around the classifier, a calibrated abstain, a PVC hard-reject, and a deterministic policy check. You can run the whole pipeline at veriprajna.com/demos/materials-recovery-ai.
The material is recoverable because the mid-wave infrared signature, from 2.7 to 5.3 microns, still reads even when the near-infrared goes dark. Carbon black dims the MWIR signal without zeroing it, and that residual signal is what a sensor can read. A side-belt sensing station placed downstream of the primary sort can classify that black-heavy residue from its MWIR spectrum. But addressable is not the same as sellable.
The APR Model Bale Spec for Grade A recycled polypropylene is a hard line: at least 97% PP and no more than 0.5% PVC. A missed bale gets rejected outright: a landfill redirect fee, and a damaged relationship with the recycler who bought it. As PPWR Regulation 2025/40 and California SB 54 make carbon-black packaging marketable only where the material can actually be graded and recovered (our 2026 market review), the facility that wins is the one that can hand a buyer or an auditor a bale that provably meets the number.
The toggle that settles it
That distinction is easy to assert and easy to doubt, so the demo makes it visible in a single control. Assay classifies each object on a side-belt from its 154-band MWIR spectrum with a from-scratch numpy 1D-CNN, then wraps three deterministic decisions around it: a calibrated confidence gate that abstains on what it cannot prove, a PVC hard-reject, and a policy gate that checks the finished bale against the encoded APR spec. Leave that layer on and, on demo seed 11, the bale lands at 99.2% PP with zero PVC leak and passes as Grade A rPP.
Confidence gate ON, demo seed 11: the signed bale certificate reads 99.2% PP and 0% PVC leak, both APR clauses check green, and the bale passes as Grade A rPP. The run binned 121 objects, held 38 to manual QC, caught 17 PVC and leaked none, and recorded 1,250 t/yr recovered rPP.
Now flip the confidence gate off, which turns the classifier into a naive argmax that labels every object with its single best guess. Nothing about the model changes. Same weights, same stream, same objects. The bale now accumulates the marginal reads the gate used to hold back, and the finished bale measures 94.2% PP with 1.94% PVC. The policy gate checks it against the spec and the PVC clause fails on its face, 1.94% against a 0.5% ceiling, so the bale is rejected.
Confidence gate OFF on the same model and the same stream: the bale measures 94.2% PP and 1.94% PVC. The APR PVC clause fails, 1.94% against the 0.5% ceiling, and the certificate marks the bale rejected.
Both bales came off one model. The only thing that moved between them was whether an object the classifier was unsure about got guessed into the bale or held out of it.
A sellable bale is produced by the guarantee infrastructure, the calibrated abstain, the PVC hard-reject, and the deterministic policy gate, not by the raw classifier. Flip the gate off and the same model on the same stream ships a failing bale.
This is why the moat does not age out. When next year's classifier is better, it still emits an occasional low-confidence read on a multilayer laminate or a contaminated flake. A better classifier lowers how often that read appears, and something still has to decide whether it enters a bale that carries a purity guarantee.
Holding back what it cannot call
At the 0.86 confidence threshold, objects the CNN cannot cleanly call, a multilayer laminate whose spectrum matches no single polymer, a food-contaminated flake, go to manual QC and stay out of the bale. PVC is treated asymmetrically and hard-rejected on a low threshold, because one PVC false-negative in a PP bale is a chlorine problem the downstream recycler inherits. Across a 60-bale fitted-gate set that discipline costs roughly 12.6% of the stream routed to QC and recovers about 71% of the PP, while catching about 99.8% of the PVC. The cost is paid in QC labor, and the return is a bale that clears the spec.
Confidence gate ON: 38 objects held to MANUAL QC and PVC routed to its own reject bin rather than guessed into the rPP bin, with the bale reading BALE CERTIFIED. The abstain and hard-reject are what keep the composition inside the APR line.
Honest accuracy, on purpose
None of this rests on an inflated accuracy claim. On a deliberately dirtier held-out heavy stream of 1,700 objects, our 1D-CNN reads 0.894 balanced accuracy, sitting close to the 83.4% peer-reviewed field benchmark for MWIR classification of real waste (Resources, Conservation & Recycling, January 2026), with an interpretable peak-ratio rule at 0.668 anchoring it so the model is not grading its own homework. That is the honest cold-start band, anchored to the peer-reviewed field number and shown on the benchmark panel deliberately rather than reaching for the near-99% Specim lab figure. The purity result is what carries the argument: across 40 random heavy-stream bales, the gated bale meets APR Grade A about 85% of the time versus about 22.5% for naive argmax (the dashboard rounds those to 85% and 23%).
The benchmark panel, held-out heavy stream: the 1D-CNN at 0.894 sits beside the 0.668 peak-ratio rule and the 0.834 peer-reviewed field number, well below the ~99% Specim lab figure. Below it, the gated bale meets APR Grade A 85% of the time against 23% for naive argmax across 40 random bales.
Every bale ships a certificate, not a dashboard reading you have to take on trust. Click through and Assay writes a hashed (sha256) record: the measured composition, every APR clause checked with its pass or fail, the model hash, the counts auto-accepted and abstained to QC and hard-rejected, and the recovered tonnage and revenue for the facility profile. It is regenerated on every run. That is the artifact an EPR or PPWR auditor can file, and it is the part of the system that survives whatever the classifier does next, because it states the bale's measured purity as a recorded fact.
We are careful about what this proves. The spectra come from a physics-grounded emulator standing in for a Specim FX50, the ejector is a logged stub, and the figures above are demo-set numbers, not a field deployment. What the demo settles is narrower and, we think, more useful: where a bale's purity actually comes from, the classifier's raw accuracy or the gate, abstain, and policy check wrapped around it. If you run a recovery line, the question worth pulling the records for is which of your rejected bales failed because the classifier was wrong, and which failed because a marginal read was allowed into the bale that a gate would have held back. You can run both bales, gate on and gate off, on the same stream at veriprajna.com/demos/materials-recovery-ai and read the certificate yourself.