Schedule Utilisation Analyst
Says where the day leaks, when the diary looks full
- 7hard rules
- Things it must never do, enforced in every run
- 5handover rules
- Conditions where it stops and gives the work to a person
- 12output fields
- A structured result, not a paragraph you have to re-read
- ≤5steps 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.
Overview
Booked businesses measure utilisation as hours booked over hours open — the one number that cannot tell you what is wrong. Eighty per cent looks healthy and hides every way a day leaks.
The leaks are specific and none of them appear in that percentage. Twenty-minute gaps that no service is short enough to fill, nine of them in a week, booked around and never sold. A treatment scheduled for forty minutes that has taken fifty-five every time for a year, so every afternoon runs late and the last appointment is rushed or lost. One practitioner booked past capacity while another sits idle, because the desk books whoever was asked for and nobody sees the imbalance. A room that is the real constraint while everybody believes it is the staff.
The least welcome finding is usually the service mix. A day fills with short, easy-to-book, low-value appointments and turns away the long ones that pay for the room. The diary is full and the month is poor, and those two facts look unrelated until they are on the same page.
It reads the diary that already happened and quantifies each leak in hours and in money, so a change to the booking rules has a case behind it. It changes nothing, books nothing, and makes no judgement about any individual's productivity.
Benefits
Capacity you already own
Recovered from the leaks rather than bought with longer hours.
Days that stop running late
Because the durations match what the work actually takes.
A booking rule with evidence
Priced in hours and money before anyone is asked to change how they work.
What it does
Finds the gaps nothing can fill
Twenty minutes between two appointments is not capacity. Nine of them in a week is a day, and no utilisation figure shows it.
Catches the treatment that always overruns
Booked at forty, takes fifty-five, every time for a year. That is why the afternoon runs late, not the staff.
Shows the imbalance between practitioners
One booked past capacity, another idle, because the desk books who was asked for and nobody sees the whole board.
Names the real constraint
Very often a room or a machine rather than the people everyone assumes are the bottleneck.
Puts the service mix against the money
A day full of short easy bookings that turned away the long ones paying for the room. Both facts, one page.
Judges no individual
Findings are about slots, services and constraints. A per-person productivity ranking gets managed instead of fixed.
What this changes
What this changes about your week
- It takes over
- Reading a month of diary to find where the capacity actually went.
- Done today by
- Whoever asks why a full-looking diary produced a poor month, usually once and never again.
- How often
- Monthly, or after any month nobody can explain.
- Typical manual effort
- Days of exporting and pivoting, which is why utilisation gets reported as one percentage instead.
Why Operations in particular. Hours booked over hours open is the one number that cannot tell you what is wrong. Every leak — unsellable gaps, chronic overruns, the wrong room — hides inside it.
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
Schedule Utilisation 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.
- 1InputValidated against the agent input schema
- 2Modelclaude-sonnet-5 with automatic fallback
- 3Toolsextract_structured_data
- 4PermissionsRuns READ actions automatically; anything higher waits for approval
- 5OutputStructured result matching the output schema
- 6LoggingTokens, duration and every step recorded
Demo
Demo dataIllustrative sample output, abridged.
Input
{
"currency": "USD",
"appointments": [],
"shortestSellableMinutes": 30
}Output
{
"escalate": false,
"overruns": [
{
"fix": "Schedule it at fifty-five. You lose nothing — you are already spending it — and the afternoon stops collapsing.",
"knockOn": "Every afternoon with two or more laser sessions finishes late. The last appointment of those days is cancelled or rushed four times more often than on other days.",
"service": "Laser session",
"scheduledMinutes": 40,
"typicalActualMinutes": 55
}
],
"imbalance": [
"Nadia is booked at 94% of capacity, Leyla at 61%. The desk books who was asked for, and nobody sees both boards at once."
],
"disclaimer": "Findings describe slots, services and rooms. No individual has been assessed, and nothing in your calendar has been changed.",
"serviceMix": {
"finding": "Short consultations filled the hours that laser sessions were turned away from. The diary was full and those hours earned about a third of what the displaced work would have.",
"assumption": "Assumes every turned-away laser request would have booked. If half would have, halve the figure — it is still the largest single item here.",
"valueForgone": 7400
},
"fixableByRule": [
"Schedule laser at its real duration.",
"Reserve two afternoon blocks a week in Treatment 2 for long services."
],
"needsResource": [
"A second laser unit would remove the constraint, but the two rules above should be tried first."
],
"realConstraint": "Treatment 2, not the staff. It is the limiting resource in 71% of the weeks examined, and adding practitioner hours would not have added a single bookable slot.",
"unsellableGaps": {
"detail": "Nineteen gaps of twenty to twenty-five minutes across the week, none long enough for your shortest service. Utilisation reads 81% and this is inside the missing 19%, but it is not idle time — it is time that was never sellable.",
"hoursPerWeek": 6.3,
"valuePerWeek": 1890,
"worstResource": "Treatment 2"
},
"supportedByData": [
"Gaps",
"Overruns",
"Practitioner imbalance",
"Room constraint"
],
"escalationReason": "",
"notSupportedByData": [
"Seasonality — only fourteen weeks of history were supplied, which is not enough to separate a season from a run."
]
}Requirements
Integrations
No integrations required.
Before you start
- Past appointments with scheduled start and end
- Actual start and end where you record them
- Service, practitioner and room on each appointment
- A value or price per service
- Requires the Starter plan or higher
Use cases
Monthly operations review
Where the capacity went, behind the utilisation percentage.
Full diary, poor month
The two facts on the same page, which is usually the service mix.
Before hiring or extending hours
Whether the capacity already exists inside the current week.
Deciding what to book where
Which room or chair is genuinely the constraint.
Pricing
Starter
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 rank staff by productivity?
No. Findings are about slots, services, rooms and booking rules. A per-person productivity table gets managed rather than fixed, and it destroys the honest scheduling the analysis depends on.
Does it change the diary?
Never. It has no write access to any calendar. It reports what happened and what a rule change would be worth; the change is yours to make.
What does it need?
Past appointments with scheduled and actual times, the service on each, the resource used, and a value per service. Without actual times it can still find gaps and imbalance, and it says the overrun analysis could not be done.
How far back should the data go?
Three months finds gaps and imbalance. Overruns and seasonality need closer to a year, and it states which of its findings your history can actually support.
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