How many radiologists does a service actually need?

Service Sizing turns examination volumes and clinical activity into a defensible workforce requirement — and shows the gap against who's on the roster today.

Health NZ · radiology workforce planning Unit of planning: the grain Region → District → Grain

A demand-driven workforce model for radiology

HNZ Radiology Service Sizing answers the question: given the work that comes through the door, how many Senior Medical Officer FTE does it take to do it — and how does that compare to current staffing?

Demand in

Examination volumes by modality and complexity, plus the fixed clinical work that isn't reporting — meetings, procedures, training, supervision.

Engine

A transparent calculation converts that work into clinical hours, then into a required FTE figure using each service's own leave and non-clinical assumptions.

Gap out

Required FTE minus effective FTE on the roster gives a gap — flagged as understaffed, adequate or overstaffed, and rolled up from grain to district, region and nation.

Service Sizing · Capacity
The Capacity tab for the Capital & Coast grain, showing
          headline FTE numbers, the reporting and CNR hours split, and a bar chart of reporting
          hours by modality.
A grain's Capacity tab — the demand-to-gap story on one screen. Click any screenshot in this page to enlarge it.
Why "service sizing"? The tool doesn't roster individuals or manage leave. It sizes the service — the steady-state SMO establishment a radiology operation needs to meet its demand — so that business cases, recruitment and capacity decisions rest on a consistent national method rather than local guesswork.

The vocabulary of the model

A handful of ideas carry the whole tool. Get these and every screen makes sense.

The hierarchy

Everything hangs off a national tree. Regions and districts come from the companion site-profiles registry; the grain is Service Sizing's own unit.

Regione.g. Northern, Central, Te Waipounamu
Districtlocal health district
Grainthe unit of workforce planning
One or more facilitiesphysical sites it covers

The grain

A grain is a planning unit — a coherent slice of radiology service that maps to one or more physical facilities. It's where all the inputs live: activity profiles, FTE parameters, demand volumes and staffing. Calculations happen at grain level, then aggregate upward. Satellite facilities merge into their parent grain.

Archetypes

Each grain is sized into an archetype from XL to XS. Archetypes drive sensible default templates so a small rural service isn't configured from a blank page.

XLLargest
LLarge
MMedium
SSmall
XSSmallest

Modalities

Demand is counted per imaging modality. Each modality–complexity pairing carries a time constant — minutes per report — that converts volume into reporting workload.

CT
MR
US
XR
NM
MG
FL

CT, MR, Ultrasound, X-Ray, Nuclear Medicine, Mammography and Fluoroscopy.

Reporting vs. CNR

SMO time splits into two streams. Reporting scales with examination volume. Everything else is Clinical Non-Reporting — CNR — grouped into four categories.

R Reporting — diagnostic reporting Volume-driven
1 CNR 1 · Conferences — meetings & MDMs Fixed hours
2 CNR 2 · Procedural / Interventional Fixed hours
3 CNR 3 · Training — teaching & supervision Fixed hours
4 CNR 4 · Other Activities — admin & governance Fixed hours

Reporting hours come from volume × time constant. CNR 1–4 are summed as a fixed hours budget. Non-clinical time is handled separately as a percentage allowance — its activities are tracked for audit but don't add to the calculated hours.

From examinations to an FTE gap

This is the heart of the tool. The whole method is deliberately legible — every number can be traced back to an input. Here's the chain.

1

Reporting workload

For every modality and complexity, multiply annual volume by its time constant (minutes per report), then convert to hours.

reporting_hours = Σ (volume × minutes_per_report) ÷ 60
2

Fixed non-reporting workload (CNR)

Sum the hours from CNR categories 1–4 — conferences, procedures, training, other — and add the preparation and attendance hours for every MDM / recurring meeting.

fixed_cnr_hours = Σ CNR activity hours (CNR 1–4) + MDM meeting hours
3

Clinical hours available per FTE

Start from standard annual hours, subtract leave (annual, public holidays, training, sick, other) to get productive hours, then remove the non-clinical percentage.

productive = standard_hours − all_leave clinical_hours_per_FTE = productive × (1 − non_clinical_%)
4

Required FTE and the gap

Total the clinical hours needed, divide by the hours one FTE delivers, and compare to effective FTE — diagnostic SMO FTE, less on-call, plus the interventional allocation that contributes to reporting.

required_FTE = (reporting_hours + fixed_cnr_hours) ÷ clinical_hours_per_FTE fte_gap = required_FTE − effective_FTE

Try it yourself

Move the sliders. This calculator runs the exact chain above, with the same default assumptions the app ships with (2,086 standard hours; 240 / 96 / 80 / 60 hours of leave). It's a teaching model — the real app pulls every figure from a grain's saved configuration.

Inputs

Result

Productive hours / FTE1,610
Clinical hours / FTE1,208
Total clinical hours needed51,000
42.2
Required FTE
Required − effective FTE+14.2
On-call & interventional. Effective FTE isn't just a headcount. On-call FTE is deducted from diagnostic capacity, and only the configured slice of interventional radiologist FTE that actually does reporting is added back in.
Repatriation view. Where a grain records outsourced reporting volumes, the engine also computes a second scenario — what the requirement would be if that work were brought back in-house.

