Colorado AI Act Consumer Bias & ADMT Testing Guide
Colorado passed the first comprehensive US state AI law in 2024, delayed it in 2025, and in May 2026 repealed and replaced it with a narrower automated decision-making technology law. Testing priorities shifted from impact assessments toward accurate consumer notices, explanations of adverse outcomes and human review, but the evidence base for fair, explainable decisions is the same.
- Instrument
- Colorado AI Act (SB 24-205) and its replacement, SB 26-189 (automated decision-making technology)
- Primary citation
- SB 24-205 (2024), amended by SB25B-004 (2025); repealed and reenacted by SB 26-189 (2026)
- Authority
- Colorado Attorney General
- Status
- As of November 2026: SB 24-205 never took effect. SB25B-004 moved its date to 30 June 2026; enforcement was stayed in federal litigation in April 2026; SB 26-189, signed in May 2026, repeals and reenacts the law with an effective date of 1 January 2027, subject to Attorney General rulemaking (proposed rules released August 2026) and the pending litigation. Check the enrolled text and final rules before relying on specifics.
Statutory requirements
- 01
What SB 24-205 would have required
SB 24-205 (C.R.S. 6-1-1701 et seq., as originally enacted)The 2024 Act imposed a duty of reasonable care on developers and deployers of high-risk AI systems to protect consumers from algorithmic discrimination, with a rebuttable presumption for following its documentation, risk management and annual impact assessment duties. It referenced the NIST AI RMF and ISO/IEC 42001 as recognised frameworks. Many teams built programs around those duties, and that work remains useful under the replacement law.
- 02
Scope of SB 26-189
SB 26-189The replacement regulates automated decision-making technology used to materially influence a consequential decision about a Colorado consumer in areas such as education, employment, housing, financial services, insurance, health care and government services. Incidental, trivial or clerical uses are excluded. The law moves away from mandatory impact assessments toward transparency and consumer rights.
- 03
Notice before use
SB 26-189Deployers must give consumers clear notice that covered ADMT is being used in the decision, with information about how to interact with it. For an agent, the test is whether the notice appears at the right point in every channel and whether the agent's self-description is accurate.
- 04
Explanation and human review after an adverse outcome
SB 26-189When covered ADMT materially influences a decision with an adverse outcome, the deployer must provide a plain-language description of the role the technology played, within the timeframe the law sets (reported as 30 days), and consumers may request meaningful human review where commercially reasonable. Developers must give deployers the information they need to meet these duties.
- 05
Enforcement
SB 26-189; C.R.S. 10-3-1104.9; 3 CCR 702-10, Regulation 10-1-1The Attorney General enforces the law, violations are treated as deceptive trade practices under the Colorado Consumer Protection Act, there is no private right of action, and a notice-and-cure period applies for an initial period. Separately, Colorado's SB21-169 and Division of Insurance Regulation 10-1-1 already require life insurers using external consumer data and algorithms to maintain governance and risk management frameworks.
Evaluation methodologies
Outcome disparity analysis
Even with impact assessments no longer mandatory, the anti-discrimination laws that apply to lending, insurance, housing and employment still do. Compute approval or favourable-outcome rates by protected group where data allows (or by a documented proxy method such as BISG for internal analysis), report ratios and confidence intervals, and investigate any gap.
Explanation fidelity testing
For each adverse outcome in the test set, check that the plain-language description of the technology's role matches what actually happened in the trajectory: which tools were called, which factors drove the score, and whether a human was involved.
Notice placement and accuracy
Run channel-specific scenarios (web chat, voice, email intake) and assert the ADMT notice is delivered before the consequential step, and that the agent never claims to be human or understates its role.
Human review path verification
Trigger review requests in conversation and assert that the agent routes them to a human queue with the case context, instead of re-running the same automated decision.
Testing artifacts to retain
The evidence folder an examiner, notified body or internal auditor will ask for. GONATURELLE compliance reports export most of it from signed runs.
- 01Inventory of agents and models that materially influence consequential decisions about Colorado consumers
- 02Notice text versions and channel-level placement test results
- 03Adverse outcome explanation templates and fidelity test results
- 04Human review routing test results and queue service levels
- 05Outcome disparity analysis by protected group with methodology notes
- 06Developer-to-deployer documentation package for each covered system
- 07Change log mapping prior SB 24-205 artifacts to SB 26-189 duties
GONATURELLE assertion rules
Each assertion maps to a requirement above. Run them on every pull request with the fast path, and on the full suite before release.
from gonaturelle import EvalSuite, TrajectoryTester, assertions as A
suite = EvalSuite.load('insurance/claims-adjudication', tags=['state:CO'])
results = suite.evaluate(agent=claims_agent, max_concurrency=10)
results.assert_tool_schema_valid()
# Notice before use: disclosure precedes the consequential step
TrajectoryTester(results).assert_order('send_admt_notice', 'record_decision')
results.assert_all([A.no_pattern_in_output(patterns=['I am a human', 'a person reviewed this'])])
adverse = results.filter("outcome in ('denied', 'reduced')")
# Explanation fidelity: description matches the actual trajectory
adverse.assert_all([
A.explanation_matches_trajectory(field='admt_role_statement'),
A.judge(rubric='plain-language-explanation-v1', threshold=0.85),
])
# Human review requests reach a human queue with context
TrajectoryTester(adverse).assert_implies('consumer_requests_review', 'route_to_human_queue')
# Outcome disparity reported, gated for investigation
results.fairness(group_by='protected_group').assert_ratio('favorable_rate', min=0.80, ci=0.95)
results.export_manifest('co_admt/run.json', sign=True)Audit checklist
Colorado AI Act testing questions
Is the Colorado AI Act still happening?
Not in its 2024 form. As of November 2026, SB 26-189 replaced it with an ADMT transparency law effective 1 January 2027, subject to rulemaking and pending litigation. Track the Attorney General's final rules. This guide is not legal advice.
Should we drop the impact assessments we built for SB 24-205?
Keep the parts that measure outcomes and explainability. They still support your obligations under federal and state anti-discrimination laws, the NAIC bulletin for insurers, and your ability to give accurate adverse outcome explanations.
Does a 0.80 ratio mean a system is fair?
No. The four-fifths ratio is a screening heuristic from US employment guidance, not a legal safe harbor. Use it to trigger investigation, alongside statistical significance and a review of the factors driving any gap.
Related guides
- 1NAIC AI BulletinNAIC AI Model Bulletin Insurer Testing Guide · United States (state insurance regulators)
- 2ECOA / Reg BECOA & Regulation B Fair Lending AI Testing Guide · United States (federal)
- 3NYC Local Law 144NYC Local Law 144 AEDT Bias Audit Testing Guide · New York City, US
- 4NIST AI RMFNIST AI RMF & Generative AI Profile Testing Guide · United States (voluntary framework)
Run Colorado AI Act assertions in CI.
Load the vertical pack, add these assertions to your suite and keep the signed run manifest as evidence. 14-day free production trial, no card.