MondayKeep
For B2B SaaS founders

Every Monday: the 5 accounts most likely to churn this month

MondayKeep compares each customer with its own normal week, not with your average customer. Every flag shows the numbers behind it and tells you whether it is a risk you can fix or just noise.

US$ 29/month, cancel anytime. Works from a CSV you can export in a few minutes.

What each Monday email gives you

  • Each account against its own baselineThis week's active users vs the median of that account's previous 8 weeks, with its normal range.
  • Seats as a number and a percentFor example “-2 seats (40%)”, so a small team losing two people is not hidden.
  • Fixable risk or NoiseFailed payments, expiring cards, removed seats and downgrades are fixable. Quiet weeks inside normal variance are noise.
  • 1 or 2 reasons with the raw evidenceThe exact numbers behind each reason, plus a next step you can do this week.

Sample report

This is the exact layout of the Monday email and the dashboard.

Sample data · fictional accounts, not real customers

Sample report · week of Nov 2, 2026

The 5 accounts most likely to churn

5 accounts to look at: 4 fixable risks, 1 probably noise. 12 accounts checked against their own baselines.

  1. 1

    Northwind Labs

    acc_1001
    Fixable risk
    Risk score
    58/100
    Active users
    20 vs 39 baseline (-49%) · normal range 30–48
    Seats
    -5 seats (10%) · 45 now, 50 baseline
    MRR
    1,500
    1. Usage dropped below its normal range +40

      Evidence: 20 active users this week vs 39 baseline (median of the previous 8 weeks): -49%. Normal range 30–48. Below the normal range 2 weeks in a row.

    2. Seats removed +18

      Evidence: -5 seats (10%): 45 seats this week vs 50 baseline (median of the previous 8 weeks).

    Next step: Reach out this week: ask what changed for their team and offer a short check-in call.

  2. 2

    Pinecrest Legal

    acc_1003
    Fixable risk
    Risk score
    53/100
    Active users
    3 vs 4 baseline (-25%) · normal range 1–7
    Seats
    -2 seats (40%) · 3 now, 5 baseline
    MRR
    150 (-40% vs 250 baseline)
    1. Seats removed +27

      Evidence: -2 seats (40%): 3 seats this week vs 5 baseline (median of the previous 8 weeks).

    2. Downgraded (MRR down) +23

      Evidence: MRR 150 this week vs 250 baseline (median of the previous 8 weeks): -40%.

    Next step: Ask the account admin who left. If it was your main contact (your champion), find and onboard a new one.

  3. 3

    Blue Heron Clinics

    acc_1002
    Fixable risk
    Risk score
    50/100
    Active users
    18 vs 18 baseline (0%) · normal range 14–22
    Seats
    No change (0%) · 20 now, 20 baseline
    MRR
    800
    1. Repeated failed payments +30

      Evidence: failed_payments = 2 in the week of Nov 2, 2026 (and 1 the week before).

    2. Card expires soon +20

      Evidence: card_exp = 2026-11: valid until Nov 30, 2026, 22 days after this week ends (Nov 8, 2026).

    Next step: Email the billing contact a link to update the card before the next retry.

  4. 4

    Sunset Dental Group

    acc_1004
    Fixable risk
    Risk score
    30/100
    Active users
    11 · new account: 2 weeks of history, baseline starts after 4
    Seats
    No change (0%) · 12 now, 12 baseline
    MRR
    480
    1. Card on file has expired +30

      Evidence: card_exp = 2026-10: the card expired on Oct 31, 2026, 8 days before this week ended (Nov 8, 2026).

    Next step: Ask for a new card now, before the next invoice fails.

  5. 5

    Tiny Studio

    acc_1006
    Noise
    Risk score
    5/100
    Active users
    1 vs 2 baseline (-50%) · normal range 0–4
    Seats
    No change (0%) · 2 now, 2 baseline
    MRR
    60
    1. Tiny team, small change +5

      Evidence: 1 active user this week vs 2 baseline (median of the previous 8 weeks): -50%. Normal range 0–4. That is 1 person: too few to read as a trend.

    Why it is probably noise: No action needed. Check again next Monday.

  • 1 account has no row for this week and was not scored: Old Mill Bakery.

Download the sample data as CSV to see the input that produced this report.

How scoring works

Every account gets points from fixed rules. The same data always gives the same result. Risk score = sum of points, capped at 100. The top 5 go in the email.

SignalRuleTagPoints
Usage dropActive users at least 25% below the account's own median of the previous 8 weeks, below its normal range (median − 2 × robust spread), and at least 2 people lower. Needs 4+ weeks of history.Fixable15–45, +10 if 2+ weeks in a row
Usage stopped0 active users for 2+ weeks after normal use.Fixable15–55
Seats removedSeats below the account's own median. Shown as a number and a percent.Fixable15–45
Failed paymentsfailed_payments above 0 this week.Fixable20–40
Card expiringcard_exp month ends within 31 days of the report week (expired: 30 points).Fixable20–30
DowngradeMRR at least 10% below its own median.Fixable15–35
Paying, not using0 active users all along while MRR is above 0.Fixable25
Quiet weekA dip of 10%+ that is inside the normal range, a tiny-team change, or in line with a base-wide dip (the typical account down 15%+ the same week).Noise1–10

