Pre-deployment ML governance
Every model gets a verdict before it ships.
Validation, fairness, performance, compliance and security checks — and a
comparison against the model already in production — that run
after training and before promotion — reduced to one
status your pipeline can branch on. Built for decisions that answer to
someone: credit scoring, underwriting, pricing and claims.
Including the measures a pricing review actually uses:
exposure-weighted actual-versus-expected by decile, the
Lorenz Gini against the ceiling your book allows, filed monotonicity
constraints checked by partial dependence, and how much of the book moves
when a tariff replaces its incumbent.
Every threshold now carries a confidence interval, and
where it sits decides the verdict: a finding, a clean pass, or
the data cannot say — which is a governance conversation rather
than a broken build. On a floor set where a model actually sits, that
took a gate from disagreeing with itself on nine of ten random halvings
of the same data to none.
And it tests the generative side-car bolted to your model for
indirect prompt injection — untrusted text arriving as a
claim note or a customer email rather than as a chat message, which is the
attack a regulated pipeline actually faces. Canary-based, so a leak is
proof rather than a guess.
What the reviewer gets
NEEDS_REVIEW hands the decision to a person.
So hand them a page, not a blob. report.to_html("gate-report.html")
writes one self-contained file: the verdict in plain words, every finding with
its evidence, and a chart beside each number whose shape is what has to
be judged — a reliability curve, a threshold sweep showing whether the verdict
survives a different cutoff, an actual-versus-expected curve showing whether the
book is short everywhere or only in its top decile.
No JavaScript, no stylesheet, no font, nothing fetched from anywhere. It opens
offline years later and prints clean, because that is what a governance record
has to do.
See what is in the report