Propensity Scores
Per-customer likelihood scores — to convert, to churn, to upgrade — computed from Predictive Models and served alongside the profile for use in activation.
High-Level Design
Propensity Scores turn a trained model into a per-customer number activation can act on.
💼 Business Context
- Turns a model's raw prediction into a concrete, usable number — 'this customer has a 78% churn risk' — that marketing and support can act on directly
- Improves campaign efficiency by targeting the customers most likely to respond, rather than blasting an entire segment
- Owned by Data Science, consumed operationally by Marketing and Support
🔌 Technical Overview
A daily batch job scores every active customer's feature vector through the relevant Predictive Model (churn, conversion, upgrade), writing results to marts.propensity_scores, with an on-demand scoring path through the same .NET Core Analytics/AI API for customers who need a fresher score (e.g., immediately after a high-signal event). Scores are surfaced through the Profile API so any consumer already reading profile data gets propensity alongside it without a separate integration.
Score Types
💾 Propensity Score Record
{
"customer_key": "cust_004821",
"churn_risk": 0.78,
"conversion_propensity": 0.12,
"scored_at": "2026-08-02T02:00:00Z",
"model_version": "churn_risk_v4"
}
🔗 Integration Points
- Predictive Models — supplies the trained model each score type is computed from
- Profile API — surfaces scores alongside profile reads
- Real-time Activation — segments audiences by propensity threshold for campaigns
- Reverse ETL / CDP Sync — pushes scores into CRM so sales/support see them in their native workflow
🧰 Services Consumed
- Owning microservice —
Cxos.Intelligence.Api(see the Full Application Service Map) - Database — Azure Data Explorer/Kusto (scoring time series) + Azure Database for PostgreSQL
⚠️ Non-Functional Considerations
- Scale: daily batch scoring covers the full active customer base; on-demand scoring is reserved for high-value, low-volume triggers to control cost
- Latency: batch scores are available by start of business; on-demand scores return in under 200ms
- Reliability: a scoring job failure holds the prior day's scores rather than serving nulls, so downstream campaigns degrade gracefully rather than breaking
- Security/Privacy: propensity scores are treated as PII-derived data and inherit the same access controls as the profile they are attached to
🎯 Enterprise Example
Marketing targets a win-back campaign at customers with churn_risk above 0.7 and conversion_propensity above 0.3 simultaneously — a segment that used to require a manual data-science pull now refreshes automatically every morning as part of the standard audience sync.