Shared operating model
Clients, care plans, visits, time windows, skills, shifts, service areas, and travel all live in one model.
Caire Core is the technical layer that turns care decisions, master data, and operating rules into transparent schedule candidates that planners can review, explain, and publish.

Current page
Caire Core
The technical scheduling architecture behind planning.
Technical evaluation
Clients, care plans, visits, time windows, skills, shifts, service areas, and travel all live in one model.
Planners can weigh continuity, care time, travel, cost, skills, preferences, and working conditions without hiding the logic.
Every candidate gets quality metrics, baseline comparison, and clear reasons why visits move or stay.
AI candidates do not become production schedules until responsible planners review, choose, and publish them.
The first pass shapes staffing demand, shift supply, breaks, and capacity. The second pass assigns visits, exact times, routes, continuity, and exceptions. From-patch lets a planner add or repair a small change without rebuilding the entire schedule.
| Aspect | Traditional planning | Caire Core |
|---|---|---|
| Staffing input | Manual configuration | Demand-driven discovery |
| Continuity | Planner memory | Continuity weighted and visible |
| Travel time | Separate map work | Route cost in the schedule graph |
Migrated architecture prototypes
The retired platform prototypes described a split between shift planning and route optimization. In Brand 2.0 that content is expressed as one Caire Core scheduling architecture: a unified dashboard, two planning passes, route costs, mobile execution, and a convergence timeline planners can evaluate.
Every optimization, change, mobile event, and planner-approved decision can become a learning signal for the next run. The model improves from observed outcomes while planner approval remains the control point.
Deep dive
Diagram 1
Diagram 2
Workflow section
Complete technical documentation for CAIRE's dual-model automatic staffing discovery system. Understand the architecture, algorithms, API integration, and performance characteristics.
CAIRE uses a dual-model optimization architecture that combines two specialized engines:
Workflow section
Determines who works when and on which shifts, based on hourly demand curves and labor law constraints.
Workflow section
Assigns which employee visits which client and optimizes routes to minimize travel time.
Workflow section
Traditional schedulers only optimize routes for pre-defined shifts. But how do you know how many employees you need? Using Caire Core routing layer alone leads to a catch-22: if you send a full set of shifts (e.g. one per employee per day), the solver assigns visits to some shifts and leaves others empty—so you get "shifts with no visits." If you send only the shifts you think you need (cold start), the solver often cannot assign all visits and you get "unassigned visits." Caire Core routing layer does not decide how many shifts to create; it routes visits to shifts you already defined. Caire Core shift layer+Caire Core routing layer avoids this: Caire Core shift layer is demand-driven and creates exactly the shifts needed; Caire Core routing layer then only routes to those shifts, so you get no empty shifts and full visit coverage. CAIRE uses the dual model to automatically discover optimal staffing levels:
Key Innovation: Caire Core shift layer and Caire Core routing layer work iteratively. Caire Core shift layer estimates travel overhead and creates shifts. Caire Core routing layer reveals actual travel needed. If the delta is >5%, Caire Core shift layer adjusts and re-runs. Typically converges in 2-3 iterations.
Workflow section
Employee Shift Scheduling (Caire Core shift layer) is a mathematical optimization model that determines who works when and on which shifts , based on demand curves and labor law constraints. It treats demand as input and staffing as output.
Workflow section
Input: Demand curve (employees needed per hour), employee pool, availability, labor law rules Output: Shift assignments (employee ID, start time, end time), activated employee count, total cost Optimization Goals: Minimize total staffing cost while covering 100% of demand
Workflow section
CAIRE uses Timefold's commercial optimization solver via cloud API:
Workflow section
Caire Core shift layer automatically enforces Swedish kollektivavtal rules:
Workflow section
Caire Core shift layer prioritizes fixed-contract employees (zero activation cost) over hourly staff (500 SEK activation cost):
Workflow section
Activation cost: 0 SEK (already salaried) Strategy: Fill available hours first
Workflow section
Activation cost: 500 SEK Strategy: Activate only when demand exceeds fixed capacity
Workflow section
The Critical Bridge: Caire Core shift layer has no concept of geography. It only sees "X employees needed from 08:00-09:00". But home care includes travel time. CAIRE solves this through iterative learning:
Workflow section
Field Service Routing (Caire Core routing layer) solves the Vehicle Routing Problem with Time Windows (VRPTW) for home care. Given employees with shifts, Caire Core routing layer determines which employee visits which client and optimizes routes.
Workflow section
Input: Employees (vehicles) with shifts, visits (jobs) with time windows and locations Output: Visit-to-employee assignments, visit sequence per employee, travel times, efficiency metrics Optimization Goals: Minimize travel time, maximize continuity, balance workload
Workflow section
Continuity Focus: Caire Core routing layer prioritizes client-caregiver relationships (40% weight). Target: <10-15 different caregivers per client per 14 days. This builds trust and familiarity.
Workflow section
Caire Core routing layer supports hybrid schedules with both fixed and flexible visits:
Workflow section
Locked assignments from approved slingor. Cannot be moved by Caire Core routing layer.
Workflow section
New or movable visits. Caire Core routing layer can optimize freely.
Use Cases: Stable days use pinned visits (70-90% of schedule). New slingor start fully unpinned. Daily disruptions unpin only affected visits.
Workflow section
Two Caire Core routing layer modes for different scenarios:
Workflow section
45 visits, 9 employees: 60-120 seconds 100 visits, 20 employees: 2-4 minutes 200 visits, 40 employees: 5-8 minutes Optimization strategy: Metaheuristics (simulated annealing, tabu search) Mobile Actuals Integration & Learning
Workflow section
As caregivers use the mobile app to check in/out of visits, CAIRE learns actual travel patterns and improves accuracy automatically.
Workflow section
CAIRE mobile app supports multiple check-in methods (priority order):
Workflow section
Service area overhead: Travel multiplier per geographic area (Huddinge: 1.28x, Nacka: 1.45x) Hour-of-day patterns: Morning rush vs afternoon calm Day-of-week patterns: Monday (busy) vs Friday (lighter) Employee-specific patterns: Some caregivers consistently faster/slower
Workflow section
Key Insight: Manual slingor represent years of accumulated knowledge about travel patterns. CAIRE learns this in days, not years, and updates automatically as conditions change.
Workflow section
Mobile app works without internet connection:
Workflow section
Caire Core shift layer (Employee Shift Scheduling) Optimization model that determines who works when and on which shifts, based on demand curves and labor law constraints. Caire Core routing layer (Field Service Routing) Optimization model that assigns visits to employees and sequences them into routes, minimizing travel time. Convergence State where Caire Core shift layer estimated overhead matches Caire Core routing layer actual overhead within tolerance (typically ±5%). Indicates optimization is complete. Demand Curve Hourly breakdown of how many employees are needed per time slot (e.g., 08:00-09:00: 9 employees). Input to Caire Core shift layer. Travel Overhead Multiplier applied to service hours to account for travel time. Example: 1.35x means 35% additional time needed beyond service hours. Pinning Marking a visit as "fixed" so Caire Core routing layer cannot move it to a different
Workflow section
CAIRE exposes a GraphQL API for optimization operations:
Workflow section
Key tables for Caire Core shift layer+Caire Core routing layer optimization:
Workflow section
apps/dashboard-server/src/services/timefold/ESSClient.ts - Caire Core shift layer API client apps/dashboard-server/src/services/timefold/ess.types.ts - TypeScript types apps/dashboard-server/src/services/bridge/mappers/db-to-ess.mapper.ts - Data mapper apps/dashboard-server/src/services/bridge/scheduling/demand-curve.service.ts - Demand generation packages/graphql/operations/mutations/startTwoPhaseOptimization.graphql - GraphQL mutation
Workflow section
Try the interactive demo or return to the customer overview
| Aspect | Traditional Approach | CAIRE Caire Core shift layer+Caire Core routing layer |
|---|---|---|
| Staffing Input | Manual configuration required | Automatic discovery from demand |
| Employee Count | You guess (8? 10? 12?) | System calculates (discovers: 9) |
| Shift Times | You define manually | System optimizes automatically |
| Travel Overhead | Assumed or ignored | Learned from actuals data |
| Objective | Weight | Description |
|---|---|---|
| Continuity | 40% | Prefer employees who visited this client before |
| Travel Time | 30% | Minimize total travel distance/time |
| Workload Balance | 20% | Even distribution across employees |
| Shift Utilization | 10% | Maximize service time vs empty hours |
| Mode | Use Case | Performance |
|---|---|---|
| Full Solve | New slinga creation, weekly planning | 2-4 minutes (45 visits, 9 employees) |
| From-Patch | Adding 1-2 visits to existing schedule, real-time disruptions | 30-60 seconds (inherits previous solution) |
| Stage | Iterations | Time | Confidence |
|---|---|---|---|
| First optimization | 3 | 8 minutes | Manual geographic estimate |
| After 5 runs | 2 | 5 minutes | Medium (learned profile) |
| After 20 runs | 1 | 3 minutes | High (auto-pilot) |