[Developers]

Nearest-Available-Unit Recommendation Engine

Rank every available ambulance against an active incident in real time and surface the best match to the dispatcher with a full, factor-by-factor explanation.

Category: GeospatialLast Updated: May 5, 2026
geospatialreal-time

Overview#

Rank every available ambulance against an active incident in real time and surface the best match to the dispatcher with a full, factor-by-factor explanation.

The Nearest-Available-Unit Recommendation Engine scores candidate units against a live incident using road-graph travel time, operational status, crew skill mix versus the incident's AMPDS determinant code, fatigue and shift-end proximity, fuel and equipment readiness, and current assignment load. Every candidate in the ranked list carries a structured rationale so the dispatcher retains full decision authority while the platform records the recommendation, the actual selection, and any override reason in a permanent, auditable trail.

Key Features#

  • Road-Graph Travel Time: Computes realistic ETAs from each unit's current live position to the incident location using a road-network routing engine, rather than straight-line distance, so the ranking reflects actual drive time on the network.

  • Skill-Mix Awareness: Matches crew qualifications to the AMPDS determinant, surfacing Advanced Paramedic crews for STEMI calls and paediatric-trained crews for paediatric scenes, so clinical suitability is never sacrificed for proximity alone.

  • Fatigue and Shift-End Sensitivity: Down-weights crews approaching the end of a long shift so the engine does not recommend a unit likely to time out mid-incident.

  • Fuel and Equipment Readiness: Considers reported fuel level and equipment status from vehicle telematics so a low-fuel or partially-stocked unit is flagged before it is dispatched.

  • Assignment-Load Aware: Penalises units already committed to another task or queued behind an existing assignment, giving the dispatcher a clear picture of what is genuinely free.

  • Per-Candidate Rationale: Each ranked unit carries a structured explanation of its score across every factor, so the dispatcher understands precisely why the engine ranked it where it did.

  • One-Tap Dispatch with Audited Override: The dispatcher accepts the top recommendation, selects a lower-ranked alternative, or overrides entirely and records a justification. All three paths are captured in the incident timeline.

Use Cases#

Emergency Ambulance Services#

  • Cardiac Arrest with Skill Constraint: The engine ranks an Advanced Paramedic crew above a geographically closer Basic Life Support unit when the AMPDS determinant indicates a STEMI, with the clinical rationale visible in the console.

  • Paediatric Scene: A paediatric-trained crew is surfaced even when slightly further away, with the skill-match factor clearly flagged so the dispatcher can act with confidence.

  • Multi-Incident Surge: During concurrent Priority 1 events, the engine accounts for who is already committed, preventing the same crew from appearing as available in two simultaneous recommendations.

  • End-of-Shift Window: A geographically nearest unit approaching the end of its shift is correctly demoted in favour of the next-nearest fully-available crew, reducing mid-incident crew changes.

  • Low-Fuel or Equipment Hold: A unit reporting low fuel or an out-of-service defibrillator is excluded from the top of the ranked list with the reason shown, avoiding a dispatch that would need to be recalled.

Quality Assurance and Governance#

  • Post-Incident Review: Recommendation rationale is retained alongside the dispatcher's actual selection so control-room managers can review decision quality, identify systematic bias in scoring weights, and tune the model over time.

  • Regulatory Audit: Because every recommendation, acceptance, and override is stored with a timestamp and justification, the audit record satisfies regulatory requirements for documented dispatch decision-making.

Integration#

Customers integrate the recommendation engine through the platform REST API and event stream. A tenant-scoped endpoint accepts an active incident identifier and returns a ranked array of unit recommendations, each carrying a rationale object that maps individual factor scores to human-readable labels. The same ranked list is rendered in real time on the dispatcher console.

Live vehicle positions are drawn from the platform's unified Automatic Vehicle Location (AVL) service, which normalises position and status data across telematics providers regardless of the underlying protocol the fleet hardware uses. Crew qualification and shift records are maintained in the platform's fleet management capability and referenced at scoring time.

Once the dispatcher accepts a recommendation, the platform generates the mobilisation order automatically and emits a canonical event to the incident timeline. Third-party Computer-Aided Dispatch (CAD) systems can receive this event via webhook or by subscribing to the platform event stream, enabling tight integration with existing control-room workflows without requiring screen-scraping or manual re-keying.

Override records and recommendation payloads are accessible through the platform's reporting and analytics API, supporting downstream business-intelligence tools and quality-assurance workflows.

Open Standards#

  • AMPDS (Advanced Medical Priority Dispatch System): incident determinant codes are used as the primary clinical signal for crew skill-mix matching, ensuring the ranking aligns with internationally recognised emergency medical dispatch protocols.

  • OSRM 5.x (Open Source Routing Machine): the open road-network routing engine that converts live unit positions and incident coordinates into traffic-aware travel-time estimates; supports /route and /table (travel-time matrix) endpoints.

  • OpenStreetMap / OS Open Roads: open base road-network data for the routing graph, providing coverage across Ireland and Great Britain without dependency on a single proprietary map provider.

  • GeoJSON (RFC 7946): unit positions, incident locations, and computed route geometries are exchanged in the standard GeoJSON encoding, compatible with any mapping or routing system that reads the format.

  • NMEA 0183: GPS position sentences from in-vehicle receivers are parsed using the long-standing marine and automotive positioning standard, covering the majority of commodity fleet hardware.

  • ETSI TS 102 708: vehicle telematics data from TETRA-connected fleet hardware is ingested using the ETSI intelligent-transport-systems message framing for AVL position and status.

  • SAE J2540 / J1939: heavy-vehicle CAN bus messages provide fuel level, engine status, and equipment-bay signals on fleets that expose the SAE vehicle-application-layer data.

  • OGC SensorThings API (OGC 15-078r6): live AVL observations are published to an OGC SensorThings-compatible endpoint, allowing any OGC-conformant GIS or operations platform to consume real-time unit positions.

  • CloudEvents 1.0: recommendation lifecycle events use the CNCF CloudEvents standard envelope, so downstream systems can consume them without bespoke parsing.

  • AsyncAPI 2.6: the recommendation event channel is described using the open AsyncAPI specification, enabling partner systems to generate typed clients from a published, machine-readable contract.

  • OAuth 2.0 / OpenID Connect: all API access is gated through the platform's standard OAuth 2.0 authorisation server with OIDC identity tokens, ensuring consistent tenant isolation and audit attribution.

Security & Compliance#

All recommendation requests and dispatch decisions are written to an immutable, tenant-scoped audit log. Override justifications are mandatory and stored with the recommending user's identity, supporting post-incident review and regulatory inspection. The ranked list and rationale payloads are accessible only to authenticated dispatcher roles within the incident's owning tenant. Recommendation scoring weights are configurable per tenant by authorised administrators and all weight changes are versioned in the audit trail.

Last Reviewed: 2026-05-05 / Last Updated: 2026-05-05

Ready to Build?

Get started with our APIs or contact our integration team for support.