# Quality-of-hire input review: local cohort kit

This kit reviews the coverage of employer-owned post-hire observations. It does not calculate a quality-of-hire score, rank employees, predict success, or recommend employment decisions. All six episodes are synthetic. Use one role family, one checkpoint and one pre-agreed goal definition per input file. Edit definition.json to document your choices; the script does not infer comparability or read that metadata file.

## Reproduce the example

Requires Python 3, standard library only. Extract the ZIP, open its folder, then run:

    python3 review_cohort.py start-cohort.csv --as-of 2026-11-04 --checkpoint-days 90
    PYTHONDONTWRITEBYTECODE=1 python3 -m unittest test_review_cohort.py -v

The calculator reads the CSV and prints JSON locally, without network access or file writes. Compare its output with expected-nov4.json and the manual counts below. Keep tests and calculator in the same folder. The 90-day checkpoint is an illustration, not a recommended performance-review period. Choose a checkpoint appropriate to actual work and ramp-up. A longer window may be required.

## Fields and assumptions

Use one opaque episode_id per continuous employment spell. Rehires are separate spells. No applicant names, emails or compensation are required. Start is day zero. Checkpoint=start_on+checkpoint_days calendar days in your chosen reporting timezone. as_of includes that calendar day. Enter only actual started employment episodes. Offered or accepted positions without a start belong elsewhere.

known_employed_through confirms uninterrupted employment from start through that date, inclusive. It is not merely the date someone last exported a file. If employment ended, use exit_on instead: the first date the person was no longer employed. Leave known_employed_through blank for known exits. Exit after the checkpoint confirms retention through that checkpoint; exit on the checkpoint does not. Retention is a duration observation, not evidence of performance.

A mature spell has reached the checkpoint at as_of. Younger spells remain pending. Mature spells with neither a known exit nor confirmation reaching the checkpoint remain retention_unknown. Early exits stay in the mature cohort. This small kit omits full-window work and manager records for early exits or unknown employment histories rather than imputing a negative review. Keep early-exit investigation in a separate employer record.

Optional goal_result is met or not_met, supplied by an authorized human against the documented work goal. goal_window_end must equal the checkpoint and goal_reviewed_on must fall on or after it. All three fields must be present together. Manager record coverage uses manager_window_end and manager_reviewed_on, both present together. It records whether a human review exists, not its rating. The script cannot verify evidence, goal appropriateness, or a manager's judgement.

All dates in this snapshot must fall between start and as_of. Future evidence is rejected, not silently inserted into a past report. To reconstruct an earlier cutoff, supply a separately retained snapshot containing only what was known then. This is not an event-history system. Duplicate IDs, missing columns, invalid dates, inconsistent observation windows and partial records reject the input. Different IDs for the same employment spell require private manual deduplication before use.

## Independent hand counts: November 4, 2026

A: July 1 start, September 29 checkpoint, retained, goal met, manager record present.
B: July 2 start, September 30 checkpoint, October 15 exit: retained through checkpoint; goal not met, manager record missing.
C: July 3 start, October 1 checkpoint, September 1 exit: early exit, no full-window records.
D: July 4 start, October 2 checkpoint, last continuous employment confirmation September 30: retention unknown, no full-window records.
E and F: October starts; checkpoints December 30 and January 3: pending.

Six episodes = four mature + two pending. Four mature = two retained + one early exit + one unknown. Known retention coverage is 3/4=75%. Retained among known is 2/3=66.67%. Across all four mature spells the retained share is bounded by 2/4=50% and 3/4=75%, depending on D. These are missing-record bounds, not confidence intervals or quality scores.

Among two confirmed full-window spells, goal observations exist for 2/2=100%, with one met and one not_met. Manager observations exist for 1/2=50%. Both records exist for 1/2=50%. The denominator is explicitly two; these percentages do not describe all four mature spells. No blended score is produced. Zero denominators return null, never zero.

## Use after verification

Create a separate real-data CSV using the same header; retain the synthetic example unchanged. Review definition.json with the employer's work and HR record owners first. Keep source evidence privately in the employer system. Store the input version, command, local dates and output together. Use review-log.csv to record a specific observation gap, competing explanation, proposed change and next check. Do not infer a sourcing-channel, recruiter or product effect from this small example. Comparisons require comparable role, goal, checkpoint and coverage definitions.
