Skip to main content

AVS Framework

Audit • Validation • Security — open-source statistical engine for auditing AI-driven employment decision systems.

CI PyPI Python 3.10+ License: MIT

Developed by Safeer Ahmad, M.S., SHRM-CP, MLSecOps — Principal, Nauta Research Labs


What this is

Automated screening is effectively universal in large-employer hiring: 99% of Fortune 500 companies use an applicant tracking system, and 88% of employers surveyed acknowledge that their system filters out qualified candidates whose resumes do not match exact job-description criteria.1

Independent verification has not kept pace. When Cornell researchers audited compliance with New York City Local Law 144 — the first law anywhere to mandate bias audits for automated employment decision tools — they found that of 391 employers surveyed, only 18 had posted an audit report, and only 11 posted both an audit report and a transparency notice meeting the law's requirements.2

The AVS Framework is a governance methodology that evaluates AI employment tools across four pillars:

Pillar Question it answers Standard
Audit Does the tool produce discriminatory outcomes across protected groups? Uniform Guidelines (29 C.F.R. 1607), NYC LL144, EEOC
Validation Does the tool actually measure job-relevant characteristics? Uniform Guidelines, SIOP Principles, Griggs v. Duke Power
Security Can the tool be manipulated, poisoned, or exploited? NIST AI RMF 1.0 / AI 600-1, OWASP ML Top 10
Governance Does the organization have oversight to sustain compliance over time? NIST AI RMF GOVERN, OFCCP guidance

This repository contains the open-source (MIT) code for the Audit and Security pillars — the statistical and testing engine, not the full consulting methodology. It runs against exports from any ATS (Workday, Greenhouse, iCIMS, Lever, BambooHR) without needing vendor source code or API access to the underlying model.

For the full four-pillar assessment methodology, validation study protocols, and engagement services, see nautaresearchlabs.com.

Install

pip install avs-framework

Quickstart

import pandas as pd
from avs_framework import AVSAdverseImpactAudit

data = pd.read_csv("applicant_flow.csv")  # applicant_id, race, sex, selected, ...

audit = AVSAdverseImpactAudit(data, demographic_cols=["race", "sex"])
audit.run_full_audit()
print(audit.generate_report())

Sample output on a screening tool with confirmed adverse impact (reproduce with python examples/quickstart.py):

   Group Reference  N Applicants  N Selected Selection Rate Reference Rate Impact Ratio 4/5 Pass  Z-Score  p-value Stat Sig  Severity
   Asian     White           891         100          11.2%          14.6%        0.768     FAIL  -2.5590 0.010496      YES CONFIRMED
   Black     White          1241          99           8.0%          14.6%        0.546     FAIL  -5.8779 0.000000      YES CONFIRMED
Hispanic     White          1523         213          14.0%          14.6%        0.957     PASS  -0.5620 0.574095       no      NONE

An impact ratio below 0.80 with a statistically significant p-value (< 0.05) is a confirmed adverse impact finding under the Uniform Guidelines — it triggers a root-cause and validation-study obligation to defend continued use of the tool on business-necessity grounds.

What's included

AVSAdverseImpactAudit — adverse impact analysis

Four-fifths rule per 29 C.F.R. 1607.4D, comparing each group against the highest-selected group, combined with a pooled two-proportion Z-test. Where the smallest expected cell count in the 2×2 table falls below 5 under the pooled null, the framework automatically substitutes Fisher's exact test rather than relying on the normal approximation.

Findings are classified on four severity levels, because practical and statistical significance diverge in opposite directions at different sample sizes:

Severity 4/5 rule Statistically significant Interpretation
CONFIRMED Fails Yes Adverse impact indicated on both criteria
INDICATED Fails No Practical disparity; sample too small to confirm
MONITOR Passes Yes Statistically detectable but below the practical threshold
NONE Passes No No indication of adverse impact

The INDICATED and MONITOR cases are the ones single-criterion audits miss.

AVSNameSwapTest — name-swap bias testing

Black-box test for name-based bias in resume screening. Submits resumes that are byte-identical except for the applicant name and measures score variance across name-associated demographic groups. Methodology follows Wilson & Caliskan (University of Washington, 2024). Uses synthetic resumes only — no real applicant data is required or accepted.

