Actuarial studies · 2026
Radiology Workforce Model
National imaging volume, allocated to clinics, resolved to FTE.
Nobody publishes how many radiologists work at a given clinic. The model reconstructs it: discover and geocode the network, classify each site by rurality and archetype, allocate national imaging volume down to clinic and modality, convert that to reading minutes, strip the time that is not radiologist-owned, and divide by productive hours. Then — the part that matters — check the answer three ways and let it fail.
- Status
- Production
- Domain
- Workforce modelling · Health economics
- Role
- Model design, pipeline, QA framework
- Year
- 2026
Stack
- Python
- pandas
- Playwright
- pydantic
- rapidfuzz
- YAML scenarios
- openpyxl
A top-down workforce model that turns national imaging volume into per-clinic radiologist FTE estimates, calibrated against published workforce data and falsifiable against three independent reconciliation gates.
Top-down, because bottom-up data does not exist
Per-clinic staffing is not published anywhere.
What is published is national imaging volume by modality and quarter, and a national workforce total. The model works down from those: allocate volume to buckets of state and rurality, distribute within a bucket by an operator share that tilts with site count, weight each clinic by its service mix and opening capacity, then convert to time. Every step is a place the estimate can be wrong, which is why every step is written out rather than fitted.
Joint scenarios, not a single sensitivity
Moving one parameter at a time understates uncertainty, because the parameters are not independent — an operator share at the low end tends to travel with a longer productive year and a higher reporting share.
The low, base and high cases therefore move several coupled parameters together, so the resulting fan brackets a defensible range rather than a cosmetic one. The spread between the low and high totals is deliberately wide; a narrow fan from a model with this many assumptions would be a claim the evidence cannot support.
Three gates that can fail the run
A workforce model that cannot be falsified is an opinion with arithmetic attached.
Each run is checked against a national total, a per-clinic ceiling, and a state-level distribution — each independent of the others and each able to fail. The per-clinic ceiling is evidence-gated rather than absolute: a site may exceed the soft cap where there is corroboration such as multiple suites, hospital affiliation, or a credentialed headcount, and a breach without evidence is an error rather than a warning.
When the check fails, sometimes the check is right
The state-distribution gate is the one that earns its place.
A persistent divergence between the modelled state share and the published workforce share can mean the operator-share tilt is mis-specified — or it can mean the operator genuinely is over-represented in that state relative to the national workforce. The model reports the second case as a finding rather than tuning it away, which is the difference between calibration and fitting the answer you wanted.
The audit sheet is the contract
Every run writes an assumptions register — one row per parameter with its value, its scenario, its source and its tunable range — alongside a reproducibility manifest capturing the code version, the hashes of every input and the resolved parameter set.
The workbook leads with the reconciliation sheets rather than the results, because a number whose provenance cannot be reconstructed is not evidence, and a reader should meet the checks before they meet the answer.
Entity resolution underneath all of it
The same clinic appears under several names across sources — abbreviations, suite numbers, former trading names.
Fuzzy matching resolves them to single entities, which is where most of the correctness work lives. Naive deduplication either merges two genuinely different sites or leaves one site counted three times, and both failures propagate silently into every downstream count.
A cache that is treated as an asset
Geocoding is metered, so results persist to a cache that is explicitly documented as not-to-be-deleted.
Local cloud-storage emulation lets the whole pipeline run end to end offline against the same interfaces it will use in production.
Progressive scoping as a testing strategy
Scope narrows from national to state to metropolitan, and the narrow set is run first.
It is a cheap way to get the correctness signal early: a matching threshold that misbehaves on two hundred metropolitan sites will misbehave on thousands nationally, and finding that out on the small set costs minutes instead of a full run and a metered bill.
A package, not a folder of scripts
Typed models at the I/O boundaries, structured logs that can be queried rather than read, a declared retry policy, configuration held apart from code, and a test suite.
None of it is glamorous and all of it is what separates a pipeline that can be handed to somebody else from one that only runs on the machine it was written on.
Pipeline
Discovery to index
Stage Can reject
-
01
Scope
Target set
National → state → metro
-
02
Async fetch
Raw records
Retry policy
-
03
Parse
Typed models
-
04
Fuzzy resolve
Unique entities
-
05
Geocode cache
Coordinates
Metered calls never repeated
-
06
Output
Indexed clinics
The mathematics
What the model
actually computes.
Equations and every symbol defined. Fitted parameters — shares, tapers, elasticities, reconciliation bands — stay in the configuration they belong to.
Volume to reporting FTE
Public imaging volume is allocated to clinics, converted to reading minutes, stripped of the time that is not radiologist-owned, and divided by productive hours.
- d
- Modality — CT, MRI, ultrasound, X-ray, nuclear medicine
- sd
- Allocated services in the modality
- SATd
- Standard attendance time per service
- a
- Annualisation multiplier
- rd
- Radiologist-owned share of reading time
- ud
- Ancillary uplift — multidisciplinary meetings, protocolling
- h
- Productive hours per full-time equivalent
- τ
- Clinic archetype taper
The archetype taper is applied at clinic level, after the per-modality adjustment, because cross-modality protocolling and shared reads are properties of the site rather than of any one modality. Applying it per modality would double-count the saving at multi-modality hubs.
Count-tilt operator share
An operator’s share of volume in a bucket is not its share of clinics — supply-constrained modalities concentrate. A tilt exponent lets each modality respond differently to that concentration.
- σb
- Baseline operator share in bucket b
- nb / Nb
- Operator clinics over all clinics in the bucket
- ηd
- Tilt exponent for modality d
Buckets are state × rurality. Setting η to zero recovers a flat share; raising it concentrates volume toward operators with more sites, which is the observed behaviour for modalities where equipment is scarce.
Three reconciliation gates
A workforce model that cannot be falsified is an opinion. Every run is checked against three independent references, and each can fail the run.
- National total Modelled Australia-wide FTE against published workforce data scaled by operator share, within a stated band.
- Per-clinic ceiling Soft and hard caps on single-site FTE, with breaches admitted only where corroborating evidence exists — multi-suite, hospital affiliation, or a credentialed headcount.
- State distribution Modelled share by state against the published workforce distribution. A persistent divergence is reported as a genuine footprint asymmetry rather than silently tuned away.
The third gate is the interesting one. When it fails, the honest answer is sometimes that the operator really is over-represented in a state relative to the national workforce — so the check distinguishes a mis-specified tilt from a real finding, instead of treating every divergence as an error to be fitted out.
Skills exercised
What the build
actually demanded.
Against the corpus · 15 systems
This system Corpus median
Quantitative
- Top-down volume allocation to site and modality
- Count-tilt operator share with per-modality exponents
- Joint scenario construction across coupled parameters
- Reconciliation against published workforce statistics
Health economics
- Rurality classification and catchment bucketing
- Clinic archetype taxonomy and capacity tapering
- Standard attendance time and ancillary uplift by modality
- Reporting-share separation of radiologist-owned work
Engineering
- Discovery, geocoding and fuzzy entity resolution
- Typed scenario loading from declarative configuration
- Reproducibility manifests with input hashing
- Audit workbooks where the QA sheet is the contract
What it establishes
-
Three falsifiable gates
National total · per-clinic ceiling · state distribution
-
Joint scenarios
Coupled parameters move together, so the fan is defensible
-
Evidence-gated caps
A breach without corroboration is an error, not a warning
-
Divergence as finding
A real footprint asymmetry is reported, not tuned away
-
Reproducibility manifest
Code version and input hashes beside every run