For anyone deciding whether Fivexer is the thing they have been looking for
One engine decides who does the work
On the roster you publish on Sunday, and on the call-in at 05:41. Everything here is checkable before you talk to anyone — two engines that run in your own browser, a published week with a conflict already in it, and the source of both.

- One model builds the roster and allocates the live work — same people, same rules, same record.
- No country’s legal limits ship as defaults. Yours are enforced, and explained in words.
- Every decision is recorded as one sentence: who took it, and who was ruled out by which rule.
- MIT engine, EU-hosted cloud, and a DPA you can read before anybody emails you.
Scheduling tools stop at publish. Routing tools start after the job arrives.
A workforce suite plans the week and goes quiet. A router allocates tickets and has never heard of a rota. The gap between them is where a contractor’s morning goes — and where the record of who did what, and why, does not exist.
What each kind of tool does with the same six questions
| The question | Spreadsheet | Scheduling app | WFM suite | Task router | Fivexer |
|---|---|---|---|---|---|
| Who works Thursday night?under rest, hours and qualification rules | by memory | yes, templates | yes | no | Yes — your rules, explained |
| Who takes the ticket that just arrived?live allocation on skills, capacity and priority | no | no | no | yes | Yes — against who is on shift |
| Who covers Anna at 05:41?into qualified, rested, nearby replacements | five phone calls | open-shift board | open-shift board | no | Yes — ranked, with exclusions |
| Why him and not her?a record a worker or an inspector can read | no | rarely | audit log | sometimes | Every decision, one sentence |
| Whose legal limits are these?vendor defaults against rules you configure | yours | vendor templates | vendor packs | not applicable | Yours only. None shipped. |
| Can we read the engine?open source, API, self-hosting | not applicable | no | no | API only | MIT engine, API and MCP |
Columns are categories, not named products, and describe what those kinds of tool typically do. Where a specific product does one of these, good — the row that matters is whether one tool does the whole column. Named, sourced and dated comparisons live under /alternatives/.
Family 1 · Routing
Live work allocation
For the ticket, job or case that arrives during the day — the engine you can watch run in your own browser.
Run the routing simulator →- Skill-based matching
Tags and weighted skills decide eligibility; a zero weight is a hard veto. Thresholds and CIDR rules are checked before scoring.
- Capacity and backlog caps
Per-worker limits so nobody is buried. Paused people leave matching without losing the queue they already hold.
- Priority, escalation and SLA
A response clock, a completion clock and a rejection budget, each with its own breach event and counter.
- Fairness as a policy switch
First-come, best-match, balanced or spread-work, plus a rolling-window grant cap so busy people lose near-ties.
- Decision traces
Every candidate and every reason, captured during the matching pass rather than reconstructed afterwards.
- Queue audit
For each task nobody has taken: who could take it, and what blocks the rest — on break, no tag match, at capacity, uncovered tag.
- Workflows
Multi-step work with decisions, parallel branches, retries and a dead-letter queue — drawn on a canvas, not coded.
- Learning, opt-in
A contextual bandit re-ranks candidates who are already eligible. Hard rules always run first and stay deterministic. Off by default.
- Worker portal
A phone-first app: shift on and off, breaks, the queue, accept or decline, cover offers. Your branding, their own PIN.
- Time and attendance
Measured shifts, breaks and worked time, kept as a record. Never a rating and never an input to allocation.
Family 2 · Scheduling
Constraint-aware rostering
For the week that has to exist before any of that happens. Pure, Redis-free, and shipped as open source.
Workforce scheduling →- Sites, posts and shifts
A post is a responsibility at a site with a requirement on it. Bands, headcount per cell, unpaid breaks, and what each shift counts as.
- Rules as sentences
Rest, hours, nights, breaks, contracts and fairness, with your figures set into the sentence and its provenance beside it.
- Rolling windows, not calendars
“48 hours in any seven days” means any seven days. A fixed weekly grid silently misses the breach that straddles it.
- Solve, validate, rank, repair
Scoring is lexicographic, so no soft gain can buy a hard breach — and the solver and the compliance check share one judgement path.
- Versions and publishing
The diff before you publish, pending leave surfaced at the same moment, and notice arithmetic against an explicit “now”.
- Absence and cover
Candidates grouped as based-here, a known journey away, or travel unknown. Offer with an expiry, or fill directly.
- Multi-site travel
Asymmetric minutes between sites and a hard travel-gap rule read over the whole person’s timeline, history included.
- Contracts and pay
Part-time as a fraction, overtime consent, time off in lieu, clock bands and day premiums. Estimates of the plan, never payroll.
- Public holidays from a location
Country and region calendars drawn on the grid, credited to the data source they come from.
- Profiling-free by construction
Ranking never reads acceptance history or a reliability score, and every result asserts it in its own provenance.

