Operations

Shift Coverage Analyst

Finds the gap, the rest breach and the unplanned overtime before the rota is published

Version 2Published Sep 2, 2026
OperationsExtractclaude-sonnet-5Read-only · auto8 hard rules5 handover rulesResult
8hard rules
Things it must never do, enforced in every run
5handover rules
Conditions where it stops and gives the work to a person
10output fields
A structured result, not a paragraph you have to re-read
≤6steps per run
Bounded work: at most 4 tool calls, enforced by the runtime

Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.

Live wiring for version 2. Tool nodes are the capabilities this agent is registered to call — nothing else can run.

Overview

Whoever builds the rota is solving four constraints at once in a spreadsheet: enough people per shift, everyone qualified for what they are doing, legal rest between shifts, and a wage bill that fits. They pull against each other, so the builder optimises the one they will be shouted at for — usually coverage — and the rest fail quietly.

The quiet failures are specific. Rest breached by a late finish followed by an early start, invisible because each shift alone is fine. A shift with nobody holding a certification it legally requires. Overtime nobody planned, which appears in the payroll run three weeks later. Consecutive-day limits crossed at the boundary between two published rotas, because each was checked alone.

And the same three people carrying every awkward shift — a retention problem the rota creates and nobody measures.

This agent checks a draft against all of it and reports what is wrong before anyone is told their hours. It assigns nobody: a published rota is a commitment to people's lives, and the constraints that decide who can work when are not all in the data.

Benefits

Problems found before publication

When a rota can still change without breaking promises.

Overtime that stops being a surprise

Priced in the draft rather than in the payroll run.

The load shared visibly

Which is a retention finding as much as a fairness one.

What it does

  • Checks across rota boundaries

    Rest and consecutive-day limits break at the join between two published rotas, because each was checked alone.

  • Verifies qualifications per shift

    A shift with nobody holding the certification it legally requires. Legal before it is operational.

  • Prices unplanned overtime before it happens

    Rather than discovering it in the payroll run three weeks later.

  • Finds who carries every awkward shift

    The same three people. A retention problem the rota creates, and nobody measures it.

  • Reports the trade-off honestly

    Where coverage, legality and budget genuinely cannot all be met, it says so instead of picking one.

  • Assigns nobody

    The constraints on who can work when are not all in the data. A rota is a commitment to people's lives.

What this changes

What this changes about your week

It takes over
Checking a draft rota for coverage, qualifications, rest and cost at once.
Done today by
Whoever builds the rota, in a spreadsheet, optimising one constraint.
How often
Every rota cycle.
Typical manual effort
Four constraints that pull against each other, checked across a boundary nobody checks.

Why Operations in particular. Rest and consecutive-day limits break at the join between two published rotas, because each rota was checked alone and each shift looks fine on its own.

  • Runs unattended

    Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.

  • The same standard every time

    The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.

  • It cannot act on its own

    Shift Coverage Analyst has no path to sending, spending or committing. That limit is why its output is safe to act on.

How it runs

This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.

  1. 1InputValidated against the agent input schema
  2. 2Modelclaude-sonnet-5 with automatic fallback
  3. 3Toolsextract_structured_data
  4. 4PermissionsRuns READ actions automatically; anything higher waits for approval
  5. 5OutputStructured result matching the output schema
  6. 6LoggingTokens, duration and every step recorded

Demo

Demo dataIllustrative sample output, abridged.

Input

{
  "staff": [],
  "period": "Week 37",
  "currency": "USD",
  "draftRota": []
}

Output

{
  "escalate": true,
  "overtime": {
    "cost": 4320,
    "hours": 96,
    "sharePercent": 11.2
  },
  "disclaimer": "A check of a draft against the rules you configured. Nobody has been assigned, swapped or scheduled, no rota has been published, this is not legal advice on working time, and no statement is made that the rota is compliant.",
  "coverageGaps": [
    "Saturday afternoon is 2 short against a target of 7. Target rather than hard requirement."
  ],
  "restBreaches": [
    {
      "between": "Sunday late finish 23:30 and Monday early start 06:00",
      "minimum": 11,
      "reference": "EMP-204",
      "restHours": 6.5,
      "acrossRotaBoundary": true
    }
  ],
  "escalationReason": "A shift has no qualified first aider, and a rest period of 6.5 hours against an 11-hour minimum occurs across the rota boundary.",
  "loadDistribution": [
    "Three people cover 61% of all night and weekend shifts. Reported as a rota pattern, with no assessment of anyone."
  ],
  "qualificationGaps": [
    {
      "shift": "Sunday night",
      "missing": "No qualified first aider on shift",
      "hardRequirement": true
    }
  ],
  "unresolvableConflicts": [
    "Sunday night cannot be covered to headcount without breaching EMP-204's rest. Both options are shown; the choice is yours."
  ],
  "consecutiveDayBreaches": [
    "EMP-118 works 9 consecutive days against a limit of 6. Days 1–3 sit in the previous rota, which is why neither check caught it alone."
  ]
}

Requirements

Integrations

No integrations required.

Before you start

  • The draft rota, and the previous one for boundary checks
  • Staff with qualifications and contracted hours
  • Your rest, consecutive-day and coverage rules
  • Pay rates including overtime, where you want cost
  • Requires the All-Access plan or higher

Use cases

Before publishing a rota

The standing check between draft and publication.

Covering absence

Whether a swap breaks something elsewhere.

Holiday periods

Where coverage and rest genuinely conflict.

Before an inspection

Evidence the rota was checked, every time.

Pricing

All-Access

Billed monthly through your PROMIVO subscription. Cancel at any time.

Runs consume your plan allowance for agent executions and tokens. See plan limits

FAQ

Does it build or publish rotas?

No. It checks a draft. Who can work when depends on childcare, study, health and agreements that are not in any rota system, and a tool that assigns people would get those wrong confidently.

Does it give legal advice on working time?

No. It checks against the rules you configure — your rest periods, your consecutive-day limits, your qualification requirements — and reports breaches of those. Which rules apply to you is a question for your own adviser.

What if coverage and rest cannot both be met?

It says so plainly and shows the trade-off rather than silently choosing. That conflict is real information for whoever has to decide.

Reviews

Reviews open once customers have run this agent.

Need this agent to work differently?

Tell us what to change and our team will scope a customised version for your business.

Customize this agent