AVSDriftDetector — drift detection

Chi-square test for demographic composition shift, two-sample Kolmogorov-Smirnov test for score distribution shift, and per-group selection-rate drift between a baseline and a current period. A model that passed its audit at deployment can fail silently as the applicant pool or the model changes; a single-point-in-time audit will not catch that.

Privacy

The framework operates on de-identified, aggregate data only: anonymized applicant ID, protected-category codes, AI score or decision, and hiring outcome. It never requires names, SSNs, or other PII. It makes no network requests. The security tests use synthetic resumes rather than real applicant data — so there is nothing to leak and no vendor system to reverse-engineer.

Audit findings and drift results are plain JSON-serializable Python values, suitable for direct inclusion in a compliance report:

import json
from dataclasses import asdict

findings = audit.run_audit("race")
print(json.dumps([asdict(f) for f in findings], indent=2))

Development

git clone https://github.com/SafeerAhmad211/avs-framework.git
cd avs-framework
pip install -e ".[dev]"

ruff check .
pytest --cov=avs_framework --cov-report=term-missing

CI runs against Python 3.10–3.13 and enforces a minimum of 80% coverage.

Contributions are welcome, particularly methodological review from I-O psychologists, statisticians, and employment attorneys — see CONTRIBUTING.md. You do not need to write code to correct a statistical method.

Citation

If you use this in research, cite it via the repository's Cite this repository button, or directly:

@software{ahmad_avs_framework_2026,
  author  = {Ahmad, Safeer},
  title   = {{AVS Framework: Audit, Validation, Security for AI Employment
             Decision Systems}},
  year    = {2026},
  version = {0.1.0},
  url     = {https://github.com/SafeerAhmad211/avs-framework},
  license = {MIT}
}

Limitations

  • Adverse impact analysis identifies disparities, not causes. A confirmed finding is the start of a root-cause investigation, not a conclusion about intent or legal liability.
  • The four-fifths rule is a rule of thumb from 29 C.F.R. 1607.4D, not a legal safe harbor. Courts and the EEOC also consider statistical significance, practical significance, and sample size.
  • This library implements the Audit and Security pillars only. A defensible compliance posture also requires validation evidence that the tool measures job-relevant characteristics — the Validation pillar, which is out of scope here.
  • Nothing in this repository is legal advice.

License

Code in this repository is released under the MIT License. The broader AVS Framework methodology (job analysis protocols, validation study design, governance maturity scoring, engagement deliverables) is proprietary to Nauta Research Labs.

  1. Fuller, J. B., Raman, M., et al. (2021). Hidden Workers: Untapped Talent. Harvard Business School Project on Managing the Future of Work and Accenture. Survey of 8,000 workers and 2,250 executives across the U.S., U.K., and Germany. https://www.hbs.edu/managing-the-future-of-work/research/Pages/hidden-workers-untapped-talent.aspx ↩

  2. Wright, L., et al. (2024). Null Compliance: NYC Local Law 144 and the Challenges of Algorithm Accountability. Proceedings of the 2024 ACM Conference on Fairness, Accountability, and Transparency (FAccT '24). https://doi.org/10.1145/3630106.3658998 ↩

Metadata

Release files for avs-framework 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for avs-framework 0.1.1
File Size Uploaded
avs_framework-0.1.1.tar.gz 21.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for avs-framework 0.1.1
File Interpreter ABI Platform
avs_framework-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 34.3 kB

Release files / avs_framework-0.1.1.tar.gz

Download URL avs_framework-0.1.1.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0c0fc763dccc1502a531725c4521f74e21aa74bbbef11235e13855a4ae0ba0e7
BLAKE2b-256 checksum
How to use checksums
02cb96badb52838fc50fdb1f5e9de88733b42db6342ed812c56a59185b3e680c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / avs_framework-0.1.1-py3-none-any.whl

Download URL avs_framework-0.1.1-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0add6a374d93e4e74ee23fdb913f00d42efc30a23d033bc984bd46e603e65b45
BLAKE2b-256 checksum
How to use checksums
0faa34b85aecfd867f31486941efd6e906201003cab2bebb9d3ee53804ae870b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page