Capstone 1 (Exemplar) — Fair Lending on HMDA: How Much of the Mortgage-Denial Gap Survives the Controls?

ASSIP framing — read first. The ASSIP 2026 terminal deliverable is a research poster (~48”×36”) + a JSSR abstract (200–300 words) + an 8-minute poster talk + a replication packet — not a full paper. This exemplar is the full research narrative the poster summarizes: a complete ~4,000-word empirical-finance paper written one level above the ASSIP graded artifact, so that you can see what the full argument looks like before you compress it onto six poster panels (question · why · design · headline · robustness · contribution-and-limits) and a 10-sentence abstract. Use it as a structural source for your own ASSIP poster: each section maps to a poster panel, and the abstract section is the model for your JSSR submission. Students writing the optional companion full paper as part of their ASSIP capstone may also use this exemplar as a length-and-shape template for that paper directly.

This is a model paper, not a real finding. It is the gold-standard exemplar for the fair-lending capstone track: a complete empirical paper written to the Week-8 standard (Ch 8.3) and Appendix D, so you can study what “done” looks like before you build your own. Every number in it comes from a synthetic, HMDA-like dataset constructed for instruction in nb6.4 (notebooks/week-06/nb6.4-mortgage-disparity-decomposition.ipynb), with a known, planted amount of discrimination. They are NOT empirical findings about real lending, real lenders, or any real protected group. The point of a synthetic study is the Lab-4 slogan: when you are unsure whether a method does what it claims, build a universe where you know the truth and check. Read this paper for its craft — the structure, the table, the calibrated verbs, the honest limits — and copy the craft, not the numbers. Where a real paper would name a vintage, a venue, a statute, this one says so and stops. The companion margin commentary at the end (“How this paper was built”) narrates every choice against CONVENTIONS and Appendix D.


Abstract

A raw gap in mortgage-denial rates between minority and non-minority applicants mixes two things a regulator cares about keeping apart: differential treatment (the same applicant getting a different answer because of group) and differential composition (groups that genuinely differ in the risk factors a lender is allowed to price). This paper measures how much of the gap is which, using a Blinder–Oaxaca decomposition of a denial outcome on a set of legitimate underwriting controls. On a synthetic, HMDA-like dataset of 60,000 applications built with a known amount of planted discrimination, the raw 43.9-percentage-point denial gap shrinks to a residual of 21.6 points once income, loan-to-value, debt-to-income, and credit score are held fixed: legitimate risk explains about half the raw gap, and a contested residual of roughly equal size survives. We then demonstrate the two failure modes that determine whether that residual can be believed. Omitting the credit score — the one variable real HMDA does not contain — inflates the residual by more than half (to 32.9 points), so any HMDA-only number overstates differential treatment from a missing column, not from malice. Conversely, over-controlling on a post-treatment pricing channel collapses the residual and flips its sign, regressing away the very effect we are hunting. Because the design is a selection-on-observables decomposition, not a natural experiment, we read the residual as a disparity consistent with differential treatment under the assumption that the controls capture all legitimate risk and nothing on the discrimination pathway — an assumption HMDA’s missing score means we cannot defend on real data. The exercise is methodological: it shows what the gap-decomposition can and cannot establish, and why fair-lending work since Sun and Gao (2019) reaches for a research design rather than a longer control list.


1. Introduction

In a recent reporting year, applicants from majority-minority neighborhoods were denied mortgages at nearly twice the rate of applicants from majority-white neighborhoods, and the gap narrows but does not vanish once income and loan size are held fixed.1 Whether such a gap reflects differential treatment — lenders applying a different rule to otherwise-similar applicants because of group — or differential composition — groups that genuinely differ in the creditworthiness a lender is legally allowed to price — is simultaneously a live question for fair-lending regulators and an unresolved empirical one. The entire intellectual content of fair lending lives in that distinction, because a raw denial-rate gap confounds the two, and no journalist’s headline number can separate them.

