Digitalisation
Shift planning software: a standard rota app or a custom build?
Buy a standard rota app when your rules come from the law and your collective agreement. Build custom only for the part a test with four past weeks shows the standard can't handle.
Shift planning software builds the rota, checks it against working-time limits and turns the hours people actually worked into the record the law asks for. Buy a standard rota app when your rules come from the law and your collective agreement. Build custom only for the part where a test with four past weeks shows the standard can't plan or record it. Whichever you choose, the system must export the record, with its change history, in a format you can open without the vendor.
We're Niro Digital and we build custom business software, so we have an interest in this question. None of our published projects is a shift planning system. This article rests on EU, Slovenian, German and UK law, with the links at the end.
What does shift planning software have to do?
The rota is only the first step. The system has to cover the path from the plan to the payslip.
| Step | The question it answers | What it produces |
|---|---|---|
| Plan | Who works when, and at which post | The rota |
| Check | Does the plan break rest, overtime or night-work rules | A warning before you publish |
| Change | Who covers for a sick colleague, and when were they told | A record of the change |
| Record | When did each person actually start and finish | A daily entry in the working-time record |
| Pay | How many hours were night, Sunday or overtime | Data for payroll |
The rota apps in the search results mostly describe building shifts, tracking attendance and handling leave. So ask every vendor about the check and pay steps separately. That's where the plan meets the law and the payslip.
Which working-time rules must the rota check?
The rota should check the limits before you publish it, not when you run payroll. Directive 2003/88/EC sets working-time limits that apply in every EU country.
The table compares the directive with Slovenia's Employment Relationships Act (Zakon o delovnih razmerjih, ZDR-1), Germany's Working Time Act (Arbeitszeitgesetz, ArbZG) and the UK's Working Time Regulations 1998.
| Rule | EU directive | Slovenia (ZDR-1) | Germany (ArbZG) | UK (WTR 1998) |
|---|---|---|---|---|
| Daily rest | 11 consecutive hours in 24 | 12 hours, or 11 with uneven or temporarily changed hours | 11 hours after the working day ends | 11 consecutive hours in 24 |
| Working time | 48 hours a week on average, overtime included, over up to 4 months | Full time at most 40 hours a week; at most 56 with uneven hours | 8 hours a working day, up to 10 if the average over 6 months or 24 weeks stays at 8 | 48 hours a week on average over 17 weeks, unless the worker agrees in writing |
| Recording | A system that measures each worker's daily hours (judgment C-55/18) | A daily entry, kept permanently (ZEPDSV) | A duty to record hours since a 2022 federal labour court decision | Records adequate to show compliance, kept for 2 years |
Then add your national detail. Slovenia is a good example of how much a rota has to know:
- Overtime. At most 8 hours a week, 20 a month and 170 a year. With the worker's consent the cap is 230 a year, and every order beyond 170 needs their written consent. A working day lasts at most 10 hours (ZDR-1, Article 144).
- Ordering overtime. The employer orders overtime in writing, as a rule before the work starts (Article 144).
- The annual schedule. You set it before the calendar or business year starts and tell workers in writing. A temporary change needs written notice at least one day ahead (Article 148).
- Weekly rest. 24 uninterrupted hours on top of daily rest, averaged over 14 consecutive days (Article 156).
- Night work. Night work is work between 23:00 and 06:00. In rotating shifts that include nights, a worker on one shift works nights for at most one week in a row (Articles 150 and 151).
- Breaks. A full-time worker gets 30 minutes, counted as working time. The break can start after the first hour of work at the earliest and one hour before the end of the working day at the latest (Article 154).
A collective agreement can change some of these. In Slovenia, a sector agreement can stretch the reference period for full-time hours to 12 months (Article 158). The reference period is the span over which weekly hours are averaged.
Write your rules down as a list before you compare vendors. The system must check every line, or at least warn you.
What must the working-time record contain?
The record holds what happened, not what was planned. The EU set the principle in 2019. In case C-55/18, the Court of Justice said member states must require employers to set up an objective, reliable and accessible system that measures each worker's daily working time. Each country decides the form, taking account of the sector and the size of the company.
Slovenia shows what a detailed version looks like. Its Labour and Social Security Records Act (ZEPDSV) lists 11 items you enter for each worker every day (Article 18). They include:
- total hours worked, overtime and hours not worked, by type;
- the time the worker arrived and left;
- hours of night, Sunday, shift and public-holiday work, and split shifts;
- hours under an uneven or temporarily changed schedule;
- a running total for the week, month or year that shows the reference period.
You can enter the special hours and the running total monthly. Everything else goes in daily.
You keep the record permanently, at the company's seat or where the person works (Article 19). You give each worker the previous month's data in writing by the end of payday.
An electronic record isn't required of every employer. The law requires one for two years after a final fine for certain breaches (Article 19.a). It also requires one once you accept a proposal from a trade union or works council (Article 19.b). In an electronic record, every later change must carry its reason and the time it was made.
Fines for a company run from €1,500 to €20,000, and from €3,000 to €20,000 for breaches of the electronic record rules. The ranges are lower for smaller employers (Articles 23 and 23.a).
In Germany, the Federal Labour Court (Bundesarbeitsgericht) ruled in 2022 that employers must record working time. That duty comes from the occupational safety act (Arbeitsschutzgesetz). The Working Time Act itself still only requires a record of hours beyond 8 a day in its published text.
The federal labour ministry drafted changes to the Working Time Act in June 2026, including rules on recording working time. The draft is not law: the published act was last amended on 23 October 2024.
In the UK, you keep records adequate to show you've complied with the limits, for two years. You needn't record daily hours if you can show compliance another way.
For choosing a system, this comes down to three questions:
- Does it calculate every item your country requires from the clock-in and clock-out data?
- Does it log the reason and time of every change, even where the law doesn't require that of you yet?
- Can you export the whole record when you switch vendors?
In Slovenia the record is permanent. Your contract with the vendor isn't. If you plan staff in more than one country, the system has to know each country's rules separately.
What should stay standard?
Keep standard everything where you don't differ from other companies. The vendor develops these functions for all its customers, so you don't pay for that development alone.
- Building the rota from shift templates.
- Shift swaps and time-off requests through a mobile app.
- Holidays and sick leave.
- Clocking in and out.
- Exporting hours to payroll.
Check with every vendor what's in the package and what you buy on top.
When is a custom build worth it?
A custom build pays when the difference is real, lasting and something you can write down. Look for four signs:
- You plan people for several clients. A staffing agency places workers at client sites. Each client has its own shifts, rates and rules, and the rota has to keep them apart.
- The rota depends on qualifications. A shift may need, say, a forklift driver with a valid licence. If the app only knows a name and a job title, the rota can't tell who may go where.
- The rota has to talk to other systems. Hours go into billing per client, a CRM or a production plan. Without a connection, someone retypes them.
- The spreadsheet survives every test. The same spreadsheet stays in the same place next to every system you try.
A custom build doesn't pay when your rules are just the law and your collective agreement. Then it's better that a vendor updates the rules for all its customers when the law changes. Slovenia's records act, for example, changed in 2023 and again in 2025.
It also doesn't pay when one person holds all the rules, or when nobody in the company will own the system. In those cases, fix the process first, starting with the four-question filter for when not to automate a process.
How do you test a rota app with four past weeks?
Before you sign, enter four past weeks in the vendor's trial environment, with your own people and shifts. A demo shows what the system can do. This test shows what it can't.
| Week | What the system must do | The test fails if |
|---|---|---|
| An ordinary week | Build the rota from templates and send it to staff | You send the rota as a photo or PDF |
| A week with a sick day midweek | Suggest a cover who still gets the full daily rest | You check the cover's rest by hand |
| A week with overtime near the cap | Warn before someone passes the weekly or monthly overtime limit | You track the limit in a spreadsheet |
| A week of night shifts | Rotate the night shift on time and flag night hours | You count night hours for payroll separately |
Then export the record and the payroll data for the same four weeks. Check that every item your law requires is in the export. Change one entry, and check that the export shows the reason and time of the change.
Have your planner run the test, not the vendor. For each week, write down where you had to open Excel.
Our rule: if all four weeks and the export pass, buy standard. If one or two fail at the same step, consider a mix. If they fail at different steps, test a second vendor before you build anything. If most fail because of the way you plan, a custom build has a good case.
How does a mix of standard and custom work?
The standard app stays the main record for the rota and the working-time record. The custom app covers one step, such as planning by qualification or billing per client. It writes its data back to the standard app.
A mix has two conditions. The vendor needs a documented API, the agreed way two programs exchange data. And every piece of data needs one owner, not two versions in two systems.
Ask the vendor three questions before you buy:
- Does the API read and write rota and time entries, or only read them?
- Is API access included in the package?
- What happens to connections when the system is upgraded?
What belongs in the contract?
Settle these three topics in writing before you sign. They apply to a standard app and to a custom build.
Exporting the record. Ask for an export of the whole record, change history included, in a machine-readable format, at any time and not only when you leave. Run a trial export before you sign, as in the data-export and exit-cost tests for a CRM.
Personal data. The record holds personal data about every worker. Ask who processes it, where it's stored and under which contract. They're the same questions as in the data triage for a first AI pilot.
Code in a custom build. The contract should say that the code, the repository and the documentation are yours. The repository is the place the code is stored.
How do you compare the cost of standard and custom?
We don't give prices here, because they depend on scope. Compare both options over the same period, such as five years, and on the same lines.
| Line | Standard rota app | Custom build |
|---|---|---|
| Start | Setup and configuring your rules | Analysis and development |
| Data | Moving staff, shifts and hour balances | Moving staff, shifts and hour balances |
| People | Training planners and staff | Training planners and staff |
| Every year | Subscription per user or per worker | Hosting and maintenance |
| Changes in the law | Ask whether the subscription covers them | You pay for them yourself |
| Exit | Exporting the record | Handing the code to a new developer |
Add a third option: do nothing. Put in the hours your planner spends on the spreadsheet rota and the payroll corrections caused by miscounted hours. Only that option shows whether either path pays at all.
What we do and what we don't
Our custom business software development starts with a map of the process, and we don't write code before the map. For Evroproces we built an internal staffing CRM with monthly timesheets and the payroll and margin maths. Rates carry validity dates and are copied onto each monthly record, so a rate change today can't rewrite a past month. Recruitemy holds client contracts with live headcount and a skills catalogue.
A typical project runs one to three months with three people on it full time. Repositories are in your name from day one, unless we agree otherwise in writing.
We don't rebuild the rota, clocking in or the payroll export if your app already handles them. We only replace something when it is the constraint itself. If the saving doesn't cover the price, we say so and don't sell it.
If you've run the four-week test, tell us where it stopped. A person replies within one working day. The first call is a working session, not a demo.
Sources
Key takeaways
- //01Shift planning software has to plan, check the rules, handle changes, record actual hours and feed payroll, not only draw the rota.
- //02The EU minimum is 11 hours' daily rest and a 48-hour average week; Slovenia asks for 12 hours' rest and caps full time at 40 hours.
- //03Since the C-55/18 judgment in 2019, every EU country must require a system that measures each worker's daily hours. In Slovenia the record has 11 items, entered daily and kept permanently.
- //04Before you sign, enter four past weeks, with a sick day, overtime and night shifts, and test the export.
- //05Build custom only for the step that fails, such as planning for several clients or by qualification.
Keep reading
Blog
Start here
Tell us the constraint
Operations, workers or customers. One sentence is enough, we'll reply within one working day.