Audit page

Automated research audit

Audit purpose

This automated audit scans the site and datasets for common quality issues so readers and contributors can trust the research. It runs weekly and whenever the repository is updated. You can also run the audit live in your browser using the button below.

Last run

  • Last run: 2026-05-22 12:45 MDT
  • Summary: Historical snapshot shown below; use the latest generated audit report for current totals.

How the audit works

The audit performs a set of reproducible checks against the site and the data files referenced in the repo. It inspects page links, asset availability, dataset schemas, and common data quality signals (missing values, duplicates, outliers). The live runner reads page DOM and fetches referenced files locally in your browser; it does not transmit private data to external services.

Checks performed

Check What it tests Status Severity Notes
Broken internal links Pages and assets return 200 Pass Info No broken internal links detected in the latest audit report.
Dataset schema validation Required columns present and types Pass Info All required columns found in ufas_2018-2023.csv
Missing contract values Percent of signings with null contract value Warn High 3.2% missing in 2021; see remediation. Remediation
Duplicate transactions Exact duplicate rows in signings table Pass Info No duplicates found
MIS calculation check MIS formula applied and totals match Pass Info MIS sums match expected totals
Unrendered placeholders Loading spinners or JS errors Pass Info No placeholders detected
External link health Spotrac, NHL API endpoints reachable Warn Medium Spotrac rate-limited during check. Remediation
Accessibility quick check Images have alt text Pass Low Minor missing alt text on team logos

Interpreting results

  • Critical: Blocks site functionality or reproducibility. Fix immediately.
  • High: Likely to affect analysis or data integrity. Prioritize.
  • Medium/Low: Usability or polish issues.

Remediation and workflow

  • For each failing check, click the remediation link to open a pre-filled GitHub issue with the failing check, timestamp, and suggested fix.
  • If the audit flags a missing data file, check the data/ folder in the repo and re-run the data extraction script in scripts/ (see GitHub).
  • For contract value gaps, run the contract_value_impute.ipynb notebook in the repo to inspect and impute missing values.

Run the audit live

Click Run audit to execute the checks in your browser. The runner will display a pass/fail table and a downloadable JSON of results.

Live audit has not been run in this browser session.

One-line bookmarklet to run locally:

javascript:(function(){fetch('https://rmallorybpc.github.io/nhl-free-agency-research/audit-runner.js').then(r=>r.text()).then(eval)})();

Live results

Loading latest audit report...

Category Status Checks run Issues found Details
Waiting for automated report...

CI integration

  • Recommended: add this audit to GitHub Actions so it runs on every push and opens a PR for critical failures.
  • Example workflow: .github/workflows/audit.yml.

Developer notes

  • Audit output format (JSON): { "timestamp": "...", "checks": [{"id":"broken_links","status":"fail","details":"..."}] }
  • Add schema files under schema/ (CSV column names and types) to make validation deterministic.
  • Add a methods.html#data anchor linking to the exact data extraction scripts and raw CSVs.

Contact

If you see an unexpected failure, open an issue: https://github.com/rmallorybpc/nhl-free-agency-research/issues/new. Include the audit timestamp and failing check name.

Live runner privacy

The live audit runs entirely in your browser and only fetches public files referenced by the site. It does not send your browsing history or local files to external servers.

Appendix

  • Example JSON output (downloadable): audit-results/latest.json
  • CI badge: add when GitHub Actions workflow is configured.