Good morning, Sara
18 payments failed overnight and 6 subscriptions are in their final dunning step.
Needs attention
3 openRecent billing activity
Subscriptions
Every active, trialling and cancelled subscription with its billing state.
Subscriptions
| Customer | Plan | Term | MRR | Renews | Status |
|---|---|---|---|---|---|
| Halden Group | Enterprise | Annual | $1,200 | 12 Sep 2026 | Card expired |
| Kelso Logistics | Growth | Monthly | $420 | 01 Oct 2026 | Active |
| Bracken Retail | Growth | Monthly | $420 | 01 Oct 2026 | Dunning 3 of 4 |
| Marlow Foods | Starter | Monthly | $120 | 01 Oct 2026 | Active |
| Cardan Systems | Enterprise | Annual | $1,800 | 28 Jan 2027 | Active |
| Ashby Media | Starter | Monthly | $120 | - | Cancelled |
| Sanderling Health | Growth | Monthly | $0 | 14 Sep 2026 | Trialling |
Invoices
Raised by the billing run, with tax applied by customer location.
Recent invoices
| Invoice | Customer | Net | Tax | Issued | Status |
|---|---|---|---|---|---|
| INV-24412 | Halden Group | $1,200 | $240 | 01 Sep | Payment failed |
| INV-24408 | Kelso Logistics | $420 | $84 | 01 Sep | Paid |
| INV-24402 | Bracken Retail | $420 | $84 | 01 Sep | Payment failed |
| INV-24396 | Marlow Foods | $120 | $24 | 01 Sep | Paid |
| INV-24388 | Cardan Systems | $1,800 | $0 | 01 Sep | Paid, reverse charge |
| INV-24361 | Ashby Media | $120 | $24 | 01 Aug | Credited |
Failed payments
Retry schedule and what happens when it runs out. Cancellation is never silent.
In dunning
| Customer | Amount | First failed | Step | Next retry | Reason |
|---|---|---|---|---|---|
| Bracken Retail | $504 | 22 Aug | 3 of 4 | 03 Sep | Insufficient funds |
| Halden Group | $1,440 | 01 Sep | 1 of 4 | 04 Sep | Card expired |
| Trellis Health | $504 | 24 Aug | 3 of 4 | 03 Sep | Card declined |
| Corbel Cleaning | $144 | 28 Aug | 2 of 4 | 02 Sep | Insufficient funds |
| Vellum Print | $144 | 30 Aug | 1 of 4 | 03 Sep | Do not honour |
MRR movement
New, expansion, contraction and churn. Every movement ties to an event.
August 2026 movement
| Movement | Subscriptions | MRR | Share | Driver | Trend |
|---|---|---|---|---|---|
| New business | 42 | +$8,400 | 3.0% | Self-serve signups | Strong |
| Expansion | 31 | +$3,400 | 1.2% | Plan upgrades and seats | Strong |
| Contraction | 14 | -$1,500 | 0.5% | Downgrades | Steady |
| Churn, voluntary | 9 | -$2,600 | 0.9% | Cancellations | Steady |
| Churn, involuntary | 5 | -$1,500 | 0.5% | Dunning exhausted | Fixable |
Usage
Metered consumption against plan limits, with overage before it becomes a surprise.
Above plan limit for a second month
Approaching plan limit
Well within plan
Metered accounts
| Customer | Metric | Included | Used | Overage | Action |
|---|---|---|---|---|---|
| Halden Group | API calls | 500,000 | 710,000 | $420 | Upsell |
| Trellis Health | Storage GB | 500 | 612 | $112 | Upsell |
| Kelso Logistics | API calls | 250,000 | 220,000 | $0 | Monitor |
| Cardan Systems | Seats | 100 | 104 | $80 | Auto-billed |
| Marlow Foods | API calls | 100,000 | 34,000 | $0 | Downgrade? |
Plans and pricing
Price changes never apply retrospectively without an explicit decision.
Plans
| Plan | Monthly | Annual | Included usage | Subscribers | Status |
|---|---|---|---|---|---|
| Starter | $120 | $1,200 | 100,000 API calls | 612 | Selling |
| Growth | $420 | $4,200 | 250,000 API calls | 484 | Selling |
| Enterprise | $1,200 | $12,000 | 500,000 API calls | 142 | Selling |
| Growth (legacy 2024) | $360 | $3,600 | 250,000 API calls | 42 | Grandfathered |
| Free trial | $0 | - | 10,000 API calls | 4 | Selling |
Why price changes are versioned
Silently repricing an existing customer is the fastest way to trigger a cancellation and a public complaint. A price change creates a new plan version; migrating anyone onto it is a separate, deliberate action.
- A published price cannot be edited, only superseded
- Existing subscriptions keep their agreed price indefinitely
- Migrating a cohort is explicit and reversible
- Customers are notified before a migration takes effect
- Grandfathered plans stay visible so support can explain them
- Every price change and migration is logged
Audit log
Every price change, refund and cancellation. Retained for seven years.
Events
| When | Actor | Action | Target | Source |
|---|---|---|---|---|
| 01 Sep 06:10 | System | Completed invoice run, 1,204 invoices | Billing run | scheduler |
| 01 Sep 06:20 | System | 18 payments failed, dunning started | Billing run | scheduler |
| 31 Aug 15:40 | Lena Brandt | Published Growth plan v3, new customers only | Plans | web |
| 30 Aug 11:12 | Sara Duarte | Issued credit note, reason: service credit | Ashby Media | web |
| 28 Aug 09:30 | Jonas Weber | Approved refund $420 | Bracken Retail | web |
Ostervall Retail
One subscription, its payments and its usage.
Ostervall Retail, Growth annual
The card expired in August. Two attempts failed, the dunning emails went to a finance address that bounces, and the account is still fully live on day thirty-one.
What happened
Who else could have been asked
Plan and usage
New subscription
What they are buying, on what terms, and how it bills.
The subscription
Where the bills go
A shared inbox alone is how a three-year customer goes thirty-one days unpaid without anybody knowing. The second question is the one that costs nothing and is usually left as Do nothing.
Proration and changes
- Adding seats mid-term charges the remainder of the period, not a full one
- Removing seats credits at the next renewal rather than immediately
- A plan upgrade takes effect the same day; a downgrade at renewal
- Every change is priced and shown before it is confirmed
INV-20841
One invoice: what it charges and how it was worked out.
Invoice lines
$2,529.00| Line | Description | Qty | Unit | Period | Amount |
|---|---|---|---|---|---|
| 1 | Growth seats | 240 | $10.00 | 1–31 Aug | $2,400.00 |
| 2 | Seats added 12 July, prorated | 20 | $6.45 | 12–31 Jul | $129.00 |
| 3 | Credit, seats removed 2 July | −12 | $10.00 | At renewal | $0.00 |
| 4 | Usage above included | 0 | - | August | $0.00 |
Payment attempts
What the customer has seen
Dunning
Who has not paid, what was tried, and what reached them.
Overdue
18 unreachable| Account | Overdue | Days | Attempts | Emails | Reached |
|---|---|---|---|---|---|
| Ostervall Retail | $2,400 | 31 | 2, exhausted | Both bounced | No |
| Bergqvist Holdings | $18,400 | 46 | 4, exhausted | Delivered | Opened |
| Larsen Foods | $1,200 | 12 | 2 of 4 | Delivered | No reply |
| Ferreira Group | $8,600 | 62 | 4, exhausted | Bounced | No |
| Nordvik Foods | $960 | 8 | 1 of 4 | Delivered | Opened |
A bounced dunning email should escalate to a person, not repeat. Eighteen accounts are being emailed at addresses that do not exist, on a schedule, indefinitely.
Recurring revenue
What is growing, what is leaving, and what is only unpaid.
Movement this month
Monthly recurring revenueNet growth is $19,400. Overdue revenue is nine times that and is counted as if it were collected, which is the number worth watching.
Why subscriptions churned
Involuntary churn is the cheapest churn to fix and the only one that appears in the same table as the expensive kinds. Separating it is the first honest step.
Reports: activity
Volume and throughput, by owner and by plan.
By account manager
This quarter| Account manager | Open | Closed | Median days | Overdue |
|---|---|---|---|---|
| Bela Kovacs | 184 | $118k | 2 | 4 |
| Anouk Peeters | 168 | $104k | 3 | 6 |
| Dario Mancini | 152 | $96k | 4 | 9 |
| Freya Osborne | 162 | $82k | 6 | 11 |
| Unassigned | 18 | $12k | - | 18 |
By plan
This quarterVolume over time
12 weeksMonthly recurring revenue. The line only goes up because overdue revenue is counted in it, and $184,000 of this figure has not been collected.
Reports: performance
Against target, with the gap named.
Against target by plan
100 is the targetRecovery correlates with whether a human being learned there was a problem, and with nothing else. The bottom row is not a hard segment; it is an unread one.
What moved
Rule-derivedReports: exceptions
What breached, what is late and what nobody owns.
Exceptions
62 open| Account | Overdue | Days | Why it is stuck | Ever reached |
|---|---|---|---|---|
| Bergqvist Holdings | $18,400 | 46 | Retries exhausted | Yes |
| Ferreira Group | $8,600 | 62 | Email bounces, suspending | No |
| Ostervall Retail | $2,400 | 31 | Email bounces, card expired | No |
| Larsen Foods | $1,200 | 12 | No reply to two emails | Yes |
| Nordvik Foods | $960 | 8 | First attempt failed | Yes |
A bounced dunning email should escalate to a human being rather than repeat. Eighteen accounts are being emailed at addresses that do not exist, on schedule, until they are suspended for not answering.
People
Who has an account, and what they own.
People
20 accounts| Name | Role | Region | Last active | Status |
|---|---|---|---|---|
| Miriam Cortes | Administrator | Finance systems | 6 minutes ago | Active |
| Nils Wagner | Billing manager | Finance | 20 minutes ago | Active |
| Bela Kovacs | Account manager | Commercial | 1 hour ago | Active |
| Anouk Peeters | Account manager | Commercial | 2 hours ago | Active |
| Dario Mancini | Billing | Finance | 30 minutes ago | Active |
| Sunniva Aas | Revenue | Finance | 4 hours ago | Active |
Roles
What each role is scoped to and what it may approve.
Recent changes
Why custom roles exist
- A billing clerk can credit $500 without a conversation, which covers most disputes
- An account manager can change a plan but cannot write off what is owed
- Only a billing manager suspends a subscription, and never automatically
- Nobody can delete an invoice; a cancelled invoice stays with a credit note
Roles
5 roles| Role | Type | People | Scope | Can approve to | Status |
|---|---|---|---|---|---|
| Administrator | Built in | 1 | Everything | No limit | Active |
| Billing manager | Built in | 2 | All subscriptions | Credits any amount | Active |
| Billing | Built in | 5 | All subscriptions | $500 credit | Active |
| Account manager | Built in | 8 | Own accounts | Plan changes | Active |
| Revenue | Custom | 4 | Read all, reports | - | Active |
Permissions
Every capability against every role, as enforced.
What each role can do
10 capabilities| Capability | Administrator | Billing manager | Billing | Account manager | Revenue |
|---|---|---|---|---|---|
| View subscriptions | Yes | Yes | Yes | Own | Yes |
| Create a subscription | Yes | Yes | Yes | Yes | No |
| Change a plan or seats | Yes | Yes | Yes | Own | No |
| Issue a credit to $500 | Yes | Yes | Yes | No | No |
| Issue a larger credit | Yes | Yes | No | No | No |
| Retry a payment | Yes | Yes | Yes | Yes | No |
| Suspend a subscription | Yes | Yes | No | No | No |
| Write off a debt | Yes | Yes | No | No | No |
| Delete an invoice | No | No | No | No | No |
| Read the audit log | Yes | Yes | Yes | Own | Yes |
Suspension is never automatic and never a clerk decision. An account suspended by a schedule is a customer who found out by being locked out, which is the most expensive way to be told.
Notifications
What the system sends, to whom, and when.
What is sent
Quiet hours
Notification rules are yours to set. What is here is a starting point drawn from how the queue actually behaves.
Integrations
Connected systems and their sync history.
Connected
4 connectedWhat breaks without them
- Without email delivery a bounce looks identical to silence, which is exactly how a three-year customer went thirty-one days unnoticed
- Without the CRM there is no second person to escalate a bounce to
- Without usage the fifty-two unused seats never come up before a renewal
- Billing still runs; the collecting is what stops working
Sync history
Last 24 hours| When | Source | Records | Result |
|---|---|---|---|
| Continuous | Payment provider | 684 subscriptions | 7 failed today |
| Nightly | Accounting | $412,000 | Posted |
| 06:00 today | CRM | 684 accounts | 18 without an owner |
| 06:00 today | Product usage | 684 accounts | Current |
Import and export
Bulk load and extract, with per-row validation.
Import
Validated before anything is written. A file with one bad row imports the rest and tells you which line failed and why.
Export
Recent imports and exports
Last 30 days| When | What | Rows | Result | By |
|---|---|---|---|---|
| 1 Sep 06:00 | Import | 684 | Complete | Miriam Cortes |
| 1 Sep 18:00 | Export | 2,840 | Complete | Sunniva Aas |
| 18 Aug 10:00 | Import | 96 | 92 loaded, 4 duplicates held | Dario Mancini |