Every screen, and what it's for

The app has two top-level views, a per-grain workspace split into Analysis and Configuration tabs, and a set of admin tools. Here's the whole surface.

National views
Landing page

National Overview

Everyone

The home screen. A national roll-up of capacity status across every grain — total grains, aggregate required vs. effective FTE, and how many services sit understaffed, adequate or overstaffed.

  • At-a-glance national workforce position
  • Status distribution to spot pressure points fast
  • Jumping-off point into any region, district or grain
Side-by-side

Compare Grains

Everyone

Put several grains next to each other and compare the numbers that matter — required FTE, current FTE, the gap, reporting hours, CNR hours and assumptions — in aligned columns.

  • Benchmark similar archetypes against each other
  • Sense-check why two services land differently
  • Build the evidence line for a business case
Grain workspace · Analysis

Open any grain and you land in the Analysis group — the calculated outputs. These are read-only results, not inputs.

Analysis

Capacity

Everyone

The grain's headline result, and the screen you'll check most. The large numbers at the top are Required Diagnostic FTE against Current Diagnostic FTE, with the gap between them. The five cards below open the requirement up: Reporting Required, CNR Required and Total Clinical Required (all in hours), plus Required Diagnostic FTE and Reporting Capacity %.

Reading the gap. A shortfall means required FTE is higher than current — the service needs to recruit. Headroom means the reverse. Small gaps are reported as adequate so rounding never triggers a false alarm.
  • Use the In-house only / All activity toggle to switch between work read in-house and the repatriation view — in-house plus outsourced volumes combined.
  • Reporting Capacity % is the share of clinical time left for reporting once CNR is removed; a low figure means meetings and procedures are consuming the service.
  • If a number looks wrong, open Calculation detail or revisit the grain's volumes and FTE config — every figure traces back to an input.
Capacity · Reporting detail
The Reporting Hours by Modality table showing each
            modality's simple and complex volumes, minutes per report, and total reporting hours.
Every modality's volumes and minutes-per-report, totalled into reporting hours — with a Calculation detail expander for the full working.
Analysis

Model Scenarios

Everyone

A what-if drawer launched from the Capacity tab. It shows the baseline result, then lets you pull four levers and watch a live scenario result update beside it — without touching the grain's saved configuration.

  • On-call FTE — how much is subtracted from diagnostic capacity
  • Interventional reporting FTE — how much IR time is added back
  • Time constants — a uniform % shift to all minutes-per-report
  • Add / remove FTE — model a new hire or a vacancy
Capacity · Model Scenarios
The Model Scenarios drawer with baseline result,
            adjustable assumptions for on-call FTE, interventional reporting, time constants and
            headcount, and a live scenario result.
Baseline vs. scenario, side by side — a safe sandbox for testing assumptions.
Analysis

Workforce

Everyone

The people side of the picture. The current SMO roster and role breakdown — diagnostic versus interventional radiologist FTE, and total medical FTE including trainees.

  • The roster and role mix, with the diagnostic FTE that actually feeds the calculation clearly flagged.
  • The on-call and interventional adjustments spelled out in plain language, so you can see how current FTE becomes effective FTE.
  • A staffing-scenario table — clinical and reporting hours available at each FTE level.
  • These figures are read-only here. They're synced from site-profiles; to change a roster, update it there and re-sync from the admin Sync screen.
Grain · Workforce
The Workforce tab showing the SMO roster sourced from
            site-profiles, role breakdown, and a staffing scenarios table of hours available at
            each FTE level.
Roster, role breakdown and the staffing-scenario table side by side.
Analysis

Forecast

Everyone

Projects the requirement forward. Runs the engine across future years using demand forecast scenarios — base, low and high — so workforce need can be planned ahead of demand.

  • Base / low / high forecast bands
  • Year-by-year detail of required FTE
  • Turns this year's snapshot into a multi-year plan
Grain workspace · Configuration

The Configuration group holds every input the engine consumes. Editing here needs editor rights.

Config

Baseline Volumes

Editors

The reporting volumes that drive workload. Enter annual examination counts per modality, split by complexity (simple / complex) and patient type (inpatient / outpatient), and record how much is read in-house versus outsourced.

  • Enter simple and complex separately — each modality–complexity pair has its own minutes-per-report time constant, so the split changes the result.
  • Outsourced volumes power the repatriation view on the Capacity tab — the requirement if that work were brought back in-house.
  • Baseline volumes are used when a grain has no year-specific Demand Forecast; if a forecast exists for the year being viewed, it takes priority.
Config

Non-Reporting (CNR)

Editors

Where you record every clinical task that isn't reporting. Use Add Activity to pull a standard task from the shared library — already filtered by category — or enter a custom one. Each activity needs a CNR category, a unit of measure, the time per unit in minutes, and an annual volume.

