← Back to the full chapter
Lesson

One architecture, three decision paths

Connect offers, prices and retention to constraints, experiments and measured outcomes.

2 min read40 hours / case practice planApplied extensionUpdated
Read source ↗

Use the same lifecycle and execution contract for all three cases. Only the model output changes: offer response or uplift, price-dependent demand, or churn risk, survival and retention effects.

flowchart TB accTitle: Shared business ML architecture accDescr: Prepare point-in-time snapshots, validate the case model, choose a permitted action, persist the assignment before execution, and join mature outcomes for monitoring and the next validated release. S["Point-in-time snapshots<br/>Verified training targets"] M["Validate case model<br/>Offers · prices · churn"] D["Constrained policy<br/>Include approved default"] A["Record before delivery<br/>Reserve + execute once"] F["Join mature outcomes<br/>Costs + contribution"] S --> M --> D --> A --> F F -.->|Evaluate + refresh| S classDef data fill:#EFF6FF,stroke:#3973AC,color:#17324D,stroke-width:1.5px classDef model fill:#EFF2FD,stroke:#596FC2,color:#17324D,stroke-width:1.5px classDef decision fill:#FFF5DF,stroke:#A8751A,color:#17324D,stroke-width:1.5px classDef action fill:#E9F6F2,stroke:#23866E,color:#17324D,stroke-width:1.5px classDef neutral fill:#F5F7FA,stroke:#8796A8,color:#17324D,stroke-width:1.5px class S,F data class M model class D decision class A action
Prepare point-in-time snapshots, validate the case model, choose a permitted action, persist the assignment before execution, and join mature outcomes for monitoring and the next validated release.
Diagram source
%%{init: {"theme":"base","themeVariables":{"fontFamily":"Arial, sans-serif","fontSize":"16px","textColor":"#17324D","primaryColor":"#F5F7FA","primaryTextColor":"#17324D","primaryBorderColor":"#8796A8","lineColor":"#718096","secondaryColor":"#EFF6FF","tertiaryColor":"#E9F6F2","clusterBkg":"#F8FAFC","clusterBorder":"#D6DEE8","edgeLabelBackground":"#FFFFFF"},"flowchart":{"htmlLabels":true,"nodeSpacing":18,"rankSpacing":28,"curve":"linear","padding":10,"subGraphTitleMargin":{"top":8,"bottom":12}}}}%%
flowchart TB
    accTitle: Shared business ML architecture
    accDescr: Prepare point-in-time snapshots, validate the case model, choose a permitted action, persist the assignment before execution, and join mature outcomes for monitoring and the next validated release.
    S["Point-in-time snapshots<br/>Verified training targets"]
    M["Validate case model<br/>Offers · prices · churn"]
    D["Constrained policy<br/>Include approved default"]
    A["Record before delivery<br/>Reserve + execute once"]
    F["Join mature outcomes<br/>Costs + contribution"]
    S --> M --> D --> A --> F
    F -.->|Evaluate + refresh| S
    classDef data fill:#EFF6FF,stroke:#3973AC,color:#17324D,stroke-width:1.5px
    classDef model fill:#EFF2FD,stroke:#596FC2,color:#17324D,stroke-width:1.5px
    classDef decision fill:#FFF5DF,stroke:#A8751A,color:#17324D,stroke-width:1.5px
    classDef action fill:#E9F6F2,stroke:#23866E,color:#17324D,stroke-width:1.5px
    classDef neutral fill:#F5F7FA,stroke:#8796A8,color:#17324D,stroke-width:1.5px
    class S,F data
    class M model
    class D decision
    class A action

Blue: data and outcomes. Indigo: model validation. Amber: policy decisions. Teal: delivery. Labels identify each role as well as colour.

Training targets need mature fixed-horizon outcomes or properly recorded event and censoring follow-up, as set out in the data contract. Save the original decision, assignment and relevant logging probabilities before delivery. Record delivery events separately, including nondelivery and overrides. The delivery lifecycle shows the order in detail.

The coordinator is application logic or an optimisation step. An LLM can help explain approved results or extract inputs from documents. Price, eligibility, causal effects and budget limits come from your data and rules, not from the LLM.

Start with one pipeline, a SQL snapshot job, one fitted model artifact and one batch job or API. Add a feature store, registry platform, embedding service or bandit when a concrete need justifies its running cost. The feedback loop is the architecture that matters.

Something unclear or out of date? Suggest a correction ↗

Find your next idea

Loading local search…

Search is built from this edition. No account needed.