Where this sits in the practitioner track
Session 1 built the inventory and made the tiering call, which decided that Brackwater's scorecard earns a full review. Tonight is the first thing that review does, and the only part of it that needs no data access: read the design. Session 3 is the leak hunt, which takes one observation from tonight and works it into a material finding with numbers attached. Session 4 is replication, session 5 is benchmarking and challengers, and sessions 6 to 10 run outcomes analysis, out-of-time testing, monitoring, findings and the full bench. The worked example stays Brackwater's consumer scorecard, submitted with a development AUC of 0.863 and a recommendation to deploy.
★ What you walk out with tonight. The scope of conceptual soundness stated precisely, so you can tell a reviewer which component your finding belongs to. The operative pair that most reviews only do half of: evidence has a quality and it has an extent, and a model document usually fails on extent while looking fine on quality. A review order that protects you from the number, because a validator who reads the results first spends the rest of the review explaining them. And one worked design finding on Brackwater, reached without computing anything.
LiveThe sentence, in full4 min▶
Validating conceptual soundness involves assessing and documenting model design, including key modelling choices, assumptions, qualitative judgments and data selection, together with construction and developmental testing. Sound practice subjects modelling aspects to critical analysis by evaluating both the quality and the extent of developmental evidence.
Three things are being assessed, and four things sit inside the first of them. That structure is worth holding because it is where findings get filed. Design covers the choices a person made: which modelling approach, which assumptions, which judgments where the data ran out, and which fields were selected in and out. Construction covers whether the thing that was built is the thing that was described. Developmental testing covers what was done to try to break it before anybody was asked to approve it. A finding that names its component travels; a finding that says "the model is not very good" gets argued with forever.
The single most consequential finding in the Brackwater validation is a data selection finding, which means it is a conceptual soundness finding, which means it is answerable by reading. It was available on the first afternoon of the review, before any data access request had been approved, and it had been available at every quarterly review for two years.
Self-studyThe words tonight uses precisely3 min▶
- Design. Key modelling choices, assumptions, qualitative judgments and data selection. All four are decisions somebody made, and all four are reviewable in prose.
- Construction. Whether what was built matches what was described. The gap between the document's model and the repository's model is a finding in its own right.
- Developmental testing. What the developer did to test the thing before submitting it. Ranges from out-of-sample and out-of-time testing to comparing alternative assumptions and methodologies, and to critically assessing data quality, relevance and inputs.
- Quality of evidence. Whether the evidence offered is any good: correctly computed, on the right sample, measuring the claim it is attached to.
- Extent of evidence. Whether there is enough of it. One chart is one test. A testing programme is a different object and looks different on the page.
- Purpose statement. The clear statement of what the model is for, which an effective development process begins with, so that development is aligned with intended use.
- Intended use, and beyond it. Effective use depends on a clear understanding of the model's limitations. Using a model beyond its intended purpose introduces additional uncertainty and risk.
- Interpretability and benchmarking. Two practical routes named inside conceptual soundness for models where assessing theoretical construction is not the useful move.
Design, construction, developmental testing
12 min liveRigour is commensurate with a model's complexity and materiality, so the depth of this reading varies. The shape does not. Every conceptual soundness review answers the same three questions in the same order: what was decided, whether the build matches the decisions, and what was done to try to break it. The first question is the one that is almost always under-reviewed, because it is written in prose and prose does not look like evidence.
LiveAn effective development process begins with a statement of purpose4 min▶
Development begins with a clear statement of purpose, so that the work is aligned with the intended use. That sentence is doing more than it appears to. It makes purpose a development artefact rather than a framing device, and it gives every subsequent choice something to be answerable to. A model that cannot produce its purpose statement has no standard against which its data selection, its sample window or its cutoff can be judged, so every review of it degenerates into taste.
The second half is just as useful to quote in a room: model development is not a purely technical exercise, and the developer's judgment shapes the conceptual design, the inputs, the assumptions and the methodology. This is not a criticism of developers, it is a description of the job. Judgment is unavoidable and often correct. What conceptual soundness asks is that the judgments be visible, so they can be examined by somebody who did not make them. An undocumented judgment is not a neutral omission; it is the part of the model nobody can review.
Brackwater's document had a section headed "Objective" containing one line: "improve credit decisioning". That is not a purpose statement. It names no decision, no population, no moment at which the score has to exist, and no use that is out of scope. Every later argument in the review, including the one about whether a post-outcome field was acceptable, was harder than it needed to be because there was nothing to hold the answer against.
LiveTesting is a core component, and it has a stated range3 min▶
Model testing is a core component of development, and the range it covers is broader than the one number most documents carry. It runs from out-of-sample and out-of-time testing, through comparing alternative assumptions and alternative methodologies, to critically assessing data quality, relevance and the inputs themselves. Four different kinds of activity, and only the first is routinely present.
Read that list as a checklist against the document in front of you and the gaps become specific rather than vague. Was the model scored on a later vintage, or only on a holdout drawn from the same one. Was any alternative assumption tried, and what happened. Was any alternative methodology fitted, even a simple one, or is the chosen approach the only one that appears in the document. Was the data itself assessed, or only consumed. Each gap you find is a statement about extent, which is the second half of the pair, and each one is answerable by the developer without a fight because none of them accuses anybody of being wrong.
Self-studyInterpretability and benchmarking, and where they sit3 min▶
For some models, evaluating theoretical construction is the right move: there is an established theory, the model claims to implement it, and a reviewer can check the implementation against the claim. For others that route is unavailable or unhelpful, and interpretability measures or benchmarking to other models are more practical ways to get at the same question.
Two things follow. The first is that benchmarking is named inside conceptual soundness rather than alongside it. It is one practical technique for assessing whether a model's approach holds up, not a separate component of validation, and a page that presents it as a fourth pillar is making an editorial claim rather than reporting the guidance. Session 5 builds the Brackwater challenger and treats benchmarking properly as a technique. The second is that the choice between these routes is itself a judgment the validator should record, because "we benchmarked instead of assessing the theory" is a defensible decision and an indefensible silence.
Quality is not the half you are missing
11 min liveEvidence gets assessed on two axes and reviewers are trained on one. Quality asks whether the evidence offered is any good: computed correctly, on the right sample, actually measuring the claim it is attached to. Extent asks whether there is enough of it. Most model documents are strong on quality, because the people who wrote them are competent, and thin on extent, because nobody ever asked for a testing programme, only for results. The order you read in is what stops a strong quality impression from standing in for a missing extent.
LiveQuality and extent, the operative pair4 min▶
Sound practice subjects the modelling aspects to critical analysis by evaluating both the quality and the extent of the developmental evidence. Both, named together, and they fail in different ways. Quality fails when the evidence is wrong: the wrong sample, a metric that does not speak to the claim, a chart whose axis hides the thing it is supposed to show. Extent fails when the evidence is fine and there is not enough of it to support the weight being placed on it.
The practical test is embarrassingly simple. Count the tests. Three charts on a slide are evidence of one test presented three ways, not of a testing programme, and a document that carries one performance number with three visualisations of it has produced one piece of evidence. Then ask what each test could have concluded if the model were bad. Evidence that had no way of coming out badly is not evidence of anything, however well it is drawn.
Extent is also the finding that is easiest to write without a fight, which matters more than it should. "This is wrong" is a confrontation. "This claim rests on one sample from one vintage, and the model is being approved for the following year's book" is a description, and the usual response to it is somebody going away and producing the missing evidence, which is the outcome you wanted.
LiveRead in this order, and say so in the report4 min▶
Purpose statement first, then assumptions, then data selection, then method, and only then any number. The order is not fussiness. A validator who reads the results first is anchored for the rest of the review, and anchoring here has a specific shape: once 0.863 is in your head, every design choice you read afterwards gets evaluated as a possible explanation for a good number rather than as a decision that has to stand on its own. The feature list stops being a list of decisions and becomes the recipe that produced the result.
There is a reason to put the order in the report as well as in your practice. It tells the reader what the finding is not: a data selection finding reached before any number was computed cannot be a reaction to disappointing performance, and saying so removes the most common rebuttal before it is offered. It also sets an expectation for the next review, which is how a personal habit turns into a house standard.
Self-studyUse beyond the intended purpose, and what it calls for3 min▶
Effective use depends on a clear understanding of the model's limitations, and using a model beyond its intended purpose introduces additional uncertainty and risk. When a use is extended beyond the original application, the sound practice is additional analysis of the new usage and its limitations, together with a review of the existing controls. Three obligations, all of them triggered by a change that leaves the model itself untouched.
This is why the purpose statement is the first rung rather than a preamble. It is the only artefact that makes "beyond intended purpose" a checkable claim instead of an opinion, and a model whose purpose statement says "improve credit decisioning" can never be used beyond its intended purpose, because the statement excludes nothing. A useful purpose statement names what is out of scope. Session 1 put the re-tier trigger in the inventory for the same reason, and the two artefacts are meant to be read together: the inventory notices the extension, the purpose statement says whether it is one.
Review Brackwater's design, before any number
17 min build-alongWork the seven steps against the model document, then use the two code blocks to turn the reading into something a reviewer can check. Neither block fits a model or computes a metric, which is the point: everything below is available on the first afternoon, with no data access and no compute.
Find the purpose statement, or record that there is not one. It has to name the decision, the population, the moment the output must exist, and at least one use that is out of scope. A section headed "Objective" containing an aspiration is a finding, and it is the finding that makes every later one harder to argue with.
List the assumptions the document states, then hunt the ones it does not. Implied assumptions hide inside choices: a sample window assumes the period is representative, a bureau field assumes comparability across vintages, an exclusion assumes the excluded population is not the one you will face. Write each implied assumption as a sentence the developer can agree or disagree with.
Ask which judgments were made where the data ran out. Development is not purely technical, and the judgments are the part that never appears unless somebody asks. "What did you do when the data would not answer" is the question, and the answer usually produces two or three items nobody had written down.
Walk the feature list against the prediction moment. For every field, when is its value written relative to the moment the score has to exist. This is data selection, it is part of conceptual soundness, and on Brackwater it is where the review stops being routine.
Check the build against the description. Construction is its own assessed area. The document describes a model; the repository contains one. Differences in preprocessing, in the sample filter, or in which fields actually reach the fit are findings even when the difference makes no measurable difference.
Inventory the developmental evidence and score it twice. One row per test, with the claim it supports, a quality judgment and an extent judgment. Testing that never appears, out-of-time or alternative assumptions or an alternative methodology, is an extent finding recorded as an absence.
Only now open the results, and read each number as evidence of a stated claim. If a number is not attached to a claim, attach it or drop it. Carrying an unattached number into a report invites the reader to decide for themselves what it proves, and they will decide generously.
import pandas as pd
# Step 4 needs no data and no model. It needs the feature list, the data
# dictionary, and one sentence fixing the moment the score has to exist.
PREDICTION_MOMENT = "application decided, before any repayment behaviour is observed"
features = pd.DataFrame([
{"field": "util", "written": "at application", "source": "bureau_v3"},
{"field": "priorDelq", "written": "at application", "source": "bureau_v3"},
{"field": "employed", "written": "at application", "source": "application form"},
{"field": "incomeRat", "written": "at application", "source": "application form"},
{"field": "thin", "written": "at application", "source": "bureau_v3"},
{"field": "age", "written": "at application", "source": "application form"},
{"field": "collections", "written": "after the outcome window opens",
"source": "collections_log"},
{"field": "n0", "written": "not stated", "source": "not stated"},
{"field": "n1", "written": "not stated", "source": "not stated"},
{"field": "n2", "written": "not stated", "source": "not stated"},
{"field": "n3", "written": "not stated", "source": "not stated"},
])
print(PREDICTION_MOMENT)
print(features.loc[features["written"] != "at application"])
# Two design findings, both reached by reading:
# collections - the value is written after the outcome window opens,
# so the field is a consequence of the thing being predicted.
# n0 to n3 - no stated provenance and no stated write time. Unresolved,
# which is not the same as clean.
# Session 3 turns the first one into a material finding with numbers attached.
# Step 6. One row per claim the document makes, with the evidence offered
# for it, judged twice. The extent column is the one that fills up.
evidence = pd.DataFrame([
{
"claim": "The score ranks default risk at origination",
"offered": "Development AUC of 0.863 on the build sample",
"quality": "Correctly computed on the stated sample",
"extent": "One sample, one vintage. No later vintage scored.",
},
{
"claim": "The feature set is appropriate for origination",
"offered": "A feature list and a correlation table",
"quality": "Correct as presented",
"extent": "No write time recorded for any field. Nothing on provenance.",
},
{
"claim": "The chosen method suits the problem",
"offered": "A paragraph naming the method",
"quality": "Reasonable and conventional",
"extent": "No alternative methodology fitted. No alternative assumptions tried.",
},
{
"claim": "The cutoff is appropriate for the book",
"offered": "An approval rate at the chosen cutoff",
"quality": "Correct on the development sample",
"extent": "Development sample only. No sensitivity to a moved population.",
},
])
print(evidence[["claim", "extent"]].to_string(index=False))
# Quality: four for four. Extent: nothing tested out of time, no alternative
# assumption, no alternative methodology, no provenance. The document is
# well made and the evidence is thin, which is the usual combination.
Write the absences down as rows, not as a closing paragraph. A missing test recorded as a row in an evidence table is a specific, answerable request with an obvious owner. The same observation written as "developmental evidence was limited" at the end of a section is a mood, and moods do not get remediated.
Three questions
A model document presents one development performance number, illustrated with three well-made charts, each correctly computed on the stated sample. How does that stand up on the operative pair?
Sound practice evaluates both the quality and the extent of the developmental evidence. Quality is satisfied here: the charts are correct and on the right sample. Extent is not, because nothing was tested out of time, no alternative assumption or methodology was compared, and the data itself was consumed rather than assessed. Nothing in this implies bad faith, which is why extent is the easier finding to write.
Your review benchmarks the model against a simpler alternative. Where does that activity belong when you file the finding?
The guidance names interpretability measures and benchmarking to other models inside conceptual soundness, as practical alternatives for models where assessing theoretical construction does not get you there. There are three components, not four. Session 5 treats benchmarking properly as a technique and builds the Brackwater challenger.
A scorecard validated for ranking applications is extended to set prices. The model, the code and the data are unchanged. What does conceptual soundness ask for?
Effective use depends on a clear understanding of the model's limitations, and extending use beyond the original application calls for additional analysis of that new usage and its limitations, together with a review of the controls already in place. This is also why the purpose statement has to name what is out of scope: without that, no extension is detectable as one.
Before session 3
40 minTake the model document your team is proudest of and build the evidence table from step 6 against it: one row per claim, with what was offered, a quality judgment and an extent judgment. Do not compute anything. Then count two things and write them at the top: how many distinct tests the document contains, as opposed to how many exhibits, and how many of those tests could have come out badly. Bring the table to session 3, which takes the data selection row from tonight and works it into a material finding, with the numbers that make the Brackwater case: one field scoring 0.748 on its own against a full model at 0.863.