The four numbers that matter, updated live.
TeamLedger's team dashboard is the first screen you land on after picking a team. Total expected income, total collected, total expenses paid, net cash position - plus quick actions for every workflow you do daily.
How it works
Open the team. Glance. Act. Done.
Pick a team
The dashboard loads as your landing page, no menu diving, no tabs to click.
Read the four numbers
Expected income, collected, expenses paid, net cash. Each computed from the ledger.
Take action
Five quick-action buttons cover the daily workflows. Filter the roster strip below.
Send all reminders
One click hits every parent with a balance. Cooldown bypassed for end-of-season pushes.
Capability 01
Four metrics, calculated live
Expected Income equals charges plus adjustments minus refund credits. Collected equals payments plus fundraising. Expenses Paid sums coach payouts and TM reimbursements. Net Cash is collected minus expenses paid. Every metric is computed from the ledger - not entered, not adjusted - and updates the moment any write happens elsewhere in the team.
- Expected income = charges + adjustments − refund credits
- Collected = payments + fundraising credits
- Expenses paid = coach payouts + TM reimbursements
- Net cash = collected − expenses paid
- Every number is a query against the ledger, not a stored aggregate
Capability 02
Five quick actions
The five workflows a TM runs every week sit one click away from the dashboard: Player payment, Paid coach, Add event, Fundraising, TM reimbursement. No menu diving, no nested tabs, no rebuilding muscle memory each season. The buttons are the same five every time, in the same order.
- Player payment, record cash, check, Venmo, Zelle in seconds
- Paid coach, log a coach payout against their per-event amount
- Add event, create a new charge for league fees, tournaments, equipment
- Fundraising, record a fundraiser total and split across players
- TM reimbursement, pay yourself back when you front a cost
All five buttons live on the dashboard, always in the same order. Muscle memory works across teams and across seasons.
Capability 03
The roster filter strip
Below the four metrics, every player on the team appears in a filter strip with their balance. The default sort is owe-money first - the parents who need a reminder are at the top of the list. Filter by All, Owing, Settled, or Credit and the strip narrows. One look tells you who's up tomorrow.
- Default sort: largest amount owed at the top
- Filter chips: All · Owing · Settled · Credit
- Status donut shows the team’s collection mix at a glance
- Click a player row to jump straight to their statement
- Owing· 40%
- Credit· 20%
- Settled· 40%
Capability 04
Send all reminders
One button. Every parent with a balance gets a reminder on their preferred channels - email, SMS, or both, per parent contact. The 7-day cooldown that applies to automatic weekly reminders is bypassed, so end-of-season collection drives are seconds long instead of Sunday-night long.
- One click → every owing parent → reminder queued
- Per-contact channels honoured (email_on / sms_on)
- Two parents on the same player get notified independently
- 7-day automatic cooldown bypassed for the manual button
- Notifications log records every send for audit
Press the button. Watch the queue drain. Parents get the ping; you get your Sunday back.
Capability 05
Cached for speed, never stale
Even on a 100-event season with a 25-player roster, the dashboard renders in under two seconds (NFR §6). The four metrics are cached and the cache invalidates the moment any write touches the team - payment, event, refund, fundraising credit, departure resolution. You never see a number that’s out of date.
- Sub-2s render target enforced by NFR §6
- Cache invalidates on every ledger write, no manual refresh
- Reads scale to 100+ events without slowing down
- Write-through: dashboard reflects the new state on the next paint
Sunday night check-in
Four steps, two minutes. The whole team's money picture in one screen.
Open the team
Sunday, 8:47 PM. Coffee. Laptop open. You click U12 Sharks from your team list.
Glance at the four metrics
Collected $6,750. Net cash $2,570 positive. Three players in red on the roster strip.
Click Send all reminders
Three parent contacts get a reminder on email + SMS. Cooldown bypassed.
Dashboard updates
The notifications log records six sends. Cache invalidates. You close the laptop.
What you get instead
Deliberate boundaries. Smaller surface, faster loads, less to learn before you can use it.
Four absolute-dollar metrics, not a drift-prone ratio
Collection-percentage widgets drift on cents and read as precise when they aren't. The four absolute-dollar numbers tell you the same story honestly, every time.
Same four numbers on every team
No drag-and-drop, no widget library, no "build your own". Every TM gets the same view because muscle memory across teams and seasons matters more than a custom layout.
One team per dashboard, by design
A focused view that loads fast and stays simple. Multi-team rollups for clubs and leagues sit on the League tier roadmap, when the workflow actually calls for it.
Fresh on open, not polled in the background
Numbers update on every page load and after every write, so the dashboard you see is always the current ledger. Open the team to see the latest state.
Frequently asked
How is each metric calculated?
Expected income = sum of charges + adjustments − refund credits. Collected = sum of payments + fundraising credits. Expenses paid = coach payouts + TM reimbursements. Net cash = collected − expenses paid. All four are computed from the ledger directly, no manual entry.
Are the numbers live?
They are cached for sub-second load times, but every write, payment, event, refund, fundraising credit, invalidates the cache, so the next dashboard view reflects the current state of the ledger. You will never see a stale number.
Can I see multiple teams on one dashboard?
The dashboard is per-team in MVP. Each team has its own four-metric view, its own roster filter, and its own quick actions. Multi-team rollup views are part of the League tier on the roadmap.
What does the Send all reminders button do?
It queues a payment reminder to every parent contact whose player has an outstanding balance, sent on each contact’s preferred channels. It bypasses the 7-day cooldown that applies to automatic reminders, so you can use it whenever you need a manual collection push.
Why no collection-rate widget?
A v2.2 SRS revision removed it. Collection rate (collected / expected) drifts on cent rounding and gives a false sense of precision; the four absolute-dollar metrics tell you the same story without the misleading ratio.
More features
Every workflow a TM actually runs.
Open a team. See the picture.
Free for one team, forever. The dashboard is your landing page, not a tab you have to find.