Your model is only as good as the workflow that feeds it. Most teams obsess over algorithm selection while their data pipeline quietly rots — duplicated records, silent schema drift, and feature leakage that turns production predictions into expensive fiction.
The 9-Stage Workflow That Actually Ships
Forget academic diagrams. In production, these stages bleed into each other. The teams that ship reliably treat them as guardrails, not checkboxes.
1. Business Understanding → Problem Framing
Start with the decision, not the data. "Predict churn" is a task. "Reduce 90-day churn by 15% for enterprise accounts without increasing support headcount" is a framed problem. The latter tells you which labels matter, what latency you can tolerate, and when to retrain.
2. Data Collection → Contract-First Ingestion
Raw data arrives as logs, CSVs, API payloads, and database dumps. Define schemas as code (Protobuf, Avro, or Pydantic models) before ingestion. Enforce contracts at the boundary — reject non-conforming payloads, alert on schema changes, version everything.
3. Data Cleaning → Automated Quality Gates
Don't clean manually. Build Great Expectations or Deequ suites that run on every batch. Test for: null rates in critical columns, cardinality explosions, distribution shifts vs. baseline, and referential integrity. Fail the pipeline, not the model.
4. EDA → Hypothesis-Driven Exploration
Stop plotting everything. Start with questions: "Which features correlate with the target after controlling for seasonality?" "Where do label distributions differ across segments?" Document findings as testable hypotheses, not chart dumps.
5. Feature Engineering → Reusable Feature Store
Features are products. Version them. Document lineage. Serve them online and offline from the same definitions (Feast, Tecton, or homegrown). Prevent training-serving skew by computing features once, storing, and reusing.
| Feature Type | Example | Freshness SLA |
|---|---|---|
| User aggregation | 30-day purchase count | 1 hour |
| Real-time | session clickstream | 100ms |
| External | weather at location | 6 hours |
| Embedding | item2vec product vector | 24 hours |
6. Model Training → Experiment Tracking as Default
Every run logs: data version, hyperparameters, metrics, artifacts, and environment. MLflow, Weights & Biases, or ClearML — pick one, enforce it. No "best_model.pkl" sitting on a VM. Reproducibility is non-negotiable for audits and rollbacks.
7. Evaluation → Business Metrics First
AUC-ROC is a proxy. Measure what the business cares about: precision@k for recommendation slots, false positive cost for fraud alerts, calibration error for risk scoring. Slice evaluation by segment, time, and data quality tier.
"A model that's 99% accurate but fails on your highest-value customer segment is a 0% model for the business.
— Cassie Kozyrkov, Chief Decision Scientist
8. Deployment → Shadow, Canary, Then Promote
Never hard-cut. Shadow mode logs predictions alongside production decisions for 2 weeks. Canary routes 5% traffic with automated rollback on metric regression. Only then promote. Containerize with pinned dependencies; serve via Triton, TorchServe, or FastAPI + ONNX Runtime.
9. Monitoring → Detect Drift Before It Hurts
Monitor four signals: data drift (feature distribution shift), concept drift (P(y|x) change), prediction drift (output distribution shift), and infrastructure health (latency, error rate, throughput). Alert on statistical tests (KS, PSI) not thresholds.
✦
Your Next Sprint: Pick One Stage to Harden
You can't fix everything this week. Audit your current workflow against these nine stages. Score each 1-5 on: automation level, observability, rollback capability, and business alignment. Pick the lowest-scoring stage that blocks your next release. Instrument it. Automate one quality gate. Ship the improvement. Repeat next sprint.
The workflow isn't overhead — it's the product. Everything else is just math.










