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, and every number can be traced back to the raw rows.

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 by system, and transfers recorded as if people had quit. To convince a CFO or a board, the answers also have to be comparable to peers, linked to other datasets, and traceable 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. 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 for who stays and who leaves, seasonal decomposition to separate recurring patterns from real trends. Results are compared with anonymized peer benchmarks for context.

Econometrics · data science

04Project, then intervene

Forecasting methods are chosen by data depth, and every projection carries its confidence band. Market conditions are decomposed from employer-specific effects, and each candidate intervention has a literature-derived range.

Econometrics · economics · product
Console, end to end 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 that the code produces, for an illustrative four-site Arizona employer. Selecting a facility refocuses the role table at the bottom to that site. 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. Every projection has to satisfy this identity, so every 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. The digital twin can reconstruct this 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. The run above uses synthetic data so it can be shared. Outputs are meant to be checked against published benchmarks. For example, 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