Vragen in gewone taal
Vraag naar perfect order rate per maand, klant of product in de SQL Explorer met AI. De AI schrijft de SQL, jij ziet de query en voert hem zelf uit; de AI krijgt alleen metadata.
KPI · Logistiek
De perfect order rate is het percentage orders dat zonder enig probleem bij de klant aankomt: op tijd, compleet, met de juiste artikelen, onbeschadigd en zonder retour. Een order die op één punt misgaat, telt niet als perfect. Het is de strengste maatstaf voor de hele orderafhandeling.
Aantal orders zonder enige fout (op tijd, compleet, juist gepickt, onbeschadigd, geen retour) ÷ totaal aantal afgeleverde orders × 100%
In mei 2026 leverde Acme Groothandel 2.000 orders af, waarvan 1.880 op tijd en compleet. Van die 1.880 orders waren er 30 beschadigd, 25 hadden een pickfout en 15 kwamen retour, zonder overlap. Het aantal perfecte orders is 1.880 − 30 − 25 − 15 = 1.810, dus de perfect order rate is 1.810 ÷ 2.000 × 100% = 90,5%.
Fictieve cijfers van Acme Groothandel.
Een hogere perfect order rate betekent minder herstelwerk, minder klachten en lagere kosten per order. Omdat alle fouten samenkomen, zegt het cijfer pas iets als je ook ziet welke foutsoort het meest voorkomt. Vergelijk met je eigen trend en per klantgroep; leg vast welke fouten meetellen, zodat periodes vergelijkbaar blijven.
SQL & DAX
Twee voorbeelden op een fictief datawarehouse van Acme Groothandel: een query in PostgreSQL en een measure voor een Power BI-model. Pas tabel- en kolomnamen aan je eigen model aan.
WITH per_order AS (
SELECT order_id,
BOOL_AND(delivered_at::date <= promised_date) AS on_time,
BOOL_OR(complete) AS in_full,
BOOL_OR(damaged) AS damaged
FROM shipments
WHERE delivered_at IS NOT NULL
GROUP BY order_id
),
pick_errors AS (SELECT DISTINCT order_id FROM picks WHERE errors > 0),
returned AS (SELECT DISTINCT order_id FROM returns)
SELECT ROUND(100.0 * COUNT(*) FILTER (
WHERE po.on_time AND po.in_full AND NOT po.damaged
AND pe.order_id IS NULL AND r.order_id IS NULL)
/ NULLIF(COUNT(*), 0), 1) AS perfect_order_pct
FROM per_order po
LEFT JOIN pick_errors pe ON pe.order_id = po.order_id
LEFT JOIN returned r ON r.order_id = po.order_id;Perfect Order % = DIVIDE(CALCULATE(DISTINCTCOUNT(OrderDelivery[OrderID]), OrderDelivery[OnTime] = TRUE(), OrderDelivery[InFull] = TRUE(), OrderDelivery[Damaged] = FALSE(), OrderDelivery[HasPickError] = FALSE(), OrderDelivery[Returned] = FALSE()), DISTINCTCOUNT(OrderDelivery[OrderID]))In ENABLE
Vraag naar perfect order rate per maand, klant of product in de SQL Explorer met AI. De AI schrijft de SQL, jij ziet de query en voert hem zelf uit; de AI krijgt alleen metadata.
Leg de KPI vast als measure in je Power BI-model en toon hem in het portaal, met "Laatst ververst" erbij. Toegangsprofielen en optioneel row-level security bepalen wie welke cijfers ziet.
Zet de KPI als tegel in een eigen dashboard, met vergelijking met vorig jaar. De Dashboard Builder is een pilot en per klant aan te zetten.
Met de ingebouwde app Targets leg je per maand een doel voor de KPI vast, zodat je realisatie en doel naast elkaar ziet.
FAQ
Tel het aantal orders waarbij niets misging: op tijd, compleet, juist gepickt, onbeschadigd en zonder retour of klacht. Deel dat door het totaal aantal afgeleverde orders. Leg vooraf vast welke foutsoorten je meeneemt.
Het kan als benadering, maar het klopt alleen als de fouten onafhankelijk van elkaar zijn. In de praktijk gaan fouten vaak samen, bijvoorbeeld een te late en onvolledige order. Tellen per order geeft daarom een betrouwbaarder cijfer.
OTIF kijkt alleen naar op tijd en compleet. De perfect order rate voegt daar onder meer juiste artikelen, geen schade en geen retour aan toe. De perfect order rate is daardoor gelijk aan of lager dan OTIF.
In een online demo laten we zien hoe ENABLE je data veilig beschikbaar maakt en hoe je erop bouwt: een app beschrijven in de AI Builder, vragen in gewone taal, dashboards en API's. En hoe wij het voor je inrichten en beheren.