OPERATIONAL DATABASE
                              │
       ┌──────────────────────┼──────────────────────┐
       │                      │                      │
       ▼                      ▼                      ▼
    Policies                Claims              Complaints
    Payments                Contacts            Customers
       │                      │                      │
       └──────────────────────┼──────────────────────┘
                              ▼
                     PREDICTION MOMENT
                    30 days before expiry
                              │
             Use only data available before here
                              │
                              ▼
                    FEATURE ENGINEERING
       ┌──────────────────────┼──────────────────────┐
       │                      │                      │
       ▼                      ▼                      ▼
  Numeric features      Category encoding     Aggregations
  Premium               Motor → [1,0,0]       Claims last year
  Customer age          Health → [0,1,0]      Complaints last 90d
  Renewal count         Life → [0,0,1]        Avg payment delay
       │                      │                      │
       └──────────────────────┼──────────────────────┘
                              ▼
                       FEATURE VECTOR
             [0.37, 42, 3, 1, 0, 0, 2, 1, 5.4]
                              │
                              ▼
                          ML MODEL
                              │
                              ▼
                 NON-RENEWAL RISK = 0.78

SQL-versus-AI boundary:

Expiry in next 30 days?
        │
        └── Exact rule → SQL

Likelihood of not renewing?
        │
        └── Pattern learned from history → ML

What action should happen?
        │
        └── Approved business workflow → C#/SQL