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 inscripts/(see GitHub). - For contract value gaps, run the
contract_value_impute.ipynbnotebook 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.
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#dataanchor 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.