Governance built for one model is a document. Governance built for twenty programs is infrastructure. The difference matters because an integrator running models across many contracts does not have a governance problem in the singular. It has a coordination problem: dozens of teams, different customers, different security boundaries, different tool stacks, different contract terms, and one corporate name on the risk. The instinct is to write a policy and require compliance. That approach produces a binder, a quarterly attestation exercise and very little change in what the programs actually do, because a program manager with a delivery date does not adopt an obligation. They adopt something that makes their week easier.
This is written for the chief engineer or governance lead who has to make this real across a portfolio. The thesis is simple: governance that scales is built as shared services programs choose to use, with a small number of things that are genuinely required, and a review body whose defining metric is turnaround time rather than thoroughness.
What goes wrong with the policy-first approach
Four failure patterns show up repeatedly, and each has an engineering answer rather than an organizational one.
The inventory is a spreadsheet and it is wrong within a quarter. Someone asks how many models the company runs. A survey goes out. Programs respond unevenly. The resulting list is stale before it is circulated, and it never includes the models that matter most: the ones somebody built quickly to solve a delivery problem.
Documentation is written for the audit rather than for the engineer. A template with forty fields produces forty fields of low-quality text, because the person filling it in is doing it under duress and none of it feeds anything they use. Documentation nobody reads does not reduce risk; it records that a form was filled.
Evaluation is claimed but not comparable. Every program reports that its model performs well. Each measured differently, on its own data, with its own splits, at its own threshold. Nothing can be compared, so no portfolio judgment is possible.
The review board becomes a queue. A board that meets monthly and asks for more information half the time adds two months to a delivery. Programs learn to route around it, and the models with the least oversight become the ones with the most delivery pressure, which is exactly backwards.
What drives voluntary program adoption of shared governance services
Editorial weighting, illustrative rather than measured. The last row is deliberately low: mandates produce attestations, not adoption.
The inventory, built as a system rather than a survey
Everything else depends on knowing what exists, so the inventory is the first thing to build and the thing most often built wrong.
The working design is a registry with an API, populated by the deployment path rather than by people. A model becomes registered because it was deployed, not because someone remembered. Practically that means a registration step in the shared deployment pattern, a library call in the serving layer that reports version and identity at startup, and scanners that look for the ways models reach production outside those paths: a serving container, a notebook on a schedule, a call to an external provider from application code.
The record per model needs about a dozen fields, and no more, because every extra field lowers the quality of all of them. An identifier and name. The program and contract it serves. The technical owner and the accountable manager, as people rather than roles. Purpose, in one sentence a non-engineer understands. Decision type, meaning whether it informs a person, assists a person, or acts without one. Population affected, including whether the public is involved. Data classes consumed, including whether personal data is present. Deployment environment and security boundary. Provider and model version where an external model is involved. Current status. Last evaluation date and where the results live. Risk tier.
The tiering rule should be short enough to apply in a minute. A model that affects a member of the public directly, or acts without human review, or touches personal data, is high tier. A model that informs a person who decides, on internal data, is medium. A model whose errors produce inconvenience and nothing else is low. Three tiers with clear tests beat five tiers with judgment calls, because the point is consistent triage, not precision.
A federated portfolio adds one wrinkle worth planning for. Programs in different security boundaries cannot always send data to a corporate registry. The pattern that works is a local registry inside each boundary and a metadata-only synchronization outward: identity, tier, owner, status and evaluation dates cross the boundary; data, model artifacts and results do not. Design that in early rather than discovering it when the first restricted program declines to participate.
Documentation that gets generated instead of typed
The trick with model documentation is to make most of it a build artifact. A template with forty free-text fields produces low-quality text. A document that assembles itself from things that already exist produces accurate text, and the engineer only writes the parts that require judgment.
What can be generated automatically: model identity and version, training data references and date ranges, feature or input definitions, hyperparameters and training configuration, evaluation results with the dataset and date, dependency versions, the deployment target, and the change history. All of that lives in the pipeline already. What a person must write, and should be asked to write well because it is short: intended use in plain language, known limitations and where the model should not be used, the populations it was and was not evaluated on, the human oversight arrangement, and the escalation path when something looks wrong.
Generation has a second benefit that matters more over time. Because the document rebuilds on every training run, it cannot go stale, and staleness is what makes documentation useless. A one-page current summary plus a full record on demand serves the two audiences that actually read these: a reviewer who needs a decision, and an auditor who needs the trail.
Evaluation baselines that make programs comparable
Portfolio judgment requires comparability, and comparability requires a standard the programs can actually meet without redoing their work.
The standard has five parts. A held-out evaluation set that is versioned and never trained on, with a documented sampling procedure so the next team can rebuild it. Metrics chosen for the decision rather than the model family, reported with confidence intervals rather than as point estimates, because a single number invites false comparisons. A slice analysis reporting performance across the subgroups that matter for the program, defined before the results are seen. Calibration where a score is used against a threshold, since a poorly calibrated score makes the threshold meaningless. And a stated baseline: what the process did before the model, measured the same way, because the useful question is never how good the model is in isolation.
For systems built on generative models the shape changes but the discipline does not. The evaluation set becomes a fixed set of cases with reference answers or graded criteria. Scoring uses a defined rubric applied consistently, with human grading on a sample to check whether automated scoring agrees. Coverage includes the failure cases the program cares about: refusal behavior, grounding to source material, handling of adversarial input, and consistency across runs. The result set is versioned and rerun on every model, prompt or dependency change, so a provider update cannot move behavior silently.
The shared service here is the runner, not the tests. Programs write their own cases because only they know their domain. The central team provides a managed execution environment, result storage, comparison views across versions and a gate that can fail a deployment when a result regresses. That division of labor is what makes adoption easy: programs keep control of what "good" means, and get the plumbing free.
Monitoring, and what actually needs watching
Monitoring in production divides into four layers, and most teams build the first and skip the rest.
Operational health: availability, latency, error rates, cost per call. Necessary, insufficient, and the only layer most systems have.
Input monitoring: distributions of the inputs compared to the training or reference period, missing rates, new categorical values, and volume by segment. Input drift is the earliest signal available and the cheapest to compute, since it needs no labels.
Output monitoring: prediction distributions, score distributions against thresholds, rates of the actions the model triggers, and refusal or fallback rates on generative systems. A shift in output distribution without a corresponding input shift usually means something in the pipeline changed.
Outcome monitoring: the actual quality of decisions once ground truth arrives, which is the layer that requires effort because labels come late, arrive selectively, and are sometimes influenced by the model's own actions. Where that feedback loop exists, it is the most valuable signal in the system and it should be designed rather than hoped for. Where ground truth never arrives, a periodic human review of a stratified sample is the substitute, and it needs to be scheduled and staffed like any other operational task.
Alerting deserves its own discipline. Statistical drift tests on large volumes fire constantly and teach people to ignore them. Thresholds should be set on the magnitude that would change a decision, not on statistical significance, and every alert needs a named owner and a written first response. An alert with no runbook is a notification.
Monitoring layers by how early they surface a real problem
Editorial weighting, illustrative rather than measured. The last row is deliberately low: uptime is necessary and tells you nothing about answer quality.
Two governance shapes, compared
| Dimension | Policy and attestation | Shared services with a thin mandate | Why the difference shows up |
|---|---|---|---|
| How the inventory stays current | Periodic survey of program managers | Automatic registration from the deployment path | Surveys miss the models built fastest under pressure |
| Documentation quality | Free-text template completed before a gate | Generated from pipeline artifacts, judgment sections written | Generated content cannot go stale between reviews |
| Comparability across programs | Each program reports its own metrics | Common evaluation protocol, program-owned test cases | Portfolio decisions need one measurement convention |
| Effect on delivery schedule | Adds review cycles of uncertain length | Tiered review with a published turnaround clock | Predictability matters more to a program than speed |
| What programs do when squeezed | Attest and proceed | Keep using the service because it saves work | Adoption follows usefulness, not obligation |
| Evidence available on demand | A binder assembled when asked | A queryable record with dates and versions | Assembled evidence takes weeks and has gaps |
A review board that does not become the bottleneck
The board's job is to make a decision quickly with the information a competent reviewer needs, and to keep a record. Everything else is optional.
Tier the path. Low-tier models register and self-certify against a short checklist, with a sample audited each quarter. Medium-tier models get an asynchronous review by one qualified reviewer against a written standard, with a stated turnaround. High-tier models get a full board review, and only those. If more than a fifth of the portfolio reaches the board, the tiering rule is wrong.
Publish the standard the review applies, so a program can pass on the first submission. A reviewer asking for something the standard did not name is a defect in the standard. Publish the clock and report against it, because a board that reports its own turnaround publicly stays fast. Give the board three possible outcomes rather than two: approve, approve with named conditions and dates, or decline with the specific gap. Conditional approval is what keeps delivery moving while the remaining work is tracked.
Staff it with people who have built and deployed models. A board of policy staff generates process; a board of engineers generates decisions. And define what triggers a return visit: a change of purpose or population, a new data class, a threshold change, a provider or version change, a sustained monitoring alert, or an incident. A model that never comes back is not governed.
Incidents, defined before one happens
Model incidents differ from outages in that they are usually discovered by a person rather than a monitor, they may have been running for weeks, and the affected population is often known only after analysis. That shape argues for defining the process while nothing is on fire.
Define what counts as an incident in advance: a wrong decision affecting a person, a performance drop past a stated threshold, output that violates a policy, exposure of data through a model, or use outside the documented purpose. Give it a severity scale tied to who was affected and whether the effect is reversible. Then a written path: contain, which usually means falling back to the prior process or a rules-based path, and the ability to do that has to be built and tested rather than assumed; assess, meaning determine the scope and the affected population from the decision records; notify, on the timeline the contract and the customer require; remediate, including any correction of affected decisions; and record, with a review that produces at least one change to a control.
The single most useful preparation is the fallback path. A model that cannot be turned off without stopping the business will not be turned off, and every incident then becomes a negotiation instead of a decision.
Sequencing the build
Trying to stand all of this up at once fails because it asks twenty programs to change at the same time. A staged approach works better and shows value early.
First the registry and automatic registration, because everything else needs it and it costs programs nothing. Then generated documentation for the models already registered, which produces the first artifact anyone outside the team asks for. Then the evaluation runner offered to two or three programs that already want it, so the first users are volunteers. Then monitoring for the tiers that need it, starting with input monitoring because it needs no labels. Then the tiered review path, once there is enough registry data to set the tiering rule from reality rather than from theory. Then incident process and fallback testing. Then, last, the mandate, which by that point is mostly ratifying what programs already do.
How we work inside a portfolio
Precision Federal is a small business engineering firm. We build AI systems, data platforms, cloud infrastructure and full-stack applications, and we deliver them into production inside U.S. federal agencies. On a governance build we work as a specialist subcontractor to the prime, inside the prime's engineering organization, on a scope the prime writes.
The first weeks are consistent. Week one is discovery: how models actually reach production across the programs in scope, which deployment paths exist, what tooling is already in place, and where security boundaries constrain the design. By the end of week two we deliver a written architecture for the registry and the registration path, the field set, the tiering rule drafted against real examples from the portfolio, and a sequencing plan with the first three programs named as candidates. Weeks three through ten produce the working registry, the automatic registration in at least one deployment path, generated documentation for the registered models, and the evaluation runner with one program's cases running in it.
The prime keeps everything. The customer relationships stay with the prime. Code, schemas, pipelines, infrastructure definitions and documentation are delivered into the prime's repositories and assigned to the prime under the subcontract. Our pre-existing tooling is named, carved out and licensed back perpetually so nothing we bring can block a future maintainer. Data handling terms are written before any data moves, and nothing trains anything outside the scope.
Pricing takes one of two shapes. Fixed-price milestones against written acceptance criteria, which fits this work well because the criteria are concrete: registration coverage measured against an independent scan, documentation generated for a stated set of models, an evaluation runner executing one program's suite with results stored and comparable. Or a committed team at a defined allocation with a written stopping point. Key people are named with committed percentages and a substitution path.
The first step is one email with a one-page brief: how many programs are in scope, how models reach production today, what tooling exists, which security boundaries apply and the date that matters. We return a scoped, priced statement of work with acceptance criteria written as tests. No call required.
Bottom line
Governance across a portfolio is an engineering problem wearing a policy costume. The inventory has to be a system fed by the deployment path, or it is wrong within a quarter. Documentation has to be generated, or it is stale and low quality. Evaluation needs one measurement convention with program-owned test cases, or nothing is comparable. Monitoring needs input, output and outcome layers, not just uptime. Review needs tiering and a published clock, or programs route around it. Build it as services programs want to use, keep the mandate small and late, and the portfolio ends up with a queryable record instead of a binder assembled the week someone asks.
Frequently asked questions
Feed it from the deployment path instead of from surveys. A registration step in the shared deployment pattern, a library call in the serving layer that reports identity and version at startup, and scanners looking for models that reach production by other routes. Keep about a dozen fields, since every extra field lowers the quality of all of them: identity, program, owner and accountable manager as named people, purpose, decision type, population affected, data classes, environment, provider version, status, last evaluation and risk tier.
Most of it should be generated from the pipeline: identity and version, training data references and date ranges, input definitions, training configuration, evaluation results with dataset and date, dependency versions, deployment target and change history. A person writes only the judgment sections, and should be asked to write them well because they are short: intended use in plain language, known limitations and where the model must not be used, populations evaluated and not evaluated, the human oversight arrangement, and the escalation path.
Standardize the protocol, not the tests. Require a versioned held-out set with a documented sampling procedure, metrics chosen for the decision and reported with confidence intervals, a slice analysis across subgroups defined before results are seen, calibration where a score meets a threshold, and a stated baseline measuring what the process did before the model. Programs keep their own test cases because only they know the domain. The central team provides the runner, result storage, comparison views and a deployment gate on regression.
Tier the path so only high-tier models reach the board; if more than a fifth of the portfolio arrives there, the tiering rule is wrong. Publish the standard the review applies so a program can pass on the first submission, and publish the turnaround clock and report against it. Offer three outcomes: approve, approve with named conditions and dates, or decline with the specific gap. Staff it with people who have deployed models, and define what triggers a return visit.
A written definition of what counts as an incident, decided before one happens: a wrong decision affecting a person, a performance drop past a stated threshold, policy-violating output, data exposure through a model, or use outside the documented purpose. Then severity tied to who was affected and reversibility, and a path covering containment, scope assessment from decision records, notification on the contract's timeline, remediation of affected decisions, and a review producing a control change. The fallback path must be built and tested, not assumed.
