The test room contained two computers, one large screen, and six people.
Priya, the regulator analyst, wrote the protocol before anyone logged into the simulator.
“No production records. No real worker names. Same synthetic profile except one input at a time.”
Ochieng agreed.
Synthetic Worker A and Synthetic Worker B had the same job, site, seniority, availability, and overtime preference.
Only the fatigue band differed.
The first run produced four premium shifts for the low-fatigue profile.
The red-band profile received two shifts and fewer total hours.
Ochieng said, “The scheduler includes balancing. That could be random variation.”
“Fix the seed,” Priya said.
The vendor engineer did.
They ran it again.
Same pattern.
“Swap the bands.”
They did.
The result followed the band, not the account.
Juma folded his arms.
Asha did not say *confirmed*.
Priya opened the decision trace.
`fatigue_band = red -> high_load_cap`
“It is a safety control,” Ochieng said.
“Does the worker see the reason?”
“Not in the current interface.”
“Is income protected?”
“The scheduler does not manage income guarantees.”
“Appeal?”
“A supervisor can override.”
Njeri said, “A supervisor override is not a worker appeal.”
Priya tested that too. The manager screen allowed an override but provided no structured field for the worker’s explanation before hours were reduced.
Then they traced the fatigue band upstream.
WellShift combined several inputs: incidents, self-check information, and a “community resilience” field derived from the weekly summary.
The community phrase alone did not always determine the result.
That distinction mattered.
“Can it move a person across the threshold?” Asha asked.
The engineer built another synthetic case. Without the community-derived fatigue input, the worker remained amber.
With the synthetic community summary added, the band turned red.
The scheduler reduced hours.
Juma exhaled.
“That is it.”
Priya corrected him.
“That is a reproducible mechanism. It is not proof that every historical worker followed this exact path.”
Juma nodded.
The finding was precise:
A voluntary community-derived signal could contribute to a fatigue band.
A red band could cap high-load allocation and reduce scheduled hours.
Workers were not clearly told that purpose and lacked a real appeal route.
Grace joined remotely and argued that fatigue management served workplace safety.
Asha did not disagree with the goal.
“Then the remedy should be transparent safety management. Paid or protected rest where appropriate. Human review. An appeal. Not an invisible economic consequence for saying you are tired.”
Priya issued a temporary configuration order: community inputs disabled for scheduling; fatigue band advisory only pending review; worker-visible reason required for manual reductions; configuration snapshot preserved for audit.
Ochieng warned that staffing assumptions relied on the rule.
Within an hour, worker messages began arriving.
Mall rosters incomplete.
Hospital laundry shortages.
Office tower overtime requests climbing.
Asha read the notice:
**MANUAL MODE — STAFFING SHORTFALL**
The synthetic test had shown that the score could change the schedule.
The temporary hold showed something else.
Priya also tested what happened after a supervisor overrode the recommendation. The log preserved the manager’s action, but the synthetic worker received no automatic explanation.
“So even when a human changes the decision, the worker cannot see why,” she said.
Ochieng acknowledged the interface gap.
The regulator required a temporary reason code while the full appeal function was built.
Grace objected that excessive notices could cause workers to “game fatigue reporting.”
Juma answered before Asha.
“If telling the truth about being tired changes my pay, I am already gaming it by staying silent.”
That sentence went into the hearing record later.
The test therefore exposed two connected problems: the band could change hours, and the system rewarded opacity because workers had no safe way to understand or challenge the consequence.
Turning the score off did not solve staffing.
It simply stopped hiding that staffing was the employer’s problem.
The company had built its operations so deeply around the score that removing it immediately exposed the labor shortage it had been hiding.