Baltic CVM Lab Competitive pricing and retention decision intelligence · Latvia

Fairness monitoring

Selection parity, proxy strength and vulnerable-group handling

Settlement type within screen

GroupSubscribers ContactedObserved risk Raw ratioNeed-adjusted Mean ARPU
rural2,4765.94%4.89%0.950.97€19.01
town2,8835.86%4.68%0.941.00€22.17
urban6,2976.24%5.15%1.000.97€23.72

Market within screen

GroupSubscribers ContactedObserved risk Raw ratioNeed-adjusted Mean ARPU
EE2,5735.71%4.90%0.870.88€22.31
LT4,5695.80%5.03%0.880.87€22.32
LV4,5146.58%4.96%1.001.00€22.37

Product class flagged

GroupSubscribers ContactedObserved risk Raw ratioNeed-adjusted Mean ARPU
business1,3710.51%1.75%0.030.22€49.60
consumer_postpaid7,8764.29%3.17%0.281.00€21.83
prepaid2,40915.11%12.70%1.000.88€8.47

The gate — what happens when a check fails

A monitor that reports and never blocks is a dashboard, and a dashboard constrains nothing. The regulation asks what the operator does when a check fails. The gate is part of PolicyConfig, so it is inside the policy fingerprint: turning it off changes the recorded policy version, which makes “the gate was on” verifiable rather than remembered. Every firing is written to the same append-only log as the decisions it constrains.

ModeWhat it doesContacts Net marginCost of the gate
offmonitor only709€-2,762€0
blockBLOCKED — campaign not released0€0€-2,762
rebalanceREBALANCED — +19 contacts to clear the 80% need-adjusted floor728€-2,964€202

Rebalance adds contacts rather than removing them. The under-served group is brought up to the floor; the best-served group is untouched. Cutting the top group would satisfy the ratio by making everyone worse off — it would pass the check and help nobody, which is the standard way parity metrics get gamed.

Why a raw ratio is a screen, not a verdict

Product class fails the four-fifths screen hard — business sits at 0.03 of the best-served group. Adjusting for observed baseline risk moves it to 0.22, and the reason is mundane: business churns at 1.75% against 12.70% for prepaid. Unequal treatment of unequal need is not automatically unfair, and a monitor that cannot say so generates false alarms on exactly the groups it should be protecting. The residual 0.22 is still worth a human answering — it is a question the screen surfaces, not a conclusion it reaches.

Proxy strength — can any model feature reconstruct geography?

Each figure is the cross-validated AUC of a model trying to predict settlement type from that single model feature. 0.50 is chance.

Model featureAUC vs settlement
arpu_eur0.551
tenure_months0.511
contract_months_remaining0.509
app_logins_3m0.503
competitor_pressure0.503
mnp_enquiry_60d0.502
usage_trend_3m0.502
care_unresolved_6m0.501

Strongest is arpu_eur at 0.551 — barely above chance, so no feature here meaningfully reconstructs where someone lives. That is a real negative result rather than an absence of testing. It would not stay true if postcode, handset model or cell-site features were added, which is the point of running it every cycle rather than once.

Vulnerable-pattern handling

Subscribers matching the low-engagement, long-tenure pattern 92
Contact rate within that group10.87%
Contact rate elsewhere6.04%
Share suppressed by conduct rules14.13%

This is a proxy for the voice-first senior profile, which the persona library flags for exclusion from offer optimisation. The group is contacted more, not less — consistent with genuinely higher risk, but it is the case that most deserves a human decision rather than an automated one, and the agent panel that would capture that decision (§12.4) is not built.

What this page does not do

No protected characteristic is actually held. Settlement type is a crude stand-in. Age, gender and income are not in the estate, so the checks that matter most under the AI Act cannot be run here — only demonstrated in form.
No intersectional analysis. Single-attribute parity misses the combinations where disparities usually concentrate.
No threshold is enforced. The monitor reports; nothing blocks a campaign on a failed screen. Wiring it into the policy engine as a gate is the obvious next step and is deliberately not claimed.
Monitoring is not compliance. These are the instruments that make the question answerable. The answer still requires someone accountable to look.