Théo Garnier

Renewal-risk scoring

Monthly scoring of accounts based on usage signals + GPT-4 narrative summary. CSMs get a prioritized list.

Renewal rate up 6 pp quarter-over-quarter.
0

Problem

CSM team was reactive — churn signals only surfaced when an account was already disengaging. By then, the save-rate was low.

Flow

Monthly cron → pull usage + support + login data → compute composite score → GPT-4 narrative → rank top-15 per CSM → Slack delivery.

Cadence

Monthly, first business day at 09:00

What I built

  • Monthly pull of usage + support-ticket + login frequency per account
  • Composite score with weighted signal contributions
  • GPT-4 generates narrative per account: why-risky + suggested next step
  • Slack-delivered prioritized list of top-15 at-risk accounts per CSM

Limits

  • Lags real-time signals — refresh is monthly, not live
  • Only B2B contracts — consumer plans are not covered by this scoring
Renewal-risk scoring

AI tools used

  • OpenAI API
  • n8n
  • Slack