PROMETHEUS OS
NATIVE AI OPERATING SYSTEM
[INIT] Prometheus OS loading...
[CORE] Neural interface initializing...
[AI] LLM router connecting...
[MEM] Memory graph loading...
[AGT] Agent chains on standby...
[SEC] Security protocols active...
[NET] Provider mesh established...
[UI] Workspace rendering...
[DONE] All systems nominal.
Welcome to PROMETHEUS OS.
READY · OFFLINE · SECURE · PRIVATE
🎨 THEME ENGINE
PROMETHEUS OS · 23 THEMES
Trial version: Dark + Light themes only.
Full theme access with PROMETHEUS OS license.
Dark theme active
Experience all 23 themes in PROMETHEUS OS

AI in Finance, Law and Government

Intermediate 18 min· 5 exercises

Build and assess AI for regulated decisions: generate adverse-action reasons, test for disparate impact, apply model risk management, estimate e-discovery recall, avoid hallucinated citations, and design auditable public-sector systems.

By the end of this lesson you will be able to
  • Explain the main AI applications in credit, fraud, trading, legal practice and public administration, and the failures that shaped their rules.
  • Derive principal-reason codes from a scoring model and compute an adverse impact ratio.
  • Apply the elements of model risk management (development, independent validation with effective challenge, governance) to ML and LLM systems.
  • Estimate recall in technology-assisted review from an elusion sample, including its uncertainty.
  • Choose controls that prevent hallucinated legal citations and automated harm in public-sector decisions.
  • Design decision logging, documentation and monitoring that make an AI system auditable.

Before this: Bias and Fairness in AI, AI Law and Regulation, Linear and Logistic Regression

Finance, law and government share one feature that shapes everything about how AI is used in them: decisions must be justified to someone else. A lender must tell a rejected applicant why; a lawyer must stand behind every citation; a government agency must be able to explain, and defend in court, why it cut someone's benefits. This lesson covers the main AI applications in each sector, the rules that govern them, the failures that shaped those rules, and the engineering practices that make AI systems auditable.

This lesson is general education, not legal or financial advice. Rules differ by jurisdiction and change; check the sources listed and qualified counsel before acting.

The intuition: show your work

In school, a right answer without working often earned partial credit, because the teacher needed to see that you got there for the right reasons. Regulated sectors apply the same rule to algorithms. A model that predicts well but cannot show why will struggle in lending, litigation or public administration, not because accuracy doesn't matter, but because these settings require contestability: the affected person, an auditor or a judge must be able to examine the reasons and challenge them. Keep that idea in mind; most of the rules below are ways of enforcing it.

Finance

Credit scoring and fair lending

Credit scoring estimates the probability that a borrower will default. Classic scorecards are logistic regression models on binned variables; many lenders now also use gradient-boosted trees and alternative data such as cash-flow information from bank accounts.

In the United States the key legal constraints include:

  • Equal Credit Opportunity Act (ECOA) and its implementing Regulation B: lenders may not discriminate on protected characteristics such as race, sex, religion, national origin, marital status or age, and must send applicants who are denied credit an adverse action notice stating the specific principal reasons. In a 2022 circular (2022-03), the Consumer Financial Protection Bureau (CFPB) stated that this duty applies even when a complex algorithm makes the decision: "the model is too complex to explain" is not a defence. The CFPB withdrew that circular, along with dozens of other guidance documents, in May 2025, but the reason-giving requirement itself is in the regulation and still applies whatever technology produces the decision.
  • Fair Credit Reporting Act (FCRA): governs consumer report data, its accuracy, and notices when it is used against a consumer.
  • Disparate treatment and disparate impact: treating applicants differently because of a protected characteristic is unlawful; a neutral-looking practice with a disproportionate adverse effect on a protected group can also create liability unless it serves a legitimate business need that a less discriminatory alternative could not meet. How far regulators pursue disparate impact varies over time, but private litigation and state law can still apply.

In the EU, the AI Act lists AI used to evaluate the creditworthiness of individuals, or to establish their credit score, as high-risk (fraud detection is excluded). As of November 2026, after the Digital Omnibus amendments (in force since 27 July 2026), high-risk obligations for such stand-alone uses apply from 2 December 2027. The General Data Protection Regulation's Article 22 also gives individuals rights around decisions based solely on automated processing that significantly affect them.