This paper provides a methodological anatomy of that confound: it decomposes the minority–non-minority mortgage-denial gap into the part explained by legitimate, observable risk and the residual that survives, and it shows precisely how two common analytic mistakes — omitting an unobserved risk factor, and over-controlling on a variable that channels the discrimination — move the residual in opposite, equally misleading directions. Our contribution is not a fact about any real lender; it is a worked demonstration, on data whose truth we planted, of what the gap-decomposition design can and cannot establish, and of why the missing credit score in real HMDA forces fair-lending researchers toward a design rather than a longer regression.

We find, on a synthetic HMDA-like dataset of 60,000 applications, that the raw denial gap of 43.9 percentage points shrinks to a residual of 21.6 points once income, loan-to-value (LTV), debt-to-income (DTI), and credit score are held fixed — legitimate risk explains about half the raw gap (22.3 points, 51%), and a contested residual of roughly equal size (21.6 points, 49%) remains. Two manipulations then bound the residual’s fragility. Dropping the credit score, the one variable real HMDA does not carry, inflates the residual by 11.3 points (to 32.9, a 52% increase), because the omitted score is both protective and correlated with group: textbook omitted-variable bias, finally measured rather than feared. Adding a post-treatment pricing variable collapses the residual from 20.9 points to −6.0, reversing its sign — a vivid over-controlling failure. Because the residual rests on selection-on-observables, not on any natural experiment, we read it throughout as a disparity consistent with differential treatment under a strong and untestable assumption, never as a causal estimate of discrimination.

The remainder proceeds as follows. Section 2 positions the exercise in the fair-lending literature. Section 3 describes the synthetic data and how it mimics HMDA. Section 4 lays out the decomposition design and states the identifying assumption explicitly, with a threats table. Section 5 presents the headline decomposition. Section 6 reports the robustness exercises — the omitted-score inflation, the over-controlling collapse, and a race-blind benchmark — organized around the threats to interpretation. Section 7 concludes with the honest limits.

2. Positioning in the literature

Fair-lending empirics divide along two seams this paper sits across. The first is the margin: discrimination can live on the acceptance margin (who gets a loan) or the pricing margin (what they pay conditional on getting one), and a lender can launder a disparity from one to the other — approving everyone but pricing the disfavored group higher, or pricing uniformly but denying more. A complete verdict needs both. Bartlett, Morse, Stanton, and Wallace (2022) work the pricing margin, asking whether minority borrowers pay higher rates conditional on the GSE risk inputs that mechanically determine what a conforming loan “should” cost; Bhutta, Hizmo, and Ringo (2022, 2025) work primarily the acceptance margin, decomposing the raw racial denial gap once they can finally observe the credit score the public record omits. This paper lives on the acceptance margin, and inherits BHR’s central move: watch the group coefficient march across columns as the legitimate controls enter.

The second seam is how identification is achieved, and it defines the whole literature’s difficulty. Because the Home Mortgage Disclosure Act register records who applied, where, for how much, and what happened — but not the applicant’s credit score — a HMDA-only analyst cannot condition on the most important legitimate risk factor, and so cannot tell whether a residual gap is differential treatment or the missing score in disguise. The literature responds in three ways. One strand documents the raw gap descriptively and stops, honest that it cannot separate treatment from composition. A second acquires the missing creditworthiness from outside HMDA — the BHR move — and measures the omitted-variable bias the first could only fear. A third abandons the regression for a research design: Sun and Gao (2019), studying whether same-sex couples were treated differently when they applied to borrow, reached for matched comparison and policy variation precisely because the score was missing and a control list could not carry the argument all the way to a court or a Congressional hearing. Our exercise belongs to the second strand in spirit — we observe the score, because we built it — but its purpose is pedagogical: a ground-truth demonstration of why the residual from a HMDA-only decomposition is neither nothing nor a clean estimate of discrimination, but a bounded and fragile number whose fragility we can see because we planted its truth.

3. Data

We use a synthetic, seeded, loan-level dataset of N = 60{,}000 mortgage applications, generated in nb6.4 with a single pinned random generator (numpy default generator, seed 42) so every number regenerates bit-for-bit. The dataset mimics the shape of an aggregated HMDA extract — a binary denial outcome, a protected-group indicator, and underwriting risk factors — while differing from real HMDA in the one respect that makes it useful for instruction: we know the data-generating process, so we know the true amount of discrimination it contains.

