# Cascade

> Decomposes difficult problems into a sequence of smaller, more homogeneous ML problems

- **Category**: Machine Learning
- **Subcategory**: Problem Framing and Model Structure
- **Canonical URL**: https://designpattern.fyi/patterns/cascade/

---

## Description
**Intent**: Handle problems that are secretly several different sub-problems by breaking them into a sequence of smaller, more homogeneous ML problems that feed into each other.

**Context**: A single model asked to solve wildly different transaction types under one fraud detection umbrella can underperform compared to decomposing the problem. Lumping everything together makes evaluation and debugging harder.

**Solution**: Break one difficult problem into a sequence of smaller, more homogeneous sub-problems. A first-stage model makes a coarse, broadly applicable decision, and that outcome determines which specialized downstream model runs next and what it sees. Unlike ensembles, cascades use different models to answer different questions in sequence.



## Use Cases
- Fraud detection with different transaction types
- Content moderation with multiple severity levels
- Customer support routing to specialized teams
- Any problem with natural sub-populations needing different modeling






## Trade-offs


### Advantages

- Enables specialized models for homogeneous sub-problems

- More interpretable than a single complex model

- Can be more efficient by not running all models on all data

- Easier to debug and evaluate individual stages




### Considerations & Drawbacks

- Errors compound across stages

- Every additional stage is another moving part to maintain

- Requires end-to-end evaluation, not just per-stage

- Risk of over-engineering when simpler solutions would work







---
**Reference**: [Original Source](https://github.com/GoogleCloudPlatform/ml-design-patterns)