Worked example: reason codes. Suppose a model's log-odds of default is

z=−3+2.5 u+0.7 ℓ−0.006 m+2.0 dz = -3 + 2.5\,u + 0.7\,\ell - 0.006\,m + 2.0\,d

where uu is credit utilisation (0 to 1), ℓ\ell the number of late payments in 24 months, mm months of credit history, and dd the debt-to-income ratio. The probability of default is p=1/(1+e−z)p = 1/(1+e^{-z}).

Applicant: u=0.95u=0.95, ℓ=2\ell=2, m=178m=178, d=0.37d=0.37.

z=−3+2.375+1.4−1.068+0.74=0.447z = -3 + 2.375 + 1.4 - 1.068 + 0.74 = 0.447, so p=1/(1+e−0.447)≈0.61p = 1/(1+e^{-0.447}) \approx 0.61. The lender's cut-off is p<0.20p < 0.20, so the application is denied.

To generate reasons, compare each term with a reference profile, here a typical approved applicant with u=0.30u=0.30, ℓ=0\ell=0, m=120m=120, d=0.25d=0.25 (whose z=−2.47z = -2.47, p≈0.08p \approx 0.08). The contribution of each feature is coefficient × (applicant value − reference value):

FeatureContribution to zz
Utilisation: 2.5×(0.95−0.30)2.5 \times (0.95-0.30)+1.625
Late payments: 0.7×(2−0)0.7 \times (2-0)+1.400
Debt-to-income: 2.0×(0.37−0.25)2.0 \times (0.37-0.25)+0.240
History length: −0.006×(178−120)-0.006 \times (178-120)−0.348

The contributions sum to 0.447−(−2.47)=2.9170.447 - (-2.47) = 2.917, exactly the gap in log-odds. The two principal reasons are high utilisation and recent late payments; history length helped the applicant and is not a reason for denial. For linear models this decomposition is exact. For tree ensembles, practitioners use attribution methods such as SHAP (Shapley additive explanations), which approximate the same idea but depend on the choice of reference distribution and can be unstable, so reason codes from them must be tested for consistency.

Worked example: adverse impact ratio. Of 1,000 applicants in group A, 420 are approved (42%); of 1,000 in group B, 600 are approved (60%). The adverse impact ratio is 0.42/0.60=0.700.42 / 0.60 = 0.70. A common screening heuristic, the "four-fifths rule", comes from US employment-selection guidelines and treats ratios below 0.8 as a signal for closer review. It is not a legal safe harbour in lending, but a ratio of 0.70 should trigger analysis: which features drive the gap, are any acting as proxies for a protected characteristic (ZIP code for race is the classic example), and is there a less discriminatory alternative model with similar predictive power?

Code: reasons and disparity checks

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

rng = np.random.default_rng(1)
names = ["utilization", "late_payments_24m", "months_on_file", "dti"]
n = 4000
X = np.column_stack([rng.uniform(0, 1, n), rng.poisson(0.6, n),
                     rng.integers(6, 240, n), rng.uniform(0.05, 0.6, n)])
logit = -3.0 + 2.5 * X[:, 0] + 0.7 * X[:, 1] - 0.006 * X[:, 2] + 2.0 * X[:, 3]
default = rng.random(n) < 1 / (1 + np.exp(-logit))
group = rng.random(n) < 0.4          # protected-class flag, NOT a model input

sc = StandardScaler().fit(X)
m = LogisticRegression().fit(sc.transform(X), default)
p_default = m.predict_proba(sc.transform(X))[:, 1]
approve = p_default < 0.20

def reasons(x, k=2):
    """Features pushing log-odds of default above the approved-applicant mean."""
    ref = sc.transform(X[approve]).mean(axis=0)
    contrib = m.coef_[0] * (sc.transform(x[None])[0] - ref)
    order = np.argsort(-contrib)
    return [(names[i], round(float(contrib[i]), 2)) for i in order[:k] if contrib[i] > 0]