Each application carries a protected-group indicator, minority \in \{0,1\} (a 50% share, by construction), and four legitimate risk factors a fair lender is allowed to use: annual income (in $000s), the loan-to-value ratio (LTV, in percent), the debt-to-income ratio (DTI, in percent), and a FICO-like credit score (300–850, higher is safer). Two construction choices are load-bearing and disclosed in full, because the honesty of a synthetic study lives entirely in its data-generating process. First, the risk factors genuinely differ across groups for reasons upstream of the lender: the minority group has, on average, modestly lower income and credit scores and higher LTV and DTI, reflecting the kind of wealth-and-credit-access gaps a non-discriminating lender would nonetheless price. This is real, legitimate risk, and it is exactly what makes the raw gap an unreliable measure of discrimination. We do not assert these upstream patterns are fair — a credit score shaped by historical inequity is itself contestable (Section 7) — only that a lender applying them identically across groups would still produce a raw gap. Second, the denial decision is a latent risk index plus a tunable direct-discrimination penalty applied to minority applicants for no risk reason at all: pure differential treatment, set to a known nonzero value, with denial recorded when the index crosses a threshold. The dataset also carries an offered interest rate, set downstream of the index and carrying its own group markup — a variable we deliberately misuse in Section 6 to demonstrate over-controlling.

The overall denial rate is 0.478; the minority group’s rate is 0.697 against the non-minority group’s 0.258, the 43.9-point raw gap the rest of the paper takes apart. The single most important way this dataset is unlike the world it imitates is also the lesson of the whole literature: in real HMDA the credit score is not observed. We observe it here only because we built it, and Section 6 uses that artificial visibility to measure exactly what its real-world absence costs.

4. Empirical design and identification

The specification. We estimate a linear probability model (LPM) of denial on the protected-group indicator and a build-up of legitimate risk controls, using the LPM rather than a logit because its coefficients are differences in probabilities readable directly in percentage points — the currency a fair-lending decomposition trades in. Writing D_i for denial of application i, M_i for the minority indicator, and \mathbf{X}_i for the risk controls (income, LTV, DTI, score),

D_i = \beta_0 + \beta\, M_i + \boldsymbol{\delta}'\mathbf{X}_i + \varepsilon_i,

the coefficient \beta, scaled to percentage points, is the residual denial gap: the share of the raw gap surviving after the controls are held fixed. We complement the column build-up with a Blinder–Oaxaca decomposition (Blinder, 1973; Oaxaca, 1973), which splits the raw mean gap into an explained part (groups differ in \mathbf{X}, priced by the non-minority rule) and an unexplained residual (the same \mathbf{X} priced differently across groups) as an exact accounting identity. We use the non-minority coefficients as the non-discriminatory benchmark — the standard index choice — and note the qualitative split is robust to the well-known index-number ambiguity.

The spec, named in full (CONVENTIONS §4). Outcome = loan denial (0/1), read in percentage points. Key regressor = the minority indicator. Controls = income, LTV, DTI, credit score, entered as a build-up. Fixed effects = none (a single cross-section). Clustering = none; we report classical and heteroskedasticity-robust (HC1) standard errors, because this is a measurement exercise on i.i.d. synthetic draws, not a panel-inference showdown — there is no repeated unit to cluster on, and Section 6 confirms the choice does not move the verdict. Sample = all 60,000 synthetic applications, held fixed across every column.

The identifying assumption, in one sentence. The residual coefficient \beta equals differential treatment only if the controls \mathbf{X} capture all of the legitimate risk a lender is allowed to price, and contain nothing that lies on the discrimination pathway. This is a selection-on-observables assumption, and it is strong — not a natural-experiment assumption: there is no policy shock, no parallel-trends bet, no instrument. Identification rests entirely on the conditioning set, which is why the literature’s first question is always “what is in the controls, and is the score in there?” The assumption has two distinct failure directions, and naming both is the discipline this design demands.

