How it worksOne engine keeps running totals for everything your product tracks, and answers the moment something changes.
EventTotalAnswerDecision
AggregationsCount anything, per anything, over any windowReal timeAnswers in your app, pushed to your systemsDecisionsYour rules first, AI for the restWorkspaceBuild, test and change without codeSecurityIsolated, private, on record
Acme
Globex
Initech
Usage & limitsKeep usage live for every account and act before a customer hits a wall.
How much of their plan has each account used this month?
→ Warn the owner at 80 %
Customer insightEngagement, churn signalsTrust & safetyAbuse, fraud, account securitySaaSUsage and engagementBanking & fintechLimits, risk, KYCE-commerceOrders and returnsIoT & industryReadings and silenceGamingFair, safe playMobilityFleets and driversAll use cases
QuickstartTwo calls in your hot path: send events, ask questions.
POST /v1/events
POST …/profiles/usage_check:evaluate
→ { "reasons": ["near_limit"] }
DocsConcepts and guidesAPI referenceEvery endpointTechnical overviewArchitecture and limitsAuthenticationKeys, OAuth, workload identitySelf-hostingHelm and Docker Compose
SecurityA database per customer, scrambled identifiers, everything on record.
Acme
Globex
Initech
DeploymentShared, dedicated, your cloudPlatformsLive numbers for your own customersContactTalk to a personChangelogWhat we shipped
Pricing
Product
How it worksFrom events to live numbers to actionAggregationsCount anything, per anything, over any windowReal timeAnswers in your app, pushed to your systemsDecisionsYour rules first, AI for the restWorkspaceBuild, test and change without codeSecurityIsolated, private, on record
Use cases
Usage & limitsQuotas, plans, meteringCustomer insightEngagement, churn signalsTrust & safetyAbuse, fraud, account securitySaaSUsage and engagementBanking & fintechLimits, risk, KYCE-commerceOrders and returnsIoT & industryReadings and silenceGamingFair, safe playMobilityFleets and driversAll use cases
Developers
QuickstartYour first live numberDocsConcepts and guidesAPI referenceEvery endpointTechnical overviewArchitecture and limitsAuthenticationKeys, OAuth, workload identitySelf-hostingHelm and Docker Compose
Company
SecurityHow your data is kept apartDeploymentShared, dedicated, your cloudPlatformsLive numbers for your own customersContactTalk to a personChangelogWhat we shipped
Pricing
Sign inRequest access

Turn every event into a live number you can act on — for any industry, in any region.

Request access

Product

  • How it works
  • Events and answers
  • Decisions
  • Pricing
  • FAQ

Use cases

  • Usage & limits
  • Banking & fintech
  • Operations & IoT
  • Trust & safety
  • All use cases

Developers

  • Docs
  • API reference
  • Quickstart
  • Technical overview

Company

  • Security
  • Deployment
  • Platforms
  • Contact
  • Changelog
© 2026 AggrelisTermsPrivacyCookiesData centers worldwide
Use cases · By industry

Every driver, vehicle and courier, counted as they move.

Know how long each driver has driven today in their own time zone, which vehicles have stopped moving and how many deliveries each courier made, before you hand out the next job.

Request accessSee the questions
Live questions · illustrative
How long has this driver been on the road today?Driving time · today
% of 9 hours28 %
Stop new jobs
watching
Is this vehicle still sending its position?Fleet · positions
heartbeatslive
Call the driver
watching
How many deliveries has this courier made today?Couriers · incentives
11/ 30 · today
Unlock the day's bonus
watching
What you can ask

The questions this answers

Typical questions, each with the window it usually looks at. Thresholds are starting points you set yourself.

  • Driving time

    How long has this driver driven today and this week, against the limits you plan with?

    calendar day and week, driver's time zone
  • Deliveries per courier

    How many deliveries did this courier complete today?

    calendar day, courier's time zone
  • Earnings this week

    How much has this courier earned since Monday, to the cent?

    calendar week, courier's time zone
  • Idle vehicles

    Which vehicles have not moved for four hours?

    no moving position for 4 hours
  • Far from its depot

    Is this vehicle's latest position more than 50 km from its depot?

    latest position against the depot's
  • Missing deliveries

    How often has this address reported a delivery as not received?

    rolling 90 days, per address
Worked example

Offer a job only to a driver with time left

Dispatch has a 90-minute job, and the nearest driver has driven 7 h 50 today. Before assigning it, dispatch asks Aggrelis about the driver with the job's length; the answer says it would pass the day's limit, so the job goes to someone else. The limits are values you set; your tachograph data stays the record.

  • Send each driving period when it ends, with the driver and its minutes
  • Define minutes per calendar day and week in the driver's time zone, and conditions for your limits
  • Ask about the driver before assigning a job, passing the job's estimated minutes
  • Act: assign the job, or offer it to a driver with time left
POST /v1/events
{
  "id": "drv_5521_0412",
  "type": "driving_ended",
  "ts": "2026-10-22T14:05:00Z",
  "attrs": {
    "driver_id": "d_5521",
    "vehicle_id": "v_309",
    "minutes": 95
  }
}
POST /v1/admin/profiles
{
  "name": "driver_hours",
  "description": "Driving time against the limits you plan with",
  "spec": {
    "entity": "driver",
    "input": [{"name": "jobMinutes", "type": "int"}],
    "features": {
      "drivenToday": {"state": "minutes_by_driver",
        "window": {"calendar": "day", "tz": "subject.timezone"}},
      "drivenThisWeek": {"state": "minutes_by_driver",
        "window": {"calendar": "week", "tz": "subject.timezone"}}
    },
    "derived": [
      {"name": "minutesLeftToday", "expr": "540 - drivenToday"}
    ],
    "reasons": [
      {"name": "job_passes_daily_limit",
       "when": "drivenToday + input.jobMinutes > 540"},
      {"name": "job_passes_weekly_limit",
       "when": "drivenThisWeek + input.jobMinutes > 3360"}
    ]
  }
}
POST /v1/entities/driver/d_5521/profiles/driver_hours:evaluate
{
  "entity": {"type": "driver", "id": "d_5521"},
  "values": {
    "drivenToday": 470,
    "drivenThisWeek": 2410,
    "minutesLeftToday": 70
  },
  "reasons": ["job_passes_daily_limit"],
  "degraded": [],
  "skipped": [],
  "profileVersion": "driver_hours@v1",
  "evaluatedAt": "2026-10-22T14:31:07.903114620Z"
}
Illustrative. Field names are examples.
What it uses

The parts of Aggrelis behind it

Nothing built for one industry: the same building blocks, configured for this job.

  • The driver's own day

    Calendar days and weeks start at each driver's local midnight, from a time zone you keep with them.

  • Ask with what you know

    Pass the job's length with the question, and the answer says whether it still fits.

  • Absence triggers

    Be told when a vehicle stops sending positions, or has not moved for hours.

  • Latest position and distance

    Keep each vehicle's last position and measure how far it is from its depot.

  • Exact earnings

    Courier earnings kept to the cent, per day, week or month in their own time zone.

  • Change without a release

    Operations set the limits and change them in the workspace, with every version kept.

Related

Often used together

  • IoT & industryReadings and silenceHas this machine stopped reporting?
  • E-commerceOrders, returns, sellersHow many orders did this customer place this week?
  • Usage & limitsQuotas, plans, meteringHow much of their plan has each account used this month?
Early access

Your first live numbers, configured not coded

Tell us what you would count first, and we'll help you set it up.

Request accessSee how it works