01The problem
IFCO runs a pool of reusable containers that move between growers, retailers and service centers. GPS, BLE, RFID, 2D scans and mesh IoT report where an asset was seen, but not whether it will come back.
The business needed metrics it could act on: how many containers do not return, how long they stay out and which ones are at risk right now — on a data volume expected to grow from ~70M to ~3.4B observations a day by 2030.
02The solution
I built the Non-Return Rate pipeline on Kaplan–Meier survival curves, from the first global NRR to partner-level views, and wrote the solution design that moved the fitter into a reusable internal package.
I then merged NRR-based assets at risk with dormant-stock metrics, consolidated risk levels from four to three with thresholds agreed through an RFC, and shipped the Databricks dashboard to production for North America.
The analyst journey
As presented at dbt Meetup Barcelona: Data Engineering owns signals and processing; analysts own concepts and metrics.
Key decisions
- 01
Package the method once.
The Kaplan–Meier fitter became a reusable internal package, so every NRR view relies on the same method.
- 02
Agree thresholds in writing.
Risk levels and thresholds were set through RFCs before the dashboard reached production.
- 03
Teach the statistics.
Survival analysis was explained in an internal learning session and an FAQ, so the metric could be questioned and trusted.
03Where AI fits
The metrics themselves are statistical, not generative: survival curves keep every number explainable to the business.
AI comes in on how the team works. I led the evaluation of AI coding assistants across ten developers — Cursor versus JetBrains AI Assistant — and wrote the executive summary: a dual-tool recommendation, working agreements for agent context and the risks to watch. Later trials covered Copilot and Claude Code, and I contributed shared Claude Code skills to the team catalog.
04Results
- NRR pipeline deployed and validated in development and production; the legacy pipeline was retired.
- Shrinkage rate reported week-on-week and month-on-month for the business.
Details are abstracted to respect confidentiality: internal identifiers and non-public figures are omitted.