denied = np.where(~approve)[0][0]
print("p(default)=%.2f" % p_default[denied], "reasons:", reasons(X[denied]))
air = approve[group].mean() / approve[~group].mean()
print("adverse impact ratio: %.2f" % air)

The protected attribute is kept out of the model but in the monitoring data: you cannot measure disparity without it. In this synthetic data the group flag is random, so the ratio is close to 1.0. In real data, features correlated with protected characteristics produce gaps that only this kind of check reveals.

Fraud detection

Fraud detection is one of the oldest and most successful ML applications in finance: card transactions, account takeover, money laundering, insurance claims. Its defining features are extreme class imbalance (fraud is a small fraction of transactions), adversaries who adapt, labels that arrive late (a chargeback may come weeks later), and asymmetric costs (a missed fraud loses money; a false decline loses a customer). Systems typically combine rules, gradient-boosted models and graph features (shared devices, addresses, merchants), and are evaluated on precision–recall curves and dollar-weighted metrics rather than accuracy. See Anomaly and Fraud Detection for the techniques.

Algorithmic trading

Most trading volume in major equity markets is now executed by algorithms, from execution algorithms that slice large orders to high-frequency market-making. ML is used for short-horizon prediction, execution optimisation and risk. The defining risks are speed and feedback:

  • The 6 May 2010 "Flash Crash", in which US equity indices fell roughly 9% and largely recovered within about half an hour, showed how automated selling and liquidity withdrawal can interact.
  • On 1 August 2012, a faulty deployment at Knight Capital activated old code that sent millions of unintended orders; the firm lost about 460 million US dollars in roughly 45 minutes. In 2013 the US Securities and Exchange Commission charged it under the Market Access Rule, which requires pre-trade risk controls, and Knight paid a 12 million dollar penalty.

Regulation therefore focuses on controls: pre-trade limits, kill switches, testing of algorithms before deployment, and (in the EU, under MiFID II) explicit requirements for firms engaged in algorithmic trading. The Knight case is as much a lesson in deployment engineering as in finance.

Model risk management

US banking supervisors set out expectations for model risk management in supervisory guidance issued in April 2011 by the Federal Reserve (SR 11-7) and the Office of the Comptroller of the Currency (Bulletin 2011-12), later adopted by the FDIC. For fifteen years it was the reference text; this section describes its framework because it shaped practice everywhere. It defines a model broadly as a quantitative method that turns inputs into estimates, and model risk as the potential for adverse consequences from decisions based on incorrect or misused models. Its core elements are:

  1. Sound development, implementation and use: documented purpose, data, assumptions and limitations.
  2. Validation: evaluation of conceptual soundness, ongoing monitoring, and outcomes analysis such as back-testing, performed with effective challenge, meaning critical review by people who are independent, competent and have the influence to force changes.
  3. Governance: a model inventory, policies, defined roles, and board and senior management oversight.

In April 2026 the three agencies replaced it with shorter, principles-based Revised Guidance on Model Risk Management (Federal Reserve SR 26-2). The revision narrows the definition of a model, scales oversight to each model's materiality, focuses on larger banks, keeps a reformulated effective challenge, and explicitly leaves generative and agentic AI outside its scope, pointing banks to their broader risk management for those. The SR 11-7 pattern nonetheless remains the template for AI governance in banks worldwide, and it applies naturally to ML and LLM systems: inventory them, tier them by risk, validate independently, and monitor.

Law

E-discovery and technology-assisted review

In litigation, parties must produce relevant documents, often millions of emails and files. Technology-assisted review (TAR), also called predictive coding, trains a classifier on attorney-coded examples and ranks the rest by likely relevance. In Da Silva Moore v. Publicis Groupe (S.D.N.Y., 2012), Magistrate Judge Andrew Peck issued what is widely cited as the first judicial opinion approving TAR in an appropriate case. The central question in TAR protocols is recall: what share of the relevant documents did the process find?

Worked example: estimating recall. A review of a 1,000,000-document collection produces 60,000 documents, of which reviewers confirm 48,000 are responsive. The remaining 940,000 are the "null set". The team draws a random sample of 1,500 from the null set and finds 6 responsive documents, an elusion rate of 6/1,500=0.0046/1{,}500 = 0.004. Estimated responsive documents missed: 0.004×940,000=3,7600.004 \times 940{,}000 = 3{,}760. Estimated recall:

recall≈48,00048,000+3,760≈0.927\text{recall} \approx \frac{48{,}000}{48{,}000 + 3{,}760} \approx 0.927

Sampling uncertainty matters: an exact 95% confidence interval for 6 of 1,500 runs from about 0.15% to 0.87%, which translates to recall between about 0.85 and 0.97. Negotiated protocols specify these sampling and validation steps in advance.

Contract review and drafting

ML and LLM tools extract clauses, flag deviations from a playbook, summarise obligations and draft first versions. The main risks are confident errors on unusual clauses, missed cross-references and confidentiality. Good practice is to measure extraction accuracy on the firm's own document types and to keep a lawyer responsible for every output that reaches a client.

Hallucinated citations and court sanctions

LLMs can produce citations to cases that do not exist, with plausible names, courts and quotations. Courts have responded firmly:

  • Mata v. Avianca (S.D.N.Y., 2023): lawyers filed a brief citing non-existent cases produced by ChatGPT and, when questioned, asked the chatbot to confirm they were real. Judge P. Kevin Castel sanctioned the lawyers and their firm, including a 5,000 dollar penalty.
  • Park v. Kim (2d Cir., 2024): the federal appeals court referred an attorney to its grievance panel after a brief cited a non-existent decision generated by ChatGPT.
  • Michael Cohen's case (S.D.N.Y., 2023–2024): fictitious citations generated by Google Bard ended up in a motion filed by Cohen's lawyer; the judge declined to impose sanctions while criticising the failure to check the citations.
  • Johnson v. Dunn (N.D. Ala., 2025): lawyers from a large firm who filed motions with fabricated citations generated by ChatGPT were publicly reprimanded, disqualified from the case, and ordered to share the opinion with their clients, opposing counsel and the judges in their other pending cases.

The American Bar Association's Formal Opinion 512 (2024) applies existing duties of competence, confidentiality, communication, candour to the tribunal and reasonable fees to generative AI use, and many courts have issued standing orders requiring disclosure or certification of AI use. The engineering lesson is that retrieval-grounded tools reduce but do not eliminate fabrication: every citation must be checked against an authoritative source before filing.

Government and the public sector

Governments use AI for benefits administration, fraud detection, tax compliance, inspections targeting, translation, call centres and document processing. Public-sector failures are especially damaging because people cannot choose another provider and errors hit those with the least capacity to fight back.

  • Australia's "Robodebt" scheme (2016–2019) used an automated rule that averaged annual tax-office income across fortnights to infer overpayments of welfare benefits, then demanded repayment. It was not machine learning, which is the point: simple automation, without legal grounding and human review, produced hundreds of thousands of flawed debts. A Royal Commission reported in 2023 and condemned the scheme as both unfair and unlawful; a federal court had already found in 2019 that debts raised by income averaging alone were not validly made.
  • The Netherlands childcare benefits scandal: tax authorities wrongly accused tens of thousands of families of fraud, and a risk-classification model used nationality as a risk factor. The government resigned in January 2021, and the Dutch data protection authority later fined the tax administration for discriminatory processing.
  • Michigan's MiDAS unemployment system (2013–2015) automatically issued fraud determinations; a large majority of those later reviewed were found to be wrong, and the state settled a class action.

The common pattern: automated decisions at scale, a presumption of fraud, weak notice and appeal routes, and no one checking error rates.

Transparency and procurement. Responses include public algorithm registers (Amsterdam and Helsinki launched early ones in 2020; the UK publishes records under its Algorithmic Transparency Recording Standard), AI use-case inventories published by US federal agencies, impact assessments before deployment, and procurement terms that require vendors to provide documentation, testing access, audit rights, data portability and incident reporting. In the EU, AI used to evaluate eligibility for essential public benefits and services is high-risk under the AI Act, and public bodies deploying high-risk systems must carry out a fundamental-rights impact assessment.

Auditability and explainability

Across all three sectors, regulators and courts ask for the same things. Treat them as engineering requirements:

