Skip to main content

Data Analysis Profiles

A Data Analysis Profile is a named bundle of KPIs you author in JSON without writing a plugin. Each KPI is one expression in the KPI Expression Language.

Find the admin at Admin → Data Analysis Profiles. Route: /admin/data-analysis-profiles. API: /data-analysis-profiles.

What a profile contains

{
"name": "Standard lap KPIs",
"kpis": [
{ "name": "RPMRollingAvg5s", "expression": "RollingAvg(Channel(\"RPM\"), 5)" },
{ "name": "ThrottleGate95", "expression": "GateAbove(Channel(\"Throttle\"), 0.95)" },
{ "name": "BrakePumpCount", "expression": "EdgeCount(Channel(\"Brake\"), 0.5)" },
{ "name": "PeakSpeedKph", "expression": "Max(Channel(\"Speed\"))", "dimension": "speed" }
]
}

Each KPI carries:

  • name — the column / output key
  • expression — KPI expression string
  • dimension (optional) — informs the renderer how to format the result

The admin

Master/detail layout:

  • Left — profile list
  • Right — KPI list editor; per-row name + expression + dimension picker, with a per-row Test button that pastes a sample buffer and previews the result

The Test button hits the same /data-analysis-profiles/:id/evaluate endpoint that the Plugin Runner / lap pipeline uses.

Evaluating

POST /data-analysis-profiles/:id/evaluate
{ "samples": [ { "t": 0.0, "RPM": 8200, "Throttle": 0.96, "Brake": 0.05 }, ... ] }

Returns:

{
"items": [
{ "name": "RPMRollingAvg5s", "value": 8127.4 },
{ "name": "ThrottleGate95", "value": 0.62 },
{ "name": "BrakePumpCount", "value": 4 },
{ "name": "PeakSpeedKph", "error": "unknown channel: Speed" }
]
}

Per-KPI errors are isolated — one bad expression doesn't fail the batch.

What you can do today

  • Author profiles with multiple KPIs
  • Use the per-row Test button against a sample buffer
  • Evaluate via /data-analysis-profiles/:id/evaluate
  • Reference any of the KPI engine intrinsics

What's coming

  • Auto-trigger — run a profile against every new lap (today: on-demand only)
  • Per-session aggregation — surface KPI values across all laps of a session in a registry view
  • Plugin-extension — let a plugin contribute additional KPI functions to a profile's expression scope