OTIF (On-Time In-Full) measures, for each customer order, whether it was delivered on time and in full at customer receipt. The pack breaks this ratio down by customer, site, product family, and channel, with gap-to-target and a 24-month rolling history.
OTIF (On-Time In-Full) measures, for each customer order, whether it was delivered on time and in full at customer receipt. The pack breaks this ratio down by customer, site, product family, and channel, with gap-to-target and a 24-month rolling history.
OTIF measures service failures after delivery; the financial consequence, such as a retailer penalty or lost sale, is already locked in before the score is calculated and reported.
(Order lines delivered OTIF / Total order lines) x 100One row per customer sales order line — customer × product × site × requested delivery date
A preview of what's actually built for this KPI — extracted from the real Implementation Pack, not a mockup.
This is the primary ratio the pack's other measures build on — trend, rank, and period-comparison variants, all on Fact_Customer_Order_Line. It guards against missing dates and values with NOT ISBLANK checks.
Fact_Customer_Order_Line — 7 mandatory columns — qty ordered, requested delivery date key, ...Dim_Customer — key + nameDim_Product — key + nameDim_Site — key + nameDim_Date — Auto-generated calendar table — no customer data requiredFull field-by-field data contract, in 4 SQL dialects (SQL Server, Snowflake, Databricks, BigQuery), ships in the pack.
| Target | 0.98 — performance considered compliant at or above this line |
| Warning | 0.95 — amber alert — triggers a review |
Both live in one Excel tab — change them, refresh the report, done. No DAX editing needed.
Everything you need to build OTIF (On-Time In-Full) in Power BI — dimensional model, DAX measures, SQL views, and a food-industry demo dataset.