RequirementWhat to build
ReproducibilityVersioned code, data snapshots and model artefacts; the ability to re-run any past decision
Decision loggingInputs, model version, score, threshold, reasons and human override for every decision
ExplanationReason codes tested for stability; counterfactual explanations ("approved if utilisation were below 0.5") where useful
DocumentationModel cards, data sheets, validation reports, known limitations
MonitoringPerformance, drift and disparity dashboards with alert thresholds
ContestabilityA notice, a human review route and a way to correct data

Explainability of the model and justification of the decision are different things. A post-hoc attribution explains what the model did; whether that reasoning is lawful and fair is a separate judgement. Where the stakes are highest, many teams choose inherently interpretable models (scorecards, monotonic gradient boosting, generalised additive models) and accept a small accuracy cost.

Common pitfalls

  • Proxy discrimination: dropping the protected attribute does not prevent discrimination when other features encode it.
  • Unstable explanations: attribution methods that give different reasons for near-identical applicants undermine adverse action notices.
  • Validating the model, not the system: Knight Capital's loss came from deployment and configuration, not from a bad prediction.
  • Trusting LLM citations or quotations without checking the primary source.
  • Automating suspicion: treating a risk score as proof in benefits or fraud settings, and reversing the burden of proof onto citizens.
  • No record of what the model saw: without decision logs you cannot answer a complaint, an audit or a court.

In practice

  • Keep a model inventory, tier models by impact, and require independent validation before deployment, following the SR 11-7 pattern even outside banking.
  • Generate and test reason codes as part of model development, not as an afterthought.
  • Monitor approval, error and disparity rates by group, and document the search for less discriminatory alternatives.
  • In legal work, check every citation in an authoritative database and follow your court's AI rules.
  • In public-sector projects, publish what the system does, keep humans accountable for adverse decisions, measure error rates before scaling, and make appeals easy.
  • Build the audit trail first; it is far cheaper than reconstructing decisions after a complaint.

Key takeaways

  • Regulated sectors require decisions to be contestable, so reasons, logs and documentation are engineering requirements, not extras.
  • US lenders must give specific principal reasons for adverse credit decisions even when a complex model makes them; in the EU, creditworthiness scoring is high-risk under the AI Act.
  • Removing a protected attribute does not prevent discrimination; measure outcomes by group and look for proxies and less discriminatory alternatives.
  • Model risk management (inventory, independent validation with effective challenge, governance), set out in SR 11-7 and revised in 2026, is a reusable template for any AI system.
  • Courts have sanctioned lawyers for filing AI-fabricated citations; every citation must be checked against an authoritative source.
  • Public-sector automation failures such as Robodebt came from scale, presumed guilt and missing human review, not necessarily from sophisticated AI.

Terms in this lesson

Adverse action notice
A notice a US creditor must give an applicant who is denied credit or offered worse terms, stating the specific principal reasons.
Disparate impact
A disproportionate adverse effect of a facially neutral practice on a protected group, which can create liability unless justified and no less discriminatory alternative exists.
Adverse impact ratio
The favourable-outcome rate of one group divided by that of the comparison group.
Model risk
The potential for adverse consequences from decisions based on incorrect or misused model outputs.
Effective challenge
Critical analysis of a model by objective, informed parties with enough authority to make sure problems are fixed.
Technology-assisted review (TAR)
Using a trained classifier to rank or select documents for production in litigation, validated by statistical sampling.
Elusion rate
The proportion of relevant documents in the set that a review process did not produce, estimated by sampling.
Reason code
A standardised explanation identifying a factor that most reduced an applicant's score or outcome.
Algorithm register
A public record describing algorithmic systems used by a government body, their purpose and their oversight.

Check your understanding

  1. 1.

    A US lender uses a gradient-boosted model to deny an applicant. Which statement about adverse action notices is correct?

  2. 2.

    Group A has a 36% approval rate and group B a 48% approval rate. What is the adverse impact ratio for group A, and what does the four-fifths heuristic suggest?

  3. 3.

    What does "effective challenge" mean in model risk management?

  4. 4.

    A TAR review produced 20,000 confirmed responsive documents. A random sample of 2,000 from the 300,000-document null set finds 4 responsive documents. What is the estimated recall?

  5. 5.

    Which lesson does Australia's Robodebt scheme most directly teach?

Exercises

Work each problem before opening the solution.

  1. Exercise 1Core

    Using the lesson's model z=−3+2.5u+0.7ℓ−0.006m+2.0dz = -3 + 2.5u + 0.7\ell - 0.006m + 2.0d and the same reference profile (u=0.30u=0.30, ℓ=0\ell=0, m=120m=120, d=0.25d=0.25), compute the default probability for an applicant with u=0.80u = 0.80, ℓ=0\ell = 0, m=40m = 40, d=0.50d = 0.50. The cut-off is p<0.20p < 0.20. If denied, which two principal reasons would you report?

    Show solution

    z=−3+2.5(0.80)+0−0.006(40)+2.0(0.50)=−3+2.0−0.24+1.0=−0.24z = -3 + 2.5(0.80) + 0 - 0.006(40) + 2.0(0.50) = -3 + 2.0 - 0.24 + 1.0 = -0.24, so p=1/(1+e0.24)≈0.44p = 1/(1+e^{0.24}) \approx 0.44. Denied.

    Contributions relative to the reference:

    • Utilisation: 2.5×(0.80−0.30)=+1.252.5 \times (0.80 - 0.30) = +1.25
    • Debt-to-income: 2.0×(0.50−0.25)=+0.502.0 \times (0.50 - 0.25) = +0.50
    • History length: −0.006×(40−120)=+0.48-0.006 \times (40 - 120) = +0.48
    • Late payments: 0.7×0=00.7 \times 0 = 0

    Check: 1.25+0.50+0.48=2.23=−0.24−(−2.47)1.25 + 0.50 + 0.48 = 2.23 = -0.24 - (-2.47). The two principal reasons are high credit utilisation and high debt-to-income; short credit history is a close third and many lenders would list up to four reasons.

  2. Exercise 2Core

    A TAR review confirms 30,000 responsive documents in its production. The null set contains 470,000 documents; a random sample of 1,000 from it contains 3 responsive documents. Estimate recall, then use the exact 95% interval for 3 of 1,000 (about 0.06% to 0.87%) to give a range for recall. Would you accept the review if the protocol required recall of at least 0.80 with 95% confidence?

    Show solution

    Elusion =3/1,000=0.003= 3/1{,}000 = 0.003. Missed ≈0.003×470,000=1,410\approx 0.003 \times 470{,}000 = 1{,}410. Recall ≈30,000/31,410≈0.955\approx 30{,}000/31{,}410 \approx 0.955.

    Range: low elusion 0.0006×470,000≈2900.0006 \times 470{,}000 \approx 290 gives recall ≈30,000/30,290≈0.99\approx 30{,}000/30{,}290 \approx 0.99; high elusion 0.0087×470,000≈4,1100.0087 \times 470{,}000 \approx 4{,}110 gives recall ≈30,000/34,110≈0.88\approx 30{,}000/34{,}110 \approx 0.88.

    The worst case within the interval (about 0.88) still exceeds 0.80, so the review meets that protocol. With a smaller sample the interval would be wider and might not.

  3. Exercise 3Core

    Write Python that simulates a credit dataset where a neighbourhood score (zip_risk) is correlated with a protected group and weakly predictive of default. Train a logistic regression with and without zip_risk, and report test AUROC and the adverse impact ratio (approval rate of the protected group divided by the others) for each. Interpret the result.

    Show solution
    import numpy as np
    from sklearn.linear_model import LogisticRegression
    from sklearn.metrics import roc_auc_score
    from sklearn.model_selection import train_test_split
    
    rng = np.random.default_rng(2)
    n = 20000
    group = rng.random(n) < 0.3                       # protected attribute (monitoring only)
    util = rng.uniform(0, 1, n)
    late = rng.poisson(0.6, n)
    zip_risk = rng.normal(0, 1, n) + 1.5 * group      # neighbourhood score correlated with group
    logit = -3.0 + 2.5 * util + 0.7 * late + 0.2 * zip_risk
    default = (rng.random(n) < 1 / (1 + np.exp(-logit))).astype(int)
    
    def evaluate(features):
        X = np.column_stack(features)
        Xtr, Xte, ytr, yte, gtr, gte = train_test_split(X, default, group, test_size=0.3, random_state=0)
        p = LogisticRegression(max_iter=1000).fit(Xtr, ytr).predict_proba(Xte)[:, 1]
        approve = p < 0.20
        air = approve[gte].mean() / approve[~gte].mean()
        return roc_auc_score(yte, p), air
    
    print("with zip_risk:    AUROC %.3f, AIR %.2f" % evaluate([util, late, zip_risk]))
    print("without zip_risk: AUROC %.3f, AIR %.2f" % evaluate([util, late]))
    

    A typical run prints AUROC about 0.743 with zip_risk and adverse impact ratio about 0.75, versus AUROC about 0.735 and ratio about 1.01 without it. The proxy buys a small accuracy gain at the cost of a large disparity. This is exactly the situation in which fair-lending analysis asks whether a less discriminatory alternative with similar performance exists, and here it does. Real analyses also check whether the remaining features carry the proxy signal, and document the decision.

  4. Exercise 4Challenge

    Write a Python function that extracts US reporter citations (for example 550 U.S. 544 or 925 F.3d 1339) from a brief and returns those not found in a set of citations already verified in an authoritative database. Then explain why this check is necessary but not sufficient.

    Show solution
    import re
    
    CITE = re.compile(r"\b(\d{1,4})\s+(U\.S\.|S\. ?Ct\.|F\.(?:2d|3d|4th)?|F\. Supp\.(?: 2d| 3d)?)\s+(\d{1,5})\b")
    
    def unverified_citations(brief_text, verified):
        """Return reporter citations in the brief that are not in the verified set."""
        found = {" ".join(m.groups()) for m in CITE.finditer(brief_text)}
        return sorted(found - verified)
    
    verified = {"550 U.S. 544", "556 U.S. 662"}      # e.g. exported from a citator check
    brief = ("Plausibility is required. Bell Atlantic Corp. v. Twombly, 550 U.S. 544 (2007); "
             "Ashcroft v. Iqbal, 556 U.S. 662 (2009); see also Smith v. Acme Air, 925 F.3d 1339 (11th Cir. 2019).")
    print(unverified_citations(brief, verified))
    

    This prints ['925 F.3d 1339'], the citation (deliberately invented for this exercise) that was not verified.

    Why not sufficient: a citation can exist yet not say what the brief claims (wrong holding, misquoted text, overruled law), the case name may not match the reporter cite, pin cites can be wrong, and regex will miss unusual formats (state reporters, neutral citations, docket numbers). The full control is: verify each authority in a citator, read the cited passage, confirm the quotation, check subsequent history, and have the signing lawyer certify the review, following the court's own rules on AI disclosure.

  5. Exercise 5Challenge

    A state agency wants an ML model to prioritise unemployment claims for fraud investigation. Write a one-page governance design: what the model may and may not do, the decision log fields, the validation required before launch, and the monitoring and appeal mechanisms.

    Show solution

    Scope. The model only prioritises claims for human investigation; it never determines fraud, stops payment or sends a notice on its own. An investigator must document independent evidence before any adverse action. (MiDAS and Robodebt show the cost of skipping this.)

    Decision log (per claim). Claim ID; timestamp; model version and feature-pipeline version; input features as used; score and threshold; top reasons; investigator ID; investigator decision and evidence; notice sent and date; appeal filed and outcome.

    Pre-launch validation. Independent validation team (not the developers): conceptual soundness (are labels past confirmed fraud rather than past accusations?), back-testing on historical claims, precision at the planned investigation capacity, error and flag rates by protected group and region with confidence intervals, proxy analysis, and a silent-mode pilot. Legal review of the statutory basis. Publication in the agency's algorithm register and an impact assessment.

    Monitoring. Monthly: flag rate, confirmed-fraud rate among flagged claims (precision), overturn rate on appeal, disparity metrics, input drift. Thresholds trigger review; a rise in appeal overturns triggers suspension.

    Contestability. Plain-language notices that explain the reasons and evidence, an easy appeal route with human review, no repayment demanded while an appeal is pending, and a process to correct wrong data.

Further reading

Go further

Sources

Fact-checked and last reviewed 2026-11-05

Stay in the loop
Prometheus OS™ · Native AI OS · Built for the future © 2025 - 2026