A core night-shift nurse on a med-surg floor works her three twelves a week, every week. She covers her commitment to the unit. She has done this for six years.
On the same unit, a per-diem nurse picks up exactly one shift a month: whichever shift is posting the highest incentive. The unit has chronic Friday-night gaps, so a posted bonus tends to be sitting there waiting. He takes it, collects the bonus, and disappears until the next month.
Under a flat-bonus structure, both nurses get the same dollar amount for that Friday shift. The core nurse who anchored the schedule for the other fifty-one weeks of the year gets the same per-shift premium as the per-diem who showed up once for the highest-paying slot. Worse: a core nurse who is short of her FTE for the period can pick up a bonus shift and collect the premium, even though what the unit needed from her was the regular shift she didn’t work, not the bonus shift on top.
That’s the failure mode at the heart of how American hospitals have paid shift bonuses for the last twenty years. The dollars are real. The signal they send to the workforce is wrong.
Not every bonus is equal
The dollar amount on a bonus shift is identical regardless of who picks it up. The meaning of that dollar to the workforce is not.
To a clinician who has already hit her committed FTE, the bonus is what it’s supposed to be: a premium for extra hours on top of her commitment. It rewards going above and beyond. To a clinician who hasn’t hit her commitment yet, the same bonus is something else. It pays her premium rates for hours she was already expected to be working. She substitutes a base-rate core shift for a bonus-rate shift, collects the difference, and the unit ends up paying more for the same coverage it was always going to get.
When we audited incentive spending at our customers, we kept finding the same pattern. A meaningful slice of every premium dollar paid was an arbitrage on the structure itself. Workers traded core hours for bonus hours. The unit didn’t get more coverage; it just paid more for the coverage it was already on track to receive.
The flat-bonus structure fails the other direction too. The committed core worker who reliably hits her FTE gets no differentiation. Her reward for being the anchor of the schedule is the same flat dollar amount available to anyone who walks in off the board. Nothing in the payroll structure recognizes the difference between “always there” and “sometimes there for the right price”.
The bonus is gated on the shift, not on the worker’s commitment. Every dollar treats every clinician as a stranger.
FTE attainment as the gate
The architectural shift is straightforward to describe and not at all straightforward to implement. Premium pay only unlocks once a worker has hit her committed FTE for the pay period. Before that, additional shifts pay at base rate. After it, additional shifts pay at the configured premium. Same shift, same posted bonus, different outcome depending on where the worker stands against her commitment when she picks it up.
In the example above, the per-diem nurse has no FTE commitment to a hospital-employed role, so his pickup goes through whatever rules govern his agreement. The core nurse who is below her commitment picks up the Friday shift at base rate, because the system counts that shift toward her commitment first. Once her cumulative scheduled hours cross her committed FTE, the next shift she picks up unlocks premium pay.
The committed worker who reliably hits her FTE on her core schedule sees the difference most clearly. Her regular shifts cover her commitment. Anything she picks up beyond that point is, by definition, above-and-beyond, and pays the premium it’s supposed to pay. The bonus is a reward for going past the floor, not a way to make the floor cheaper to reach.
There’s a tradeoff worth naming. FTE attainment gating is harder for workers to mentally model than a flat bonus. A clinician glancing at the shift board no longer sees a single posted rate; she sees a rate that depends on where she is in her pay period. We chose to absorb that complexity in the UI---showing each worker her FTE progress and the rate she would actually be paid for each posted shift---rather than push it onto her to compute. The signal it produces is worth the friction.
The snapshot model
The mechanism underneath the gate is an FTE Attainment Snapshot. For every worker in a workforce group with attainment-based incentives enabled, the system maintains a running snapshot for the current pay period: committed FTE, scheduled hours, worked hours, and a derived attainment percentage.
Whenever a relevant event fires---a shift is picked up, dropped, traded, or worked---the snapshot updates. When the system needs to decide whether a given incentive applies to a given pickup, it consults the snapshot and asks: has this worker crossed her committed FTE line for this period yet, including this shift?
If she hasn’t, the shift counts toward her commitment and is paid at base. If she has, premium pay unlocks.
The snapshot is configurable at the Workforce Group level. Different units, facilities, and worker classes have different commitment structures, and the attainment configuration tab in the workforce group drawer is where each is set: the committed FTE definition, the pay period boundary, the shift types that count toward attainment, the incentive pay codes gated by attainment.
A snapshot comparison KPI overlay sits on top of the snapshot data and lets administrators see, at a glance, how attainment is distributed across a workforce group. Two unit managers running otherwise similar floors can see whether their workers are clustering above commitment, below it, or right on the line, and whether incentive spend correlates with attainment. That’s the analytics surface we use to tune the gate itself: deciding whether the committed FTE definition for a workforce group is set at the right level.
Bulk overrides for gap shifts
Attainment gating is the right default. It isn’t the right answer for every shift.
A holiday weekend with a known coverage cliff, an unexpected unit reopen, a chemo bay that has to run regardless of fill state: the operator needs to override the gate and post premium pay to anyone willing to pick up, attainment or no attainment. The point of the system isn’t to enforce a rule for its own sake. It’s to make the default mechanism reward the right behavior, with explicit knobs for the exceptions.
The Bulk Shift Rate Overrides wizard is the operator’s knob. Admins filter the open-shift set by unit, role, date range, and shift attributes; preview the matched shifts; set a rate override; and apply the change across the set in a single action. The override carries through to the incentive engine, which treats the shift as having a different rate and a different attainment posture for the duration of the override window.
The wizard is deliberately deliberate. Bulk price changes on premium pay can leak meaningful money in a weekend if done casually. The flow forces a preview step, requires the admin to name a reason for the override, and writes the change to an audit trail keyed to the admin and the time of the action. A few seconds of friction beats a one-click button nobody can reconstruct.
The plumbing: UKG sync, money pay codes, async jobs
None of the above matters if the right dollar amounts don’t make it onto payroll.
Many of our larger customers run UKG as their time-and-attendance and payroll system. When a worker picks up a shift and the incentive engine decides on a rate (base or premium, depending on attainment), the result has to land in UKG as a specific pay code with a specific dollar amount attached, before the next payroll cutoff. If it doesn’t, the worker is paid the wrong amount, and the audit trail and the paycheck disagree.
The integration is shaped by three constraints.
Money pay codes. Earlier versions of our UKG sync supported hours-based pay codes (regular hours, overtime hours, a handful of differentials). FTE-attainment incentives required a money pay code: a flat dollar amount on a shift, independent of the hours worked. Adding money pay code support to the sync was the precondition for any of this to work end-to-end. The worker’s timecard now carries both her hours and the discrete dollar amount of the incentive, as a separate line item that UKG knows how to process.
Async, dedicated jobs. UKG’s API is rate-limited and occasionally slow. A worker picking up a shift cannot wait on a synchronous round-trip to UKG before the system confirms the pickup. The sync runs in dedicated async jobs that pick up pending changes, batch them sensibly, retry on transient failures, and surface persistent failures to the operations team rather than swallow them. The system stays responsive to the worker. UKG stays consistent with the system, eventually.
Auditability across the boundary. Every dollar of incentive pay has to be traceable from the worker’s pickup, through the attainment snapshot that gated it, to the rate the incentive engine returned, to the money pay code on the UKG timecard, to the paycheck. Payroll is a domain where “trust me, the math works out” isn’t an answer. The sync writes structured records at each handoff so any premium dollar can be reconstructed.
--- Engineering