1. Decision and Care plan
Services, frequency, durations, constraints, and relationships become structured planning data.
Caire turns each visit into a living data product: decision, care plan, schedule row, route, mobile execution, and follow-up stay connected in Caire Core.

Current page
Visit data lifecycle
From care decision and master data to mobile execution.
When visits change or get completed, signals feed a continuous learning loop. Planners can see what happened, why it happened, and what should be reviewed next time.
Services, frequency, durations, constraints, and relationships become structured planning data.
Clients, employees, skills, service areas, and shifts define which visits are possible.
Caire Core creates candidates that weigh continuity, travel, time windows, and workload.
The caregiver sees the visit, documents, checks in, and reports deviations directly.
Outcomes and quality are compared with the plan so the next schedule can improve.
Lifecycle diagrams
These diagrams preserve the source platform logic: decisions become templates, templates become dated visits, optimization creates a planner-approved candidate, and mobile execution feeds the next planning cycle.
Diagram 1
The full path from approved care decision to mobile execution and continuous learning loop.
Diagram 2
The old platform document's Layer 1, 2, and 3 model rewritten in Caire Core language.
Diagram 3
Use the simplest tool first: precompute when possible, use time windows broadly, and reserve hard dependencies for real requirements.
Diagram 4
Service-group defaults flow into the visit template and materialize into individual dated visits.
Diagram 5
The visit moves from draft to optimized plan, mobile execution, and learning for the next period.
The source system and Caire Core keep the visit lifecycle aligned from decision to mobile execution.
| Layer | Decision | Master data | Execution |
|---|---|---|---|
| Source system | Care decision and approved services | Client, address, service, and time rules | Completed visit and deviation status |
| Caire Core | Planning interpretation | Visit graph, staff, skills, shifts, routes | Mobile execution, audit trail, and follow-up |
The visit lifecycle prevents planning data, mobile execution, and reporting from becoming separate realities. That is what makes AI scheduling explainable and audit-friendly.
See AI schedulingDeep dive