Threats to interpretation. Table 2 states the threats and responses in descending order of danger. The most dangerous — an omitted legitimate risk factor, namely the credit score real HMDA lacks — is the one a regulator asks about first, and the one Section 6 measures directly.

Table 2 — Threats to the interpretation of the residual gap, and responses

Threat Why it is plausible here What we do about it Residual concern
Omitted creditworthiness (a legitimate risk factor we cannot see) Real HMDA omits the credit score; the score is protective and lower in the minority group, so leaving it out dumps real risk into the residual and inflates apparent discrimination (classic OVB). Section 6.1: drop the score and measure the inflation against the full-information residual; report both. On real HMDA the score is gone — we can only bound, not eliminate, this bias; soft information a human underwriter sees is never in any file.
Over-controlling on the discrimination pathway (a post-treatment mediator) The offered rate is set downstream of the decision and carries a group markup; “holding loan terms fixed” would absorb part of the very effect we hunt. Section 6.2: add the offered rate on purpose and show the residual collapse and flip sign — a demonstration of why “more controls” is not “better controls.” Judging which controls are confounders vs. channels requires institutional knowledge a dataset cannot supply.
Functional form (LPM approximating a nonlinear threshold rule) The true rule is a nonlinear threshold; the LPM is a linear approximation, so a small residual can be approximation error, not discrimination. Section 6.3: the race-blind benchmark drives the residual to ~1.3 pp, locating the LPM’s approximation error and confirming it is tiny next to the human residual. The LPM is read for interpretability, not efficiency; magnitudes near zero should be read as “indistinguishable from no differential treatment,” not exactly zero.
Definition of “discrimination” (disparate treatment vs. disparate impact) A race-blind rule that uses a score shaped by historical inequity can produce disparate impact even with zero disparate treatment. Section 7: state which legal definition each number speaks to before quoting it. Conditioning on the score may control away a channel of disparate impact; this design speaks to treatment, not impact.

The residual-concern column is substantive in every row, which is the point: this is an observational decomposition, and a row with a blank residual would be a tell, not a triumph.

5. Results

Table 3 is the headline. It reports the LPM residual gap as the legitimate controls enter, column by column, and it is built to stand alone: a reader who sees only this table and its note can read the sample, the estimator, the standard-error flavor, the meaning of the coefficient, and the constancy of N.

Table 3 — The minority denial gap, as legitimate risk controls enter

(1) Raw (2) + Income (3) + Income, LTV, DTI (4) + All risk incl. score
Minority indicator 43.92*** 39.77*** 32.43*** 20.85***
(0.37) (0.37) (0.36) (0.32)
Income control No Yes Yes Yes
LTV, DTI controls No No Yes Yes
Credit-score control No No No Yes
R^2 0.19 0.21 0.27 0.40
N (applications) 60,000 60,000 60,000 60,000

Notes. The dependent variable is loan denial (0/1), scaled so the reported coefficient is the minority–non-minority denial gap in percentage points. Sample: 60,000 synthetic, HMDA-like applications from nb6.4 (seed 42), held fixed across all columns. Estimator: linear probability model (OLS on a binary outcome). Controls enter as a build-up from the raw bivariate gap (1) to the full legitimate-risk set (4); the score enters only in (4). Heteroskedasticity-robust (HC1) standard errors in parentheses; classical standard errors are nearly identical (Section 6.3) and do not move the stars. *** p<0.01, ** p<0.05, * p<0.10. All figures are illustrative outputs of a synthetic dataset, not empirical estimates.

Read the minority coefficient leftward across the columns — 43.9 \to 39.8 \to 32.4 \to 20.9 — and the table tells its story without the prose. The raw gap of 43.9 percentage points is large and alarming, exactly the number a headline would quote. Income alone explains about four points; LTV and DTI carry the gap to 32.4; and the credit score, entering last in column (4), is the single most consequential control, pulling the residual to 20.9 points. The sample size is constant at 60,000 across every column, so the shrinkage reflects the controls doing their work, not a silently changing sample — the march is about composition, not selection. Every coefficient is precisely estimated (HC1 standard errors near 0.3–0.4 points, all three-starred), but precision is not importance: the point is the movement, which says roughly half the raw association was legitimate risk masquerading as a gap.

