Systems and tools Illustrative · synthetic data

Employer digital twin

Employers want to know whether their turnover is bad, what is coming, and what to do about it. The twin takes their raw HR export from upload to forecast and scenarios.

Data science · engineering · applied econometrics · product. In production on employer panels, under tenant isolation.
01

The problem

The raw HR export is hard to use for any of this. It comes with hundreds of column variants, free-text titles, termination codes that differ from one system to the next, and transfers recorded as if people had quit. And to convince a CFO or a board, the answers also have to be comparable to peers, linked to other datasets and tied back to the raw rows.

02

How it works

01Ingest anything

Headcount, requisitions, hires, terminations, and contingent workers arrive in whatever shape the employer's system exports (which can differ for the same employer over time). Columns map by fuzzy match with confidence scores, and formats, types and outliers are cleaned and flagged.

Data engineering · product

02Standardize to a canonical panel

Titles resolve to federal occupation codes through the occupation resolver, termination reasons and requisition statuses map to controlled vocabularies, facilities geocode. Transfers are separated from real exits, with canonical reasons attributed. Contingent and full-time workers are kept separate.

Data science · economics

03Status quo analysis

Survival curves and cohort retention show who stays and who leaves, and a seasonal decomposition separates recurring patterns from real trends. For context, results are set against anonymized peer benchmarks.

Econometrics · data science

04Project, then intervene

The forecasting method depends on how deep the data goes, and every projection carries its confidence band. Market conditions are pulled apart from employer-specific effects, and each candidate intervention comes with a range taken from the literature.

Econometrics · economics · product
Console, upload to scenario click to run

One employer's own data, taken from upload through to scenario.

Upload Standardize Canonical extract Analysis Map Forecast & scenario
click to see it run on a synthetic employer
Upload → standardize → canonical extract → exploratory analysis with seasonality → map → forecast and scenario levers. Illustrative, synthetic run.
Illustrative outputs run the pipeline above

A few pieces of the dashboard the code produces, for an illustrative four-site Arizona employer. Select a facility and the role table at the bottom refocuses on that site, or toggle the local supply layer to bring in the training and staffing inventories.

Arizona · facilities
A facility's headcount, hires, terminations, open requisitions and vacancy rate appear here.
Vacancy, time to fill, and requisition age by role organization-wide
Role (SOC-6)VacancyTime to fillMedian req agePeer p50
Illustrative, synthetic. Peer p50 is the anonymized median vacancy across comparable employers in the benchmark panel. Training and staffing figures come from the two national inventories I created.
Accounting identity stocks and flows

Supply is modeled as stocks and flows, and as every projection has to satisfy this identity, each term in it has to be measured.

stockt+1 = stockt + entrants − exits
+ inflow − outflow
Raw HRIS termination rate19.0%
True exit rate, transfers removed4.29%
Employment hierarchy

Manager IDs in the raw export encode a reporting tree, which the digital twin can rebuild into levels with headcount and spans of control, so turnover can also be read by level and along internal career paths.

Five levels reconstructed from reporting relationships, executive at the top, frontline at the base. The edge widens with the fan-out below it.
Illustrative, synthetic.
03

Tools used

Python, pandas, numpyIngestion, cleaning, and the canonical panel build.
Supabase, Postgres, row-level securityTenant isolation across employer panels, so no run sees another.
statsmodelsARIMA and SARIMA turnover projection, chosen by data depth.
scikit-learnGradient boosting as a forecast cross-check.
Kaplan-Meier survivalTenure curves and cohort retention.
k-anonymity suppressionPeer benchmarks withheld below cell floors.
Dash, PlotlyThe console and the facility dashboard.
The occupation resolverTitle standardization to the federal crosswalk.
04

Final state

The pipeline runs in production on employer panels, with the same stages the console shows, on real headcount, requisition, hire and termination data behind row-level security, and the run above uses synthetic data so it can be shared. Outputs are meant to be checked against published benchmarks. For instance, the modeled time to close for high-volume clinical roles matches the national benchmark for comparable positions to the day.

← Back to systems and tools