Ten things you can check today, without a sales call
A claim a buyer cannot verify is marketing. Each one names the place on this site where you can watch it happen — no account, no call.
- 01
The router runs in your browser, on real code.Seven named agents, a ticket you write, and the decision with its margin — no account.
/app — press “Route this assignment”.
- 02
The rota engine runs in your browser too, on the same week.A published week with a rest conflict in it, checked against rules you can change on the screen.
/app/roster — press “Check the week”.
- 03
Every decision is a sentence, not a score.“Not eligible: only 9 hours’ rest since the previous shift” — the words the product actually emits.
The call-in, and the decision log in any workspace.
- 04
No country’s legal limits ship as defaults.A blank rule is not checked. Start from a published pack and edit every figure, or start from a blank sheet.
- 05
The scheduling engine is open source.MIT, pure TypeScript, no Redis. Read the constraint classes; run the benchmark yourself.
The engine and its repository.
- 06
Cover ranking is profiling-free.No reliability score, no no-show prediction, no acceptance history — asserted in every result’s provenance.
Time off and cover, and the source.
- 07
Routing data stays in the EU.Every subprocessor named, including the two that are not in the EU and what covers them.
Data residency and /security/.
- 08
The DPA is published, not negotiated.Read it before anyone emails you. Versioned, and already in force through the terms.
- 09
Pricing is on the page, per workspace, from free.No per-seat licence, so a contractor that wins a site adds people rather than licences.
Pricing — with the alternative’s bill at the same volume beside it.
- 10
It talks to your own tools and agents.SDKs in five languages, webhooks, and an MCP server your coding agent can drive directly.
The MCP server — one command to connect.
And what it is not
Printed here so nobody discovers it on the first call.
It replaces
- The rota spreadsheet and the group chat that covers it
- A dispatcher deciding from memory who gets the next job
- Rest and hours checked in somebody’s head
It works beside
- Payroll, accounting and invoicing
- Your HR system of record
- Your ticketing, CRM or field-service app, over the API or MCP
It does not
- Forecast demand or headcount
- Prove attendance by GPS or photograph
- Hold SOC 2, or offer a contractual SLA — both stated on /security/
- Decide whether stand-by counts as working time — you classify it, the engine does the arithmetic
Three ways in, none of them a form
Write one, watch the engine choose, then read the margin and the exclusions.
Live simulator →A published week with a conflict already in it. Fill it or offer it, and read the record it writes.
Rota simulator →People, shifts, sites and rules in; a versioned roster with explanations out.
Rostering API →Questions we get asked first
What does Fivexer actually do?
Two things on one model: it builds staff rosters under the working-time rules you configure, and it allocates live work — tickets, jobs, cases and shift cover — to the people who are on shift and qualified for it. Every decision is recorded with the reason.
How is this different from a scheduling app or a WFM suite?
Scheduling tools generally stop when the roster is published, and routing tools generally start when a job arrives. Fivexer carries one model across both, so the person the roster put on site is the person the router considers, judged by the same rules.
Is any of it open source?
Yes. The matching and scheduling engine is MIT-licensed and published, and the hosted cloud runs the same engine. You can read the constraint classes, run the benchmarks, or self-host.
Do we have to replace our existing systems?
No. Fivexer works beside payroll, accounting, HR and your ticketing or field-service tools, over an API, webhooks or MCP. It replaces the rota spreadsheet and the group chat that covers it.
What does Fivexer deliberately not do?
It does not forecast demand, prove attendance by GPS or photograph, run payroll, or decide whether stand-by counts as working time. It holds no SOC 2 certification and offers no contractual SLA today; both are stated on the security page.