The Blinder–Oaxaca decomposition states that movement as an accounting identity. Of the 43.9-point raw gap, 22.3 points (51%) are explained by group differences in the legitimate risk factors — the minority group’s higher LTV and DTI and lower income and score, priced by the non-minority group’s own rule — and 21.6 points (49%) are the unexplained residual, the share that would survive if the two groups had identical risk profiles but were scored by different rules. The two parts sum to the raw gap by construction. The 21.6-point residual is our measured differential treatment within this dataset and under the Section 4 assumption. Because we planted a known discrimination penalty in the data-generating process, we can say what no analyst of real HMDA ever can: the decomposition recovered a residual in the right neighborhood of the truth we built, which is what licenses trusting the method — not any number — when it is later pointed at data whose truth cannot be seen.

A note on language, because the design caps it. This is a selection-on-observables decomposition, not a randomized or quasi-experiment. The honest verb is “is associated with,” the honest object “a residual disparity,” never “discrimination causes the gap.” The 21.6-point residual is a disparity consistent with differential treatment under the assumption that the controls capture all legitimate risk and nothing on the discrimination pathway — the hedge placed on the assumption, not smeared across the claim. Section 6 shows how much that hedge is doing.

6. Robustness

The robustness exercises mirror Table 2’s threats, in the same order of danger. Each states what a pass (or a failure) would look like before reporting the result. Note the distinction the section keeps visible throughout: §6.1 and §6.2 are tests of the design’s interpretation (do the controls satisfy the identifying assumption?), while §6.3 is a stability check on functional form. None of them can rescue the design from its central limitation — that on real HMDA the credit score is unobservable — and we say so plainly.

6.1 The omitted-creditworthiness threat: drop the score and measure the bias

A reader’s first and most dangerous worry is that the residual is contaminated by a legitimate risk factor we cannot see — and on real HMDA the missing factor is named: the credit score. The prediction this design makes is sharp. The score is protective (higher score, lower denial) and lower in the minority group, so both conditions for omitted-variable bias hold, and the direction is the dangerous one: omitting the score dumps real risk into the residual and inflates apparent discrimination. A pass for the worry would be a residual that barely moves when the score is removed; an honest confirmation of the threat is a residual that jumps.

It jumps. Re-running the decomposition with the score omitted — simulating a HMDA-only analyst — moves the unexplained residual from 21.6 points (score in) to 32.9 points (score out), an inflation of 11.3 points, or 52%. Same data, same planted truth; one missing column moves the verdict by more than half. This is Week-2 omitted-variable bias made concrete and measured rather than feared, and it is the empirical heart of why a HMDA-only residual cannot be read as discrimination: a real analyst, lacking the score through no fault of their own, would overstate differential treatment substantially. The concern does not close — on real data the score is gone, and even the richest outside-HMDA file omits the soft information a human underwriter weighs — so our 21.6-point residual is best read as the least inflated estimate this dataset can produce, with real-world numbers necessarily worse.

6.2 The over-controlling threat: add a mediator and watch the sign flip

The mirror-image worry is that “more controls” silently becomes “wrong controls.” The offered interest rate is set downstream of the denial decision and carries its own group markup — a post-treatment mediator that channels part of the discrimination. A naive analyst reaching for rigor might add it to “hold loan terms fixed.” The prediction: conditioning on a variable on the discrimination pathway absorbs the very effect we estimate, so the residual should collapse — a failure of the analyst, not of the design.

It collapses and reverses. Adding the offered rate to the full-control specification moves the minority residual from 20.9 points to −6.0 points — not merely shrunk but sign-flipped to a nonsensical “minority applicants are denied less” artifact. The discrimination did not disappear; we controlled it away, because part of the planted bias flows through the rate markup and conditioning on the mediator soaks it up. The operative question for every control is the one a dataset cannot answer on its own: is this variable a confounder to hold fixed, or a channel to leave alone? The residual concern is that judging confounder-versus-channel requires institutional knowledge — which products are “steered,” which fields encode prior decisions — that lives outside any data file.

