Maica's Optimisation Engine
Learn about the logic behind the Engine powering Maica's Resource Optimiser and Smart Selection Filter
The below article provides a technical overview of the Optimisation Engine used within Maica. It explains how the engine evaluates Resources, applies constraints, calculates scores, and determines the most appropriate assignment during an optimisation run.
What is the purpose of the Optimisation Engine?
The Optimisation Engine is responsible for identifying and ranking suitable Resources for Appointments or Shifts. Its core objective is to produce the most appropriate allocation for each record, based on System Rules, Organisational Configurations, and Weighted Scoring Factors.
The engine:
Honours all mandatory requirements (hard constraints)
Evaluates preference-based rules (soft preferences)
Applies your configured weightings and criteria
Selects the highest-scoring valid Resource(s)
Inputs Used by the Engine
The Optimisation Engine evaluates a wide set of data from across Maica. These inputs feed into candidate filtering, scoring, and selection. Please refer to the table below to see each Input, broken down by Category.
Participant
Assigned and requested Services
Required Skills
Participant Preferences (gender, language, cultural requirements, etc.)
Travel and Mobility rules
Location and access constraints
Multi-Resource or Ratio requirements
Resource
Availability (daily and weekly)
Skills and Qualifications
Attributes (gender, language, certifications, custom attributes)
Current Workload
Contracted hours thresholds
Unavailability records
Travel requirements or limitations
Appointment / Shift
Start/End time
Duration
Service Skills
Additional Service Properties
Location (address, centre, online)
Required number of Resources (ratio)
Compliance
Mandatory Certifications
Supervision dependencies
Participant/Worker Exclusion Lists
Award/EBA labour rules
System
Weighting values in Settings → Matching Score Importance Level
Inclusion/exclusion rules in the Resource Pool
Ranking rules set via Ranking Criteria
Constraint Hierarchy
In addition to the inputs above, the Optimisation Engine processes also manages constraints in the following order:
1. Hard Constraints (Must Be Met)
These eliminate a Resource before scoring begins.
Examples:
Resource Unavailable for required time
Missing mandatory Skill or Certification
Exceeds Weekly Hour Limit or Daily Capacity
Travel not feasible (unless Travel weighting = 0%)
Participant → Resource Exclusions
Roster Mode incompatibility (e.g., Shift Resource in Appointment Mode)
If a Resource fails any hard constraint, they are removed from consideration.
2. Soft Preferences (Scored)
Once hard constraints are satisfied, the engine evaluates soft preferences and weighted factors.
Examples:
Preferred Gender or Language
Travel Distance
Balanced Workload Distribution
Non-required Skills
Custom Attribute Matches
Soft preferences never override hard constraints. They influence scoring, not eligibility.
Scoring Model
For each Resource who passes all hard constraints, the engine calculates an Overall Matching Score. The score is produced from the weighted components configured under: Settings → Matching Score Importance Level.
The five categories are:
Skills
Compares required Skills vs. the Resource's Skills. Occurrence-based; weighted only if Skills > 0%.
Availability
Validates whether the Resource has enough available hours on the specific day after subtracting existing usage.
Workload
Evaluates whether assigning this Appointment keeps the Resource within their weekly limits.
Attributes
Checks how many required attributes/Participant preferences (gender, language, etc.) the Resource satisfies.
Travel
Scores proximity relative to the closest candidate.
Each category contributes to the final score according to your weighting. All five values must total 100%.
A Resource with the highest Overall Matching Score is considered the preferred match.
How the Optimiser Runs
The Optimisation Engine operates in five main phases, each is described in the section below.
1. Pre-processing
The engine prepares data before scoring begins:
Normalises time zones and calendars
Loads Appointment details (location, duration, Skills, required ratio)
Identifies all Resources in scope based on the Resource Pool
Filters out Resources who fail any hard constraint (availability, missing Skills, certification expiry, exclusion rules, etc.)
Applies Roster Mode restrictions (Appointment Mode vs Shift Mode)
The output is a Candidate Pool for each Appointment.
2. Candidate Scoring
Each candidate is evaluated using:
Your configured Matching Score Importance Level
Ranking Criteria (rules the admin has added that impact scoring)
Attribute and preference fulfilment
Penalty adjustments (e.g., travel, workload imbalances)
Each candidate receives:
A per-category component score
A single Overall Matching Score (%)
3. Search + Selection
For multi-resource or multi-appointment situations, Maica evaluates all scored options, then assembles the most appropriate schedule by:
Selecting the highest-scoring valid Resource(s)
Applying tie-breakers (in order):
Highest score
Best workload balance
Better continuity
Lower travel distance (if Travel > 0%)
Assignments failing any hard constraint during assembly are discarded.
4. Validation
Before results are returned, Maica re-validates:
Roster Mode
Weekly limits
Daily capacity
Break requirements
Service Skills
Certifications and expiry
Conflict rules
Ratio (number of Resources required)
The engine will not propose or confirm an invalid assignment.
5. Output
For each Appointment or Shift, the engine produces:
Highest-scoring Resource(s)
Matching Scores for each Resource
Matched and unmatched criteria
Reasons for rejection (in Appointment Insights)
Alternate Resources (lower-ranked but still valid)
If no Resources meet hard constraints, the Appointment remains unfilled.
Last updated
Was this helpful?