Workflow section
From the municipality care decision to a published schedule — three layers (master data, dated visits, optimisation) and how data flows in CAIRE.
Workflow section
The municipality decides which services a client is entitled to and how often. This is the legal basis for all planning. CAIRE translates the decision into services and templates in Layer 1.
Workflow section
Time-independent data: what the client needs, under which conditions, and how services connect
Workflow section
A service is a type of care or service clients may be approved for. Each service has organisation-wide default values:
Workflow section
A service group bundles services that belong together in one day, in a fixed order with timing between steps. Each member has a sequence position and specifies minimum (and optional max) delay from the previous service.
Across days — frequency and spacing (pre-computed):
Per-client override: The service group timing is the default. In the visit template the planner can change for one client, e.g. "at least 3 hours" → "at least 2 hours".
Workflow section
Time windows divide the day into named periods. They are the main lever for when services should occur. When windows do not overlap, no special dependencies are needed.
Workflow section
Shifts define staff working periods. They are used both as frames for visit templates and as the basis for workforce planning in Layer 3.
Workflow section
The visit template links the care decision to the operational schedule. One template per service per client. The template holds pattern rules , not calendar dates.
Workflow section
When a new client is onboarded, CAIRE can automatically recommend visit templates based on three factors:
The planner can accept, adjust or reject the suggestions.
Workflow section
The fewer unnecessary dependencies, the faster and better the optimisation. Over-specifying makes the schedule rigid and increases the risk that visits cannot be placed.
Workflow section
In traditional home-care planning, routes (fixed rounds with fixed visits in fixed order) are copied from period to period. The route implicitly bundles continuity, priorities, dependencies and time logic — baked into one sequence. CAIRE models each requirement explicitly and separately, so it does not need routes at all.
Workflow section
The planner rarely needs to edit individual visits. Most changes are made at service group or template level and inherit on the next materialisation.
Workflow section
Planning window (e.g. 4 weeks) with dated visits ready for review and optimisation
Workflow section
The schedule is created for one or more service areas and a time period (2 weeks, 4 weeks, quarter). The period should cover the longest frequency — if cleaning is 1×/month the window must be at least one month.
By selecting multiple areas the planner can run what-if scenarios and see how KPIs such as continuity and efficiency change if areas are merged.
Workflow section
Templates expand to specific dates. Every other day, 3×/week, every 4th week — correct days are computed here. Cross-day spacing is handled via day selection, not as dependencies for the optimiser.
Workflow section
Organisation and client rules (dependencies, preferences, skills, groups) are stored once at client/care-plan level. When the schedule is built CAIRE projects them onto each new visit. The next period automatically reflects updated care plans — without copying the previous schedule as source.
Workflow section
The planner can add, remove or adjust individual visits before optimisation runs. Changes are tracked so the planner knows what changed since the last run.
Workflow section
The solver matches visits to staff and optimises for continuity, efficiency and legal requirements
Workflow section
Shift generation and contract rules (working time law, agreements, preferences) define supply . The planner can review supply before or after an optimisation run depending on workflow.
Workflow section
Demand All visits with time windows, skill requirements and dependencies. Supply Staff, skills, shifts, working times, travel times. Result Each visit → assigned staff + exact start time.
Workflow section
Type Meaning Examples Hard (must hold) Requirements that must never be broken. Working time law, skill requirements, staff cannot be in two places at once. Soft (desirable) Optimised but may be relaxed. CAIRE finds the next-best solution. Preferred day, continuity, minimised travel. Principle: Use soft constraints where possible. That adds flexibility, reduces the risk that visits cannot be scheduled, and improves overall outcomes.
Workflow section
The planner reviews the same schedule in two perspectives (same data, same filters — only grouping and colouring change):
Workflow section
Action Description Save (this visit) Adjust a single visit in the solution without a full re-run. Validate Quick score/feasibility check (sync) before a large change. Re-optimise Run the solver again (e.g. after pinning, closure, weight changes). May be async. This instance vs all future Change can apply to this visit only, or edit the template and propagate to future visits. ✓ Checkpoint 2: Does the optimised assignment look reasonable? Assigned staff, exact times, routes, shifts. Compare scenarios if you like. Re-run when needed. ▶ Publish — the schedule becomes the active plan. Staff follow this schedule. Schedule lifecycle Draft Visits are edited. Optimisation can run one or more times. The planner iterates until satisfied. Published The active plan. The chosen solution is locked for execution. One-off changes can still be made. Archived The period is closed or replaced by a newer ro
Workflow section
Each service area can be configured with a planning horizon (weeks per window) and lead time to create the next period before the current one ends.
Data can enter in several ways. The source of truth is always what is stored in CAIRE after import or registration — messy external files are mapped as well as possible; the planner corrects in the UI when needed.
| Aspect | Fixed route (manual) | CAIRE |
|---|---|---|
| Continuity | Implicit — same staff, same round. Breaks on sickness or change. | Explicit optimisation: preferred carers, continuity score as soft goal. |
| Visit order | Fixed sequence in the route. Change means replanning the whole route. | Time windows and dependencies drive order automatically. Optimiser finds best route. |
| Efficiency / travel | Depends on the route being good from the start. Often suboptimal — hard to review all rounds manually. | Route optimisation computes travel and finds the most efficient order given all requirements. |
| Priorities | Implicit in route order. No systematic way to prioritise in conflicts. | Explicit priority per service/template. Hard requirements always met; soft ones optimised. |
| Dependencies | Baked into the route — visible only to whoever built it. | Explicit in service groups and templates. Visible, editable, inheritable. |
| Changes | The weakest point. New client, sick staff, changed decision → route must be rebuilt manually. Often patches that accumulate problems. | Run optimisation again. CAIRE computes a new best solution given current requirements and changes. |
| Quality at start | Highly variable. Often wrong from the start — hard to manually optimise hundreds of visits. | Optimal from the start. Each period is optimised mathematically under all constraints. |
| Property | Service group (default) | Visit template (client level) |
|---|---|---|
| Duration | — | 25 min |
| Priority | Normal | High (override) |
| Time window | Morning 07–10:30 | 07:00–09:00 (tighter) |
| Skill requirements | Gender: female | + double staffing (additive) |
| Preferred carers | — | Anna P., Erik S. (soft goal in optimisation) |
| Min delay | 3 h (group default) | 2 h (client override) |
| Double staffing | No (default) | Yes — two carers required |
| Locked / pinned | — | No (default) — can be set per instance |
| Date | Time window | Service | Double |
|---|---|---|---|
| Mon 14 Apr | 07:00–09:00 | Shower | Yes |
| Wed 16 Apr | 07:00–09:00 | Shower | Yes |
| Fri 18 Apr | 07:00–09:00 | Shower | Yes |
| Mon 21 Apr | 07:00–09:00 | Shower | Yes |
| Wed 23 Apr | 07:00–09:00 | Shower | Yes |
| Fri 25 Apr | 07:00–09:00 | Shower | Yes |
| Type | Meaning | Examples |
|---|---|---|
| Hard (must hold) | Requirements that must never be broken. | Working time law, skill requirements, staff cannot be in two places at once. |
| Soft (desirable) | Optimised but may be relaxed. CAIRE finds the next-best solution. | Preferred day, continuity, minimised travel. |
| Action | Description |
|---|---|
| Save (this visit) | Adjust a single visit in the solution without a full re-run. |
| Validate | Quick score/feasibility check (sync) before a large change. |
| Re-optimise | Run the solver again (e.g. after pinning, closure, weight changes). May be async. |
| This instance vs all future | Change can apply to this visit only, or edit the template and propagate to future visits. |
Diagram 1
Workflow section
flowchart LR %% ========= COLORS (Caire palette-inspired placeholders) ========= classDef source fill:#cce7ff,stroke:#2a7de1,color:#000; classDef storage fill:#e0ffe5,stroke:#31a353,color:#000; classDef process fill:#fff3c4,stroke:#c79b00,color:#000; classDef security fill:#ffe0e0,stroke:#d63a3a,color:#000; classDef output fill:#e4d7ff,stroke:#7a4ed8,color:#000; %% ========= DIAGRAM START ========= subgraph "Attendo Systems (eCare Welfare)" welfareAPI["Welfare API (REST / Authentication)"]:::source welfareCSV["Welfare CSV Export (optional)"]:::source welfarePDF["PDF: Care Decisions (manual upload)"]:::source end subgraph "Caire Platform (AWS Stockholm - EU/EEA)" ingest["Data Ingestion Layer (API Gateway / Import Services)"]:::process validate["Validation + Normalization (Business Rules)"]:::process encrypt["Encryption & Access Controls (Transport & At-Rest)"]:::security store["Datastore