Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

compare drops each profile's data-quality flags (implausible ages, nothing detected by name)

Closed
#868 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript, python
Domain
cli, data

Research direction

Start with the repro: run python3 -m faircode profile and python3 -m faircode compare on the same small CSV to see the implausible-age warning appear in one and not the other. Then read faircode/compare.py to see how shared dimensions are built, and faircode/report.py in compare_to_terminal(), compare_to_html() and compare_to_csv(), plus assets/profiler-compare.js. Done means the per-side implausible_values appear on shared dimensions, a drift flag fires when they differ, and the cross-engine compare parity test passes.

Written by the indexing model from the issue text.

Description

enhancement help wanted

Where: faircode/compare.py, faircode/report.py compare_to_terminal() / compare_to_html() / compare_to_csv(), assets/profiler-compare.js.

Current gap: compare builds drift flags from the two profiles' numbers but drops each profile's own data-quality flags. Two datasets with implausible ages (#840) or with no column recognised by name (#847) compare cleanly, with nothing in the drift report saying one side's age dimension lost values to the --max-age rule, so a drift in the 75+ share can be an artefact nobody is told about.

Repro:

$ printf 'sex,age\nM,25\nF,200\nM,30\nF,40\n' > a.csv
$ python3 -m faircode profile a.csv | grep implausible
  ! age: 1 implausible age value(s) above 120 were treated as missing, not banded (a mistyped age or a birth year?)
$ python3 -m faircode compare a.csv a.csv | grep -c implausible
0

Suggested approach: carry implausible_values per side onto each shared dimension in the compare result (optional key, present only when above zero) and add a drift flag when it differs between A and B; mirror in the JS compare and cover it in the cross-engine compare parity test.

Dominant language
HTML
Stars
47
Forks
45
Avg merge
2h 49m
Merged PRs (30d)
61

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from yakew7/Fair-Code

All issues in yakew7/Fair-Code

Similar issues

More CLI issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.