Robust spread = 1.4826 × median absolute deviation of the previous weeks (at least 1 person or 10% of the median), so one odd week does not distort the baseline. Noise never scores above 10; every fixable signal scores 15 or more, so fixable risks always rank first. Ties go to the account with more MRR. The rules were chosen in public, in a conversation with Grok on X.

Your data in: one CSV

One row per account per week. The first row holds the column names. Upload the last 8 to 12 weeks the first time; after that, upload only the newest week each Monday.

ColumnNeededWhat goes in it
account_idRequiredYour stable ID for the customer account (any text, up to 64 characters).
account_nameRecommendedReadable name shown in the report. Falls back to account_id.
week_startRequiredA date in YYYY-MM-DD. Any day inside the week works; rows are grouped by the Monday of that week.
active_usersRequiredPeople who used your product that week (whole number, 0 or more).
seatsRequiredPaid seats on the account that week (whole number, 0 or more).
mrrRecommendedMonthly recurring revenue for the account that week, in your billing currency (number, 0 or more).
card_expOptionalOptional. Card expiry month in YYYY-MM. Leave blank if unknown or invoiced.
failed_paymentsOptionalOptional. Failed payment attempts that week (whole number, 0 or more).

Download the CSV template

How to export this from Stripe or your database

From your database. Count distinct active users per account per week, and add the seat count and MRR you store for each account. In PostgreSQL, date_trunc('week', …) returns the Monday of the week:

SELECT a.id                AS account_id,
       a.name              AS account_name,
       date_trunc('week', e.created_at)::date AS week_start,
       COUNT(DISTINCT e.user_id) AS active_users,
       a.seats             AS seats,
       a.mrr               AS mrr
FROM events e
JOIN accounts a ON a.id = e.account_id
WHERE e.created_at >= now() - interval '12 weeks'
GROUP BY 1, 2, 3, 5, 6
ORDER BY 3, 1;

Rename the tables and columns to match yours. If you only store today's seats and MRR (no weekly history), that is fine: use the current values. Upload every Monday and MondayKeep builds the history, because new uploads merge into earlier ones.

From Stripe. The Stripe Dashboard can export customers, subscriptions and invoices as CSV. In a spreadsheet, join them by customer ID: the subscription quantity is usually your seat count, the subscription amount is your MRR, the card's expiry month and year give card_exp (write it as YYYY-MM), and failed invoice payment attempts that week give failed_payments. Usage (active users) comes from your own product data.

From a spreadsheet. Keep one tab with one row per account per week, then use File → Download → CSV.

Pricing

MondayKeep

US$ 29/month

  • Monday email with your top 5 churn risks
  • Dashboard with the same report any day you upload
  • Baseline per account, seats in number and percent, Fixable or Noise, raw evidence
  • Cancel anytime
Start · US$ 29/month

You sign in with Google, then pay on Stripe's checkout page.

FAQ

What data do I need?

One row per account per week with account_id, week_start, active_users and seats. Add account_name, mrr, card_exp and failed_payments for more signals. Most teams export it from their database or billing tool in a few minutes; the template and the guide on this page show how.

Why compare an account with itself instead of my average customer?

A 3-person agency and a 300-seat company never look alike. Average-based alerts flag small accounts every week and miss big ones sliding slowly. MondayKeep uses each account's own median of the previous 8 weeks and its usual week-to-week swing.

What does "Fixable risk" vs "Noise" mean?

Fixable risk: something you can act on this week, like a failed payment, a card about to expire, seats removed, a downgrade or usage clearly below that account's normal range. Noise: a dip that is within the account's normal swing, a tiny team where one person is on vacation, or a week when your whole customer base dipped together.

Is the score a prediction from AI?

No. It is a fixed set of rules with points, listed on this page. The same data always gives the same score, and every reason shows the numbers behind it.

Do I have to upload every week?

For a Monday email, yes: upload the newest week before Monday 13:00 UTC. New uploads merge into earlier ones, so you can upload only the latest week. If the data is more than 14 days old on Monday, you get a short reminder instead of a report.

Do you connect to Stripe or my database?

No. You upload a CSV and nothing else. MondayKeep never asks for API keys or database passwords.

What happens to my data?

It is used only to build your report. We keep the last 12 weeks, and one button on the dashboard deletes it right away.

How much does it cost?

US$ 29 per month, billed by Stripe. Cancel anytime.

Who makes this

MondayKeep is built by SaaSCron, which makes small, honest tools for people running software businesses. The product is new, so there are no testimonials here. Read the guide to churn early warning signals or look at the sample report and judge for yourself.