6.3 The functional-form threat: a race-blind benchmark, and standard-error flavors

Two stability checks. First, because the true decision rule is a nonlinear threshold and the LPM is a linear approximation, a small residual could be approximation error rather than differential treatment. We benchmark against a race-blind rule: re-decide every application using a latent index built from the risk factors only, with the discrimination term forced to zero and the noise draw held fixed, so the only difference from the human rule is whether the group penalty is switched on — the synthetic analogue of BHR’s race-blind automated underwriting system. The race-blind rule drives the residual (after full controls) from the human rule’s 21.0 points to 1.3 points. The residual under a rule that cannot see group is small but not exactly zero, and that ~1.3-point floor is not hidden discrimination — it is the LPM approximating a nonlinear threshold on two groups with different risk distributions. Locating that floor is the point: it is tiny next to the human residual, so the 21.6-point Section 5 residual is overwhelmingly planted treatment, not functional-form artifact. (The raw gap under the race-blind rule falls only to about 26 points, not to zero, because legitimate risk still differs across groups — removing the human removes the discretion channel, not the underlying composition difference.)

Second, the standard-error flavor. The classical homoskedastic standard errors are nearly identical to the HC1 errors of Table 3 (both near 0.3 points on the key coefficient), and neither moves a single star. Pass: the conclusion is invariant to the inference choice, as it should be in a 60,000-observation i.i.d. cross-section with no panel structure to cluster on. This is the one robustness result purely about inference rather than identification, and we flag it as such: it shows the number is not an artifact of an arbitrary SE choice, and says nothing about whether the design is valid. Robustness is not identification.

7. Conclusion

We set out to measure how much of a mortgage-denial gap is legitimate risk and how much is a residual that looks like differential treatment, and to show what determines whether that residual can be believed. On a synthetic, HMDA-like dataset with a known planted disparity, a raw denial gap of 43.9 percentage points decomposes into roughly equal halves: about 22 points explained by group differences in legitimate, observable risk, and a contested residual of about 22 points that survives the full control set. The residual is associated with being in the minority group conditional on observables; under our selection-on-observables assumption it is consistent with differential treatment, and we claim nothing stronger, because the design supports nothing stronger.

The honest limits are the spine of the paper, not an afterthought. First and most important, on real HMDA the credit score is unobservable, and Section 6.1 measured what that costs: omitting the score inflates the residual by more than half. Our 21.6-point residual is an artifact of artificial full information that real data never grants; a real analyst’s number would be worse, and bounded above, not estimated. Second, the residual is a disparate-treatment quantity — a different rule applied to the same inputs — and says little about disparate impact, the distinct legal concern that a facially neutral rule (even a race-blind algorithm) can produce unlawful outcomes if it prices on a score shaped by historical inequity. Conditioning on the credit score may be holding fixed a legitimate risk factor, or controlling away a channel of disparate impact; this design cannot tell, and the policy verdict turns on which it is. Third, the design is a decomposition, not a natural experiment: with no policy shock to lean on, it cannot rule out an unobserved confounder more subtly than by the demonstrations above.

That last limit is the bridge to the rest of the fair-lending track. The reason Sun and Gao (2019) studied lending to same-sex borrowers with a research design — matched comparison and policy variation — rather than a longer control list is exactly the limit we hit: when the decisive risk variable is unobservable, no decomposition can separate treatment from composition, and credibility has to come from the design instead. The natural next step, the one Lab 4 rehearses, is to pair a disparity like this with a clean identification strategy — a staggered state fair-lending policy shock estimated against never-treated controls — so that the parallel-trends assumption, not the impossible “we controlled for everything,” carries the causal weight. This paper is the negative space that motivates that move: a demonstration of how far the decomposition gets, and the precise point at which it cannot go further.