The arithmetic. Annual hours = annual volume × time per unit ÷ 60. Those two numbers are the ones to get right — the five cards at the top show the running total per category as you go.
  • Choose the category carefully: CNR 1 Conferences, CNR 2 Procedural / Interventional, CNR 3 Training or CNR 4 Other Activities.
  • MDM preparation and attendance show here under CNR 1, but you set them up on the MDM / Meetings tab — don't re-enter them as activities.
  • Non-clinical tasks can be listed for completeness, but they're audit-only and don't add to the calculated hours. Non-clinical time is set as a percentage on FTE Config.
Config · Non-Reporting
The Non-Reporting configuration tab showing CNR category
              totals and a list of activities grouped by CNR category.
CNR category totals and the activity list.
Add Activity
The Add Activity dialog with a search box and category
              filters, listing activities available from the shared library.
Adding an activity from the shared library, filtered by category.
Config

MDM / Meetings

Editors

Recurring multidisciplinary meetings. Add each meeting with its frequency, duration, complexity and attendee count — the tool works out the annual hours for you and rolls them into CNR 1 Conferences.

Two costs per meeting. Preparation = duration × a complexity multiplier (simple ×1.5, complex ×2). Attendance = duration × attendee count. Both are annualised across 52 weeks and shown as Prep hrs/wk and Attend hrs/wk before the yearly total.
  • Set frequency to daily, weekly, fortnightly or monthly — it scales the weekly figure to a yearly one.
  • Attendee count multiplies attendance time, so a meeting with eight radiologists costs far more than a single-reviewer check — count only those who actually attend.
  • Total hrs/yr is the figure that flows into the Capacity result.
Config · MDM / Meetings
The MDM and Meetings tab listing each meeting with its
              duration, complexity, attendees, frequency and annualised hours.
Each meeting's cadence, multiplier and annualised prep + attend hours.
Add MDM
The Add MDM dialog with a search box listing standard
              meetings available from the library, and an option to enter a custom meeting.
Pick a standard meeting from the library, or enter a custom one.
Config

FTE Config

Editors

Defines what one FTE is worth at this grain. Start from standard annual hours, then enter each leave deduction — annual leave, public holidays, training, sick and other. What's left is productive hours, shown live as you type.

What the engine divides by. Clinical hours per FTE = productive hours × (1 − non-clinical %). That's the time one radiologist actually delivers to reporting and CNR — required FTE is total clinical hours divided by this number.
  • Set the non-clinical % to cover admin and support time that isn't itemised as activities elsewhere.
  • On-call FTE is subtracted from diagnostic capacity — enter the FTE tied up in on-call rather than available for reporting.
  • Interventional reporting allocation adds back the slice of IR radiologist time that does diagnostic reporting (capped at the grain's interventional FTE).
  • Every field is per-grain, so a small rural service and a tertiary centre can carry different, defensible assumptions.
Config

Demand Forecast

Editors

Forward-looking demand volumes by year and scenario. When present, these take priority over baseline volumes and power the Forecast tab. Set growth assumptions per modality across the planning horizon.

  • Year- and scenario-specific volumes
  • Drives multi-year required-FTE projections
  • Primary volume source when configured
Config

History

Everyone

A full audit trail for the grain. Every change — who made it, when, and to what — so the numbers behind a business case can be defended and traced.

  • Chronological change log
  • Attributed to user email
  • Transparency for governance and review
Admin tools

Library

The shared catalogue of activities and MDM meetings, with default values and archetype templates — so a new grain can be configured from sensible starting points rather than blank.

Time Constants

The national minutes-per-report figures for each modality and complexity. Change one here and every grain's reporting calculation moves with it.

CSV Upload

Bulk data import. Bring volumes and activity data in from spreadsheets with structured validation instead of typing into grids. Available to editors and admins.

Sync

Pulls the canonical facility, district, region and staffing data from site-profiles, keeping the hierarchy and roster figures current. Admin-only.

Two apps, one system

Service Sizing doesn't try to own everything. It pairs with site-profiles, the facility registry — a clean division of responsibility that keeps each side simple.

site-profiles

The source of truth for what exists:

  • Regions, districts, facilities
  • Archetypes and equipment
  • Staffing headcount snapshots
  • User login and identity

service-sizing

The source of truth for how much work:

  • Grains and CNR activity profiles
  • FTE configurations and non-clinical %
  • Demand and reporting volumes
  • The capacity calculation engine

Who can do what

Each signed-in user carries their role and region access with them, so permissions are checked instantly. Access can also be scoped to specific regions.

CapabilityViewerEditorAdmin
View overviews, capacity & forecasts
Compare grains & read history
Edit grain configuration & volumes
CSV bulk upload
Manage the shared Library
Edit national Time Constants
Sync from site-profiles
The takeaway. Service Sizing replaces a patchwork of local spreadsheets with one transparent national method. Every required-FTE figure is traceable to its inputs, comparable across services, and ready to carry a business case.