Scheduling Software User Guide
Master every feature of our application: from configuring your staff to generating optimal schedules under legal and financial constraints. This step-by-step guide will walk you through the entire process.
1. The Opti-Planning Philosophy
Opti-Planning is not just a digital spreadsheet. It is an artificial intelligence engine (combinatorial solver) that runs directly and locally in your browser, guaranteeing total data privacy.
Its purpose is to compute millions of combinations per second to find the best possible staff assignment, while simultaneously balancing three fundamental and often competing dimensions:
- Demand (Coverage of operational needs): Do you have the right number of people, at the right time, with the right skills to run your operations? This is the engine's top priority.
- Legal Requirements (Hard constraints): Does the schedule comply with maximum working hours, mandatory rest periods (e.g., 11 hours between shifts), daily limits (e.g., 13 hours max), and maximum consecutive working days?
- Fairness and Preferences (Soft constraints): Are difficult shifts (e.g., closing shifts, weekends) distributed fairly among team members? Are employee preferences and unavailability requests accommodated as much as possible?
Quick Start: Templates
To get familiar with the tool, click the View Template button located at the top right of the application. It allows you to instantly load a complete dataset tailored to your industry (Hospitality, Healthcare, Retail, 24/7 Manufacturing, etc.) and observe how the AI solver performs.
2. General Settings and AI
Interface Mode
Before starting, you can streamline the interface by enabling or disabling advanced modules using the checkboxes at the top of the screen: Enable Sequences and Enable Financials. This will hide unnecessary columns and panels if you do not need them.
Schedule Configuration
- Date and Duration: Set the start date and total duration (up to 366 days).
- First day of the week: Crucial for calculating weekly overtime. If your accounting week starts on Monday, make sure this parameter is set to Monday.
Export
Set the CSV Separator (Semicolon, Comma, or Tab) used for all application exports to ensure compatibility with your version of Excel or payroll software.
Optimization Settings (The AI Engine)
These settings dictate the behavior of the calculation engine:
- Intensity and Max Time: Determines the calculation depth. "Basic" is very fast, while "Intensive" will search longer (up to the time limit defined in seconds) to resolve complex situations or optimize costs down to the exact cent.
- Priority Handling: Defines how the AI handles trade-offs. In "Flexible" mode, the AI may allow violating a priority rule if it satisfies dozens of secondary rules. In "Strict" mode, the order of priority is absolute.
- Fairness Targets: Select the shift types (e.g., Nights, Weekends) that the AI should strive to distribute equally among all employees.
Strategic Priorities (Drag and Drop)
You can rearrange the AI's 3 main goals (Costs, Fairness, Preferences) using drag and drop. The goal at the top of the list will be the AI's highest priority.
Advanced tip: The small button between two goals toggles between > (Strictly greater) and >= (Equal). If you set "Costs >= Fairness", the AI will treat both goals as having equal importance.
3. Step 1: Shifts and Skills
Before starting, you must define your operational scope. These elements will serve as the foundation for all scheduling.
Shifts
A shift defines a standardized work time window (e.g., MORNING, EVENING, NIGHT). It has a start time, end time, and break duration in minutes. The break is automatically deducted from effective working time for shift and payroll calculations.
Important note: If the end time is earlier than the start time (e.g., 22:00 to 06:00), the system automatically understands that it is an overnight shift ending the following day. Rest periods will be calculated accordingly.
Skills
Define the roles required for your activity, such as Kitchen, Dining Room, Bar, Manager, Nurse, Caregiver. An employee can hold one or more of these skills (multi-skilling), and staffing demand will always be defined for a specific skill.
4. Step 2: Employee Grid
This is where you define the legal and contractual profile for each employee. Each column directly impacts the solver's mathematical model. Precise configuration is key to successful scheduling.
| Optional. Only used if you want to send the generated schedule directly to the employee via email using the "Share" button. | |
| Contract | Fixed: The artificial intelligence will try to approach the maximum hours to make the fixed salary cost-effective. Extra (Relief): The artificial intelligence will avoid scheduling them unless needed to cover a critical understaffing. |
| Partial Weeks (Start/End) | If your schedule does not start on the first day of your payroll week, the first and last weeks are "partial". You can choose how to calculate the hour quota for these truncated weeks: Proportional (automatically calculates pro rata based on days), Manual (you enter the exact quota), or Copy (uses the quota of a full week). For very short schedules (e.g., a 3-day event), only the "Period" column will be displayed to adjust the quota for that specific duration. |
| Max Hrs/Wk & Overtime | The base contractual hours and the maximum allowed overtime hours per week. Exceeding the total generates a blocking error. |
| Hourly Rate & Multiplier | Gross hourly rate and multiplier (e.g., 1.25 for +25%). Used to calculate total cost and guide the artificial intelligence. |
| Min Rest & Max Spread | The mandatory legal rest time between two shifts (e.g., 11h) and the maximum daily spread (e.g., 13h). Set to 0 to disable. |
| Shifts/Day & Consec. Days | Maximum number of shifts per day (2 allows split shifts, 1 forces continuous shifts) and maximum number of consecutive working days. |
| Mandatory Sequences | Check the work sequences (rotations, cycles) that this employee must follow. The artificial intelligence will handle placing them optimally in the schedule. |
5. Step 3: Staffing Requirements
Specify how many people are needed for each shift and skill, day by day. This is the target that the AI will try to achieve.
The Power of Presets
You can create multiple Presets for the same day by clicking + Preset. For example, create a "Low Season" preset and a "High Season" preset, or "Sunny" and "Rainy". You can then toggle between them with a single click (radio button) to see how the schedule adapts. The active preset (highlighted in blue) is the one that will be sent to the artificial intelligence.
- Use the Copy D-1 button to quickly duplicate all requirements from the previous day.
- Use the small arrow next to a template to copy the values from the template on its left.
- Red cells indicate an invalid value (must be a positive number).
6. Step 4: Schedule Editor and Rules
Once employees and requirements are defined, click Optimize. The engine will clear unlocked assignments and calculate the best possible combination.
Display and Readability
You can adjust cell width and height using the sliders at the top of each grid for better readability. The widths of the Requirements and Schedule grids are synchronized for easy vertical reading.
Managing Unforeseen Events: The Rules System (Locks and Preferences)
In the results grid, click any cell to open the rules menu. This is where you manage leave, sick days, preferences, or manual assignments.
1. Rule severity
- Blocking (Lock): The AI MUST respect this rule. If mathematically impossible (e.g., forcing someone to work when they have reached their quota of hours), it will report a blocking error.
- Preference (Wish): The AI will do everything possible to respect the rule based on the assigned weight (from 1 to 5) and the strategic priority "Respect wishes".
2. Rule action
- Absence: Blocks any assignment on that day (Leave, Sick Leave, Forced Rest).
- Strict assignment: Forces the employee onto a specific shift AND skill.
- Presence (Any skill): Forces the employee to work a shift, but lets the AI choose their skill according to requirements.
- Conditional rule: If working that day, they MUST perform this skill (but the AI can choose to assign a rest day).
- Forbid: Prevents the employee from working a specific shift or skill.
Quick and bulk action buttons
- Lock all: Converts all assignments calculated by the AI into strict rules. Useful if you are satisfied with the schedule and want to freeze a baseline before re-running optimization on the rest.
- Unlock all: Removes all manual rules (locks and wishes) while keeping the calculated schedule.
- Clear calculations: Removes AI assignments while keeping your manual rules.
- Clear all: Resets the grid to zero (assignments and rules).
- Copy D-1: Available in the header of each day (to copy all rules from the previous day) or in an employee's popover (to copy only their rules).
- "Rule Actions" menu: Allows you to bulk delete all hard locks, all preferences, or convert all hard locks into preferences with a specific weight.
- Export Rules: Downloads a CSV file containing the current schedule converted entirely into rules. You can edit this file in Excel and then re-import it via "Import CSV" to force a full schedule.
The Warning Dashboard
Located above the schedule, it lists all violations. Blocking errors (Red) mean the schedule is non-compliant (e.g. rest period not respected) or understaffed. Minor errors (Orange) relate to non-compliance with requests or soft quotas. You can filter this table by employee, day, or error type. Click an error to center the grid on the problematic cell.
7. Step 5: Financial Rules
The Financial Rules panel allows you to add fixed bonuses to specific assignments, independently of the base hourly rate.
- Click a cell in the grid to add a bonus for an employee on a given day.
- You can target a specific shift (e.g. Night Bonus), a specific skill (e.g. Responsibility Bonus), or both.
- Use the Copy D-1 button to quickly carry over bonuses from the previous day.
- These bonuses will automatically be included in the employee's total cost calculation in the Analytics tab, and the AI will attempt to minimize them if the "Minimize costs" objective is active.
8. Step 6: Analytics and Dashboards
These dashboards allow you to check the quality of the generated schedule from different angles. You can switch between a Week or Month view.
Workload Analysis
Quickly see whether your employees are under-scheduled or working overtime using the progress bars. Overages beyond the base contract are shown in yellow, while overages beyond the allowed overtime quota are highlighted in red.
Financial Analysis
Estimate the exact labor cost of your schedule. The table breaks down for each employee:
- Base: The cost of regular hours (or the guaranteed fixed salary).
- Overtime: The cost of overtime hours (including the premium).
- Bonuses: The sum of fixed bonuses defined in the financial rules.
- Total: Overall cost per period.
- Extrapolated Cost: A 30-day cost projection based on the current schedule, useful for short schedules.
Fairness Analysis
Check that difficult shifts (defined in the configuration, e.g., Nights, Weekends) are fairly distributed among all employees. The chart shows you the number of assignments to these target shifts for each person.
Preferences Analysis
Measure your team's satisfaction rate. This table compares the number of requests submitted by each employee (non-blocking manual rules + sequence preferences) with the number of requests actually met by the artificial intelligence in the final schedule.
9. Data Import via CSV
To save time, Opti-Planning allows you to bulk import your data from Excel or CSV files. This feature is available for Employees, Requirements, Rules (Locks), and Bonuses.
How does importing work?
- Click the Import CSV button in the corresponding section.
- Select your file. The system will automatically detect the delimiter (comma, semicolon, tab).
- The Mapping step: This is the crucial step. The system will try to automatically match the columns in your file to Opti-Planning fields by reading the headers. You can manually adjust these mappings using the drop-down lists.
- Check the data preview, then validate the import. Any errors (e.g., employee not found) will be listed before confirmation.
10. Sharing and Communication
Once the schedule is validated, you can share it directly with your teams using the Share button located at the top right of the application.
Individual Send
In the drop-down menu, click the Email icon next to an employee's name. The application will generate a text message containing only their personal schedule and open your default email client.
Bulk Send
Select multiple employees using the checkboxes, then click the Email button at the bottom of the menu. The application will generate an overall message containing the schedule for the whole team. Note: Email addresses are placed in BCC to ensure privacy.
11. Backup and Export
Opti-Planning runs entirely in your browser. To avoid losing your data, you have several options via the File menu and the Export PDF/CSV button:
File Menu (Backups)
- New (Clear all): Completely resets the application.
- Cloud: Create a free account to save, rename, and load your schedules on our secure servers.
- Local (.ezopti): Download or import an encrypted backup to your computer for offline use.
PDF and Excel Export
- PDF: Generates a printable document containing the schedule for each selected employee (one per page).
- Excel CSV: Generates an overall summary table (database format).
- Individual PDFs / CSVs: Generates and downloads a separate file for each selected employee.
- Global CSV Export: Downloads all application data (employees, coverage requirements, rules, etc.) into a folder.
12. Advanced Feature: Work Sequences
Sequences are the most powerful tool in Opti-Planning. They allow you to model complex work patterns, shift rotations (e.g., 3x8, 5x8), or specific union rules, and then assign them to your employees.
Understanding Relative Time
It is crucial to understand that all time parameters defined in a sequence are relative to the sequence itself, not to your schedule's global horizon. Day 1 corresponds to the first day the sequence starts for a given employee. If a 7-day sequence starts on the 15th of the month, Day 1 of the sequence will be the 15th, Day 2 will be the 16th, and so on. Advanced rules are evaluated only within this specific cycle.
1. Creation and Anchoring
Use + New Sequence to build a cycle from scratch, or + Horizon Sequence to create a sequence that matches the exact length of your current schedule. Anchoring defines when the sequence starts (absolute dates) and whether it repeats continuously (Cyclic).
2. Daily Rules
For each day of the sequence, define what the employee MUST DO or MUST NOT DO. E.g., "Day 1: Must do MORNING", "Day 2: Must not do NIGHT".
3. Floating Quotas
Limits the occurrence of an event. Examples:
- Entire Cycle: "Maximum 2 Night shifts across the entire 14-day sequence".
- Rolling Window: "Maximum 1 weekend worked out of 2" (14-day window, Max 2 'Weekend' days).
4. Conditional Rules
Create logical conditions. Example: "IF assigned on Sunday, THEN Monday MUST NOT contain an assignment" (Compensatory rest).
5. Transitions
Enforce a minimum rest period right before Day 1 of the sequence starts and right after the last day of the sequence ends. Useful for shift pattern changes (e.g., Night to Morning transition).
- Severity: The transition can be strict (hard constraint) or set as a simple preference with a weighted penalty.
- Strict Mode: If enabled, rest is calculated exactly at the boundary of the sequence. Otherwise, the engine looks for rest anywhere between the last shift and the start of the sequence.
13. Advanced Feature: The AI Engine
To achieve optimal results, it is essential to understand how the AI engine reasons. The solver operates on a Penalty system. Every time a rule is violated, the AI receives penalty points. Its sole objective is to find the schedule with the lowest possible penalty score.
To provide maximum flexibility while guaranteeing fully compliant schedules, the system is divided into two main layers: Hard Constraints and Soft Constraints.
A. The Hard Constraint Layer: Inviolable Rules
These are non-negotiable rules. The engine will always prefer leaving an open slot in the schedule rather than violating them. However, if a scenario is mathematically impossible, the AI must make a tradeoff using a strict hierarchy of hard penalties:
Level 1: Manual Rules and Skills
This is the supreme rule. If you set a Blocking rule on the schedule, or if an employee lacks the required skill, the artificial intelligence will never violate this rule.
Level 2: Blocking Sequences and Consecutive Days
Right below are sequence rules defined as Blocking, as well as compliance with the maximum number of consecutive working days and maximum number of shifts per day.
Level 3: Rest, Max Hours, and Daily Amplitude
Compliance with the minimum rest period between shifts, the overtime cap, and the maximum daily amplitude.
Level 4: Demand and Requirements
This is the lowest blocking constraint. This means that the artificial intelligence will always prefer leaving a position open rather than forcing an employee to work if they haven't had their rest period or are on leave.
B. The Relative Layer: Strategic Priorities and Wishes
Once blocking constraints are respected, the artificial intelligence uses the Strategic Priorities component to arbitrate between your different objectives. The order of these priorities defines a penalty multiplier.
- Priority 1: High Multiplier
- Priority 2: Medium Multiplier
- Priority 3: Low Multiplier
1. Minimize costs
The artificial intelligence will track down every single overtime hour. It will prioritize employees on Fixed contracts who have not reached their quota, and will avoid using Extra contracts as much as possible. It will also try to minimize financial bonuses.
2. Distribute fairly
The artificial intelligence will count how many times each employee is assigned to the fairness targets defined in the configuration. It will prefer giving 2 difficult shifts to everyone rather than 4 to one person and 0 to the others.
3. Respect preferences
All non-blocking rules are called Wishes. Each wish has a Weight from 1 to 5:
- Weight 5: Very high
- Weight 4: High
- Weight 3: Medium
- Weight 2: Low
- Weight 1: Optional
The final penalty for an unfulfilled wish is calculated as follows: Base points linked to Weight multiplied by the Wishes objective Multiplier in strategic priorities.
For advanced users: The accumulation effect
Strategic objectives are separated by a multiplier factor that you can adjust via the settingPriority separation :
- Flexible:Costs accumulate quickly. The AI may allow violating a high-priority objective if it helps fulfill multiple secondary objectives.
- Standard (Balanced):A large number of secondary violations is required to compensate for a single high-priority violation.
- Strict:Strict priority hierarchy. The AI will almost never sacrifice a primary objective for secondary ones.
It's not a bug, it's afeature. The accumulation effect allows artificial intelligence to find the tipping point where overall well-being outweighs a strict financial rule, and vice versa. Indeed, if, for example, we separate priorities by a factor of one million (the 'Priority separation' parameter value is 'Strict' in this case), the artificial intelligence may decide to make 1,000 employees extremely unhappy just to save 1 single euro in costs.
14. Troubleshooting and Updates
Clear browser cache
Opti-Planning is regularly updated to offer you better performance (notably via updates to the WebAssembly artificial intelligence engine). If you encounter unexpected behavior, calculation errors, or display issues after an update, the first step is to clear your browser cache (Ctrl+F5 or Cmd+Shift+R). This will force the download of the latest version of the application and optimization engine.