References

  • Bartlett, R., Morse, A., Stanton, R., & Wallace, N. (2022). Consumer-Lending Discrimination in the FinTech Era. Journal of Financial Economics, 143(1), 30–56.
  • Bhutta, N., Hizmo, A., & Ringo, D. (2022). How Much Does Racial Bias Affect Mortgage Lending? Evidence from Human and Algorithmic Credit Decisions. Federal Reserve Finance and Economics Discussion Series (FEDS) Working Paper No. 2022-067. (Subsequently published in the Journal of Finance, 2025.)
  • Blinder, A. S. (1973). Wage Discrimination: Reduced Form and Structural Estimates. Journal of Human Resources, 8(4), 436–455.
  • Sun, H., & Gao, L. (2019). Lending practices to same-sex borrowers. Proceedings of the National Academy of Sciences, 116(19), 9293–9302.
  • Oaxaca, R. (1973). Male–Female Wage Differentials in Urban Labor Markets. International Economic Review, 14(3), 693–709.
  • Consumer Financial Protection Bureau. HMDA Data Browser. https://ffiec.cfpb.gov/data-browser/ (data vintage pinned per run; for a real paper, name the exact snapshot — [CHECK] the snapshot date on the camp container before citing any real figure).

How This Paper Was Built — Annotated Margin Commentary

This section is not part of the paper. It is the exemplar’s teaching layer: a walk through the choices that made the paper above survive a Week-5-style hostile reading, keyed to CONVENTIONS and Appendix D. Read it after the paper, the way you would read a director’s commentary.

Why a decomposition, not the Lab-4 DiD. The capstone track offers two designs. Lab 4 builds a clean staggered difference-in-differences on a HMDA-shaped panel, where a policy shock and never-treated controls let parallel trends carry causal weight. This paper deliberately does the other thing — a cross-sectional Blinder–Oaxaca decomposition (the nb6.4 exercise) — because the two designs license very different verbs, and showing the weaker design done honestly is the more instructive exemplar. A decomposition is selection-on-observables: it can only ever say “associated with,” and the whole craft is refusing to let that creep up to “causes.” If you write the DiD version, your verbs go up a notch (to “causally estimate, under parallel trends”), but the structure, table craft, and limits-paragraph discipline transfer wholesale.

The synthetic-data label is the first and most repeated move. CONVENTIONS §6 forbids fabricating empirical claims, and presenting synthetic numbers as real findings would be exactly that. So the synthetic nature is declared three times, at descending scope: a blockquote banner before the title, a footnote on the first numeric sentence of the introduction, and an italic clause in the Table 3 note. A reader who lands on any entry point — abstract, intro, or headline table — must learn within one screen that the numbers are illustrative. This is not over-hedging; it is the one honest caveat the whole document needs, placed where it cannot be missed.

Every number traces to nb6.4, frozen. Appendix D.2’s last commandment is “generate, don’t retype.” The figures here — 43.9 raw, the 39.8/32.4/20.9 march, the 22.3/21.6 Oaxaca split, the 32.9 omitted-score inflation, the −6.0 over-control flip, the 1.3 race-blind residual — were read off a re-run of the nb6.4 data-generating process at seed 42, not invented to sound plausible. A retyped table drifts from its source; a generated one cannot. For your own paper the tables come out of nb8.3, and you never touch the digits by hand.

The identifying assumption is one sentence, and it states the failure direction. CONVENTIONS §4 demands outcome · treatment · controls · FE · clustering · sample · identifying assumption, and Section 4 names all seven, with the assumption italicized: the residual equals differential treatment only if the controls capture all legitimate risk and nothing on the discrimination pathway. Notice it names both ways the assumption fails — too few controls (omitted score) and the wrong controls (the mediator) — because those become Sections 6.1 and 6.2. A design section that said “we control for confounders” instead would have thrown away the paper’s credibility; D.5.6 bans “controls for endogeneity” for the same reason.

