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.

Category
Input

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)

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

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.

You can also configure the Matching Score Importance Level on a per run basis via the Resource Optimiser Settings.

The five categories are:

Category
Description

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.

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):

    1. Highest score

    2. Best workload balance

    3. Better continuity

    4. 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?