Disclaimer:
AIGovernanceprovides statistical auditing and documentation support tools only. It does not provide legal advice and does not certify compliance with any law or regulation. Users should seek qualified legal counsel for all compliance determinations.
AIGovernance helps organisations document, audit, and
report on the fairness and governance properties of employment AI
systems — specifically Automated Employment Decision Tools (AEDTs).
Version 0.1.0 covers three frameworks:
| Framework | Jurisdiction | Nature |
|---|---|---|
| EEOC Uniform Guidelines (4/5ths rule) | US Federal | Regulatory |
| NYC Local Law 144 | New York City | Mandatory (employers using AEDTs) |
| NIST AI RMF 1.0 | US Federal | Voluntary / best practice |
| EU AI Act (risk classification only) | European Union | Regulatory |
library(AIGovernance)
data(hiring_sim)
head(hiring_sim)
#> applicant_id race_ethnicity gender years_experience score selected
#> 1 1 Hispanic Male 8.5 100.0 0
#> 2 2 Black Female 6.0 83.8 1
#> 3 3 White Female 4.1 85.4 0
#> 4 4 White Male 9.0 84.8 0
#> 5 5 Black Male 4.9 81.3 0
#> 6 6 White Male 4.4 63.2 1The built-in hiring_sim dataset contains 500 synthetic
job applicants processed by a hypothetical resume-screening tool.
table(hiring_sim$race_ethnicity, hiring_sim$selected)
#>
#> 0 1
#> Asian 39 21
#> Black 75 29
#> Hispanic 63 23
#> Other 15 5
#> White 121 109aigov_build() is the entry point. Specify the data,
binary outcome, protected-class column, and reference group.
gov <- aigov_build(
data = hiring_sim,
outcome = selected,
group = race_ethnicity,
ref_group = "White",
frameworks = c("EEOC", "NYC_LL144", "NIST_RMF"),
org_name = "Acme Corporation",
system_name = "ResumeAI v1.0"
)
#> ✔ AIGovernance object built: 500 records,
#> ℹ Disclaimer: AIGovernance is a statistical support tool.
print(gov)
#>
#> ── AIGovernance Audit Object ───────────────────────────────────────────────────
#> • Organisation : Acme Corporation
#> • AI system : ResumeAI v1.0
#> • Audit date : 2026-05-19
#> • Records : 500
#> • Outcome col : selected
#> • Group col : race_ethnicity (5 levels)
#> • Ref group : White
#> • Frameworks : EEOC, NYC_LL144, NIST_RMF
#> ℹ No audit modules run yet. Call aigov_adverse_impact(), aigov_audit_nyc(), etc.aigov_scope(gov, domain = "employment", us_state = "NY")
#>
#> ── Governance Scope — Applicable Frameworks ──
#>
#> ✔ APPLIES | EEOC Uniform Guidelines (4/5ths rule)
#> ✔ APPLIES | NYC Local Law 144 (LL144)
#> ✔ APPLIES | NIST AI RMF 1.0
#> ✔ APPLIES | EU AI Act — High Risk (Annex III)
#> ✔ APPLIES | GDPR Article 22
#> ✘ NOT APPLICABLE | Colorado AI Act (SB 205)
#> ✘ NOT APPLICABLE | Illinois AI Video Interview Act
#> ✘ NOT APPLICABLE | ECOA / Regulation Bgov <- aigov_adverse_impact(gov)
#>
#> ── EEOC Adverse Impact (4/5ths Rule) ──
#>
#> # A tibble: 5 × 8
#> group n n_selected selection_rate AIR fourfifths_flag p_value
#> <chr> <int> <int> <dbl> <dbl> <lgl> <dbl>
#> 1 Asian 60 21 0.35 0.739 TRUE 0.0857
#> 2 Black 104 29 0.279 0.588 TRUE 0.000801
#> 3 Hispanic 86 23 0.267 0.564 TRUE 0.000926
#> 4 Other 20 5 0.25 0.528 TRUE 0.0538
#> 5 White 230 109 0.474 1 FALSE NA
#> # ℹ 1 more variable: small_n_flag <lgl>
#> ✖ Result: FAIL — 4 group(s) flagged (AIR < 0.80).
#> ! Small sample warning: groups "Other" have n < 30.
#> ℹ Disclaimer: The 4/5ths rule is a statistical rule of thumb.
gov$results$adverse_impact$table
#> # A tibble: 5 × 10
#> group n n_selected selection_rate AIR fourfifths_flag small_n_flag
#> <chr> <int> <int> <dbl> <dbl> <lgl> <lgl>
#> 1 Asian 60 21 0.35 0.739 TRUE FALSE
#> 2 Black 104 29 0.279 0.588 TRUE FALSE
#> 3 Hispanic 86 23 0.267 0.564 TRUE FALSE
#> 4 Other 20 5 0.25 0.528 TRUE TRUE
#> 5 White 230 109 0.474 1 FALSE FALSE
#> # ℹ 3 more variables: z_stat <dbl>, p_value <dbl>, fisher_p <dbl>The Adverse Impact Ratio (AIR) compares each group’s selection rate to the reference group (White). Groups with AIR < 0.80 are flagged under the EEOC 4/5ths rule.
NYC LL144 uses a slightly different denominator — the most-selected category — rather than a user-defined reference group.
gov <- aigov_audit_nyc(gov)
#>
#> ── NYC Local Law 144 — Bias Audit Results ──
#>
#> • Reference category (most selected): "White"
#> • Reference selection rate: 0.4739
#> # A tibble: 5 × 6
#> Category `Total Assessed` `Number Selected` `Selection Rate` `Impact Ratio`
#> <chr> <int> <int> <dbl> <dbl>
#> 1 Asian 60 21 0.35 0.738
#> 2 Black 104 29 0.279 0.588
#> 3 Hispanic 86 23 0.267 0.564
#> 4 Other 20 5 0.25 0.528
#> 5 White 230 109 0.474 1
#> # ℹ 1 more variable: `Flagged (IR < 0.80)` <lgl>
#> ✖ Statistical result: REVIEW — 4 category(ies) with IR < 0.80.
#>
#> ── Procedural Checklist (NA = requires employer confirmation)
#> ✔ Annual bias audit conducted
#> ? Audit performed prior to AEDT use or within 1 year
#> ✔ Impact ratios computed for all categories
#> ? Audit results published on employer website
#> ? Publication includes audit date
#> ? Publication includes distribution date of AEDT
#> ? Candidate/employee notice provided (10 days prior)
#> ? Notice includes AEDT purpose and data collected
#> ? Accommodation process documented for candidates
#> ? Audit conducted by independent auditor
#> ℹ Disclaimer: This output is a statistical support tool.
gov$results$nyc_ll144$disclosure_table
#> # A tibble: 5 × 6
#> Category `Total Assessed` `Number Selected` `Selection Rate` `Impact Ratio`
#> <chr> <int> <int> <dbl> <dbl>
#> 1 Asian 60 21 0.35 0.738
#> 2 Black 104 29 0.279 0.588
#> 3 Hispanic 86 23 0.267 0.564
#> 4 Other 20 5 0.25 0.528
#> 5 White 230 109 0.474 1
#> # ℹ 1 more variable: `Flagged (IR < 0.80)` <lgl>The disclosure table is formatted to match the public posting requirements under NYC LL144.
Supply your organisation’s confirmed governance practices as a named list:
gov <- aigov_audit_nist(gov, responses = list(
GOVERN_1_1 = TRUE, # Risk policy documented
GOVERN_1_2 = TRUE, # Roles defined
GOVERN_1_3 = FALSE, # Leadership oversight not yet formalised
MAP_1_1 = TRUE, # System purpose documented
MAP_1_2 = TRUE, # Affected populations identified
MAP_1_3 = TRUE, # Regulatory requirements identified
MAP_2_1 = TRUE, # Harms identified
MEASURE_1_1 = TRUE, # Fairness metrics defined
MANAGE_2_1 = FALSE # Human review not yet in place
))
#>
#> ── NIST AI RMF 1.0 — Employment AI Audit ──
#>
#> # A tibble: 4 × 3
#> Function Score Status
#> <chr> <dbl> <chr>
#> 1 GOVERN 0.29 RED
#> 2 MAP 0.57 AMBER
#> 3 MEASURE 0.25 RED
#> 4 MANAGE 0 RED
#> • Overall score: 0.28 — RED
#> ✖ NIST RMF: RED — Significant governance gaps identified.
#> ℹ Supply `responses` list to `aigov_audit_nist()` to record
gov$results$nist_rmf$scores
#> GOVERN MAP MEASURE MANAGE
#> 0.2857143 0.5714286 0.2500000 0.0000000
gov$results$nist_rmf$verdict
#> [1] "RED"Use aigov_checklist(gov, "NIST_RMF") to see all item
names.
gov <- aigov_classify(
gov,
domain = "employment",
makes_final_decision = TRUE,
human_oversight = FALSE
)
#>
#> ── AI System Risk Classification ──
#>
#> • Domain : employment
#> • Makes final decision : TRUE
#>
#> ── EU AI Act
#> • Risk tier : HIGH RISK
#> • Annex basis : Annex III, Point 4 — Employment, workers management, and access
#> to self-employment
#> ℹ Key obligations:
#> Art. 9 — Risk management system (documented, ongoing)
#> Art. 10 — Data governance and training data requirements
#> Art. 11 — Technical documentation (before market placement)
#> Art. 13 — Transparency and provision of information to deployers
#> Art. 14 — Human oversight measures
#> Art. 15 — Accuracy, robustness, and cybersecurity
#> Art. 43 — Conformity assessment
#> Art. 49 — Registration in EU AI database
#>
#> ── NIST AI RMF
#> • Tier 3 — Significant impact on individuals' rights and opportunities
#> ✖ Human oversight: NOT IN PLACE — HIGH PRIORITY gap for EU Art. 14 and EEOC.Employment AI that makes or substantially influences hiring decisions falls under Annex III (High Risk) of the EU AI Act.
The report includes:
aigov_checklist(gov, "NYC_LL144")
#>
#> ── Checklist: NYC_LL144 ──
#>
#> # A tibble: 10 × 4
#> item_id function_area description status
#> <chr> <chr> <chr> <chr>
#> 1 LL144_1 NYC Local Law 144 Annual bias audit has been conducted Compl…
#> 2 LL144_2 NYC Local Law 144 Audit was performed before AEDT use or wit… Pendi…
#> 3 LL144_3 NYC Local Law 144 Impact ratios computed for each race/ethni… Compl…
#> 4 LL144_4 NYC Local Law 144 Impact ratios computed for each sex catego… Pendi…
#> 5 LL144_5 NYC Local Law 144 Audit results published on employer website Pendi…
#> 6 LL144_6 NYC Local Law 144 Publication includes the date of the audit Pendi…
#> 7 LL144_7 NYC Local Law 144 Publication includes the distribution date… Pendi…
#> 8 LL144_8 NYC Local Law 144 Candidates/employees notified at least 10 … Pendi…
#> 9 LL144_9 NYC Local Law 144 Notice describes AEDT type and data/criter… Pendi…
#> 10 LL144_10 NYC Local Law 144 Audit was conducted by an independent audi… Pendi…