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.
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 actionBlue: 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.