The threats table (Table 2) is ordered by danger and has no blank residuals. Per D.3, the robustness section is organized around the threats table, not around a list of regressions, and the rows descend from the most dangerous threat (the missing score, the thing a regulator asks about first) downward. The residual-concern column is substantive in every row — D.3 is explicit that a blank residual is “a tell, not a triumph.” Section 6 then cashes each row: §6.1 answers the omitted-score row, §6.2 the over-control row, §6.3 the functional-form row, each opening by stating what a pass looks like before reporting the result, so there is no freedom to redefine “pass” after seeing the number.

Table 3 is built to the D.1/D.2 standard, and to stand alone. Columns are specifications built parsimonious-to-saturated (raw → +income → +income,LTV,DTI → +all incl. score), not variables; the key coefficient sits on top in every column with its standard error beneath; controls collapse into Yes/No switch rows rather than spraying nuisance coefficients; N is on every column and constant at 60,000, defusing the silent-sample-change trap; stars are defined; the SE flavor (HC1) is named. Two deliberate departures from the D.1 worked example: there are no fixed effects (a single cross-section), so the table reports ordinary R^2, not within-R^2 — D.2 §2’s rule is “within-R^2 for FE models,” and using it here would be wrong. And there is no clustering: with 60,000 i.i.d. draws and no repeated unit, there is nothing to cluster on, so the note says HC1 and §6.3 confirms classical SEs agree. Reporting clustered SEs to look sophisticated would have been a craft error; the honest move is to say why clustering does not apply.

The verbs are audited against the weakest assumption (D.5.1). Run the D.5 verb-audit on the paper and every verb attached to the residual is “associated with,” “consistent with,” “a residual disparity,” “survives” — never “causes,” “leads to,” or “discriminates against.” The abstract, intro preview, results, and conclusion are held to the same ceiling to prevent the drift D.5.2 warns about, where the abstract hedges and the conclusion overclaims. The single hedge is placed on the assumption (“under the assumption that the controls capture all legitimate risk”), not smeared across every sentence as mush. The contribution sentence (D.5.3) states what is now known (a worked demonstration of what the decomposition can and cannot establish), not what we did, and its verb is calibrated to a methodological exercise, not a discovery.

Citations are real and load-bearing (D.5.4, CONVENTIONS §6). Sun and Gao (2019) is cited exactly per the camp’s anchor list and used to position — it marks the wall of the map (why the field reaches for design) and the edge of our gap (where the decomposition stops). Bartlett et al. and BHR set up the pricing-vs-acceptance and human-vs-algorithm seams; Blinder and Oaxaca are the method’s primary sources, cited because the paper uses their decomposition by name, not to pad. The one [CHECK] in the references is honest and deliberate: a real paper must pin the HMDA vintage, and since this exemplar uses no real HMDA figure, it flags the obligation rather than inventing a snapshot date — exactly the “tag the hole, never fabricate” rule.

The honest-limits paragraph is the spine, not the footnote (D.5.5). Section 7 leads its limits with the single most damaging one — the unobservable score on real HMDA — and states the disparate-treatment-vs-disparate-impact distinction that determines the policy verdict, then bridges to the DiD design as the way past the limit. This is the conceded-fatal-critique move: naming your own worst vulnerability before a referee does is what makes the rest of the paper trustworthy. The conclusion resists the verb-creep D.5.5 warns of — no “proves,” no “establishes” — and ends by pointing forward to the cleaner design rather than declaring the question settled.

What a student should copy, and what they should not. Copy the structure (the seven-section skeleton, the four-move intro, the threats table cashed out as the robustness section), the table craft, the verb discipline, and above all the limits paragraph. Do not copy the numbers — they are synthetic — and do not copy the “no clustering” choice into a panel paper, where it would be the BDM disease. The exemplar’s deepest lesson is the one Lab 4 and Mentor 4 drilled: a disparity is not a finding, the residual from a control list is neither nothing nor a clean causal effect, and the credibility of a fair-lending paper comes from the design and the honesty about its limits, never from the length of the control list.


  1. All quantitative results in this exemplar come from a synthetic, HMDA-like dataset constructed for instruction in nb6.4; they are illustrations of a method, not empirical findings about real lending. The opening sentence describes the kind of pattern that motivates the literature and is deliberately not pinned to a vintage or a real figure.↩︎