Record an event, allocate a fee, done.

Events in TeamLedger are how money becomes obligations. Add a tournament fee, equipment order, or coach honorarium; allocate to all players, selected players, a coach, or the TM; split equally or to-the-cent custom, and TeamLedger updates every ledger in one transaction.

app.teamledger.com / Events / New
Spring Tournament
$1,000.00
Category
Tournament fee
Date
2026-04-20
Allocation10 active players · equal split
Alex Garcia$100.00
Brianna Patel$100.00
Cameron Nguyen$100.00
Devon Kim$100.00
+ 6 more players…
Distributed: $1,000.00 / $1,000.00

Four steps from receipt to ledger.

The same form handles a $40 ref payment and a $4,000 tournament registration. No mode switching, no different UI per category.

01

Pick a category

League fee, tournament, equipment, travel, ref fee, coach fee, uniforms, or other. Eight categories cover the youth-sports expense map.

02

Enter the total and date

Type the dollar amount, pick a date, add notes if helpful. The form is one screen, no wizards, no menus.

03

Choose who pays

All active players, a hand-picked subset, a single coach, or yourself when fronting an expense. Equal split is one click.

04

Save, every ledger updates instantly

Charges lock at save. New-charge emails queue automatically to both parents on each affected player.

Eight categories

The expense map of a youth-sports season.

League fee, Tournament, Equipment, Travel, Ref fee, Coach fee, Uniforms, and Other (free-text label). Eight categories cover roughly 95% of every line item we have seen on a real team budget. Each category drives sensible defaults, a Coach fee defaults to a coach payee, an Equipment line defaults to an all-players allocation, a Ref fee defaults to a per-game amount. Nothing is forced; everything is suggested.

  • League fee · Tournament · Equipment · Travel, the big four
  • Ref fee · Coach fee, paying officials and staff
  • Uniforms, the line item every season has, with sizing notes in the description
  • Other (free-text), for the genuinely unique line that does not fit anywhere
  • Category drives smart defaults but never forces a payee
  • Filter the master event list by category for end-of-season analysis
New event · category
League fee
Tournament
Equipment
Travel
Ref fee
Coach fee
Uniforms
Other
Selected · Tournament · defaults to all-players allocation

Four allocation kinds

Allocate to all, some, a coach, or yourself.

An event has to land somewhere. TeamLedger gives you four allocation kinds: All Players, Selected Players, a single Coach, or the TM (you, when fronting an expense). Within All Players or Selected Players, choose Equal Split (one click) or Custom (per-player amounts). The form refuses to save until custom amounts sum exactly to the event total, no off-by-a-penny allocations slip through.

  • All Players, entire active roster, equal or custom
  • Selected Players, hand-picked subset for partial-roster expenses
  • Coach, pay one coach for one event (game, practice, clinic)
  • TM, record an out-of-pocket expense you fronted, for later reimbursement
  • Equal split rounds cent-perfect; custom split must sum to the event total
  • "Distributed: $X / $Y" validator turns green only when the math is airtight
Allocation kind
All players
Active roster · 10
Selected players
Pick subset
Coach
One payee
TM
Out-of-pocket
Equal splitCustom
Distributed: $400.00 / $400.00

Cent-perfect rounding

$1,000 ÷ 7 never leaks a penny.

Equal splits use the splitEqually utility, every player's share rounds down to the nearest cent, then the remainder is distributed one cent at a time in last-name-ascending order until the sum equals the event amount exactly. The same algorithm runs across events, fundraisers, and redistributions, so a parent will never find a missing-cent dispute on an October statement.

  • Round-down-then-distribute-remainder algorithm
  • Last-name-ascending order picks who gets the extra penny, deterministic
  • Never leaks a cent, sum of shares always equals event total
  • Same utility used in fundraising, departure-redistribution, and refund-to-credit
  • Visible to the TM in the allocation table, no hidden math
Equal split · $1,000.00 ÷ 7 players
$142.857142… → $142.86 / $142.85
Garcia, A.$142.86
Kim, D.$142.86
Nguyen, C.$142.86
O'Brien, F.$142.86
Patel, B.$142.86
Rodriguez, E.$142.85
Smith, T.$142.85
Sum of shares · last-name asc gets the penny$1,000.00

Late-joiner recompute

A 17th player rebalances the books, cleanly.

When you add a late joiner to an equal-split event, every player's share gets recomputed against the new headcount. The original $200 charge stays on each player's ledger forever; on top, TeamLedger writes a compensating $25 credit per existing player and a fresh $175 charge for the new joiner. The append-only ledger keeps both states, so the audit trail is the chain of moves, never a single overwritten number. Custom-split events get an editable grid: you redistribute amounts row-by-row as long as they sum to the event total to the cent.

  • Late-joiner prompt triggers a clean recompute on equal-split events
  • Custom-split events keep your hand-tuned amounts; per-row editor for redistribution
  • Original charges stay forever; corrections post as compensating ledger entries
  • Database role itself blocks UPDATE / DELETE on ledger rows, audit trail is defensible
  • Cent-perfect rounding on every recompute, no $0.01 mystery deltas
Recompute on late-joiner · Spring Tournament
$1,000 / 16 players = $62.50 each
Late-joiner prompt

Devon Kim joined the team after Spring Tournament was created. New per-head share is $58.82 (= $1,000 / 17). Add Devon and recompute?

New per-player amount$58.82
Add and recomputeSkip

Each existing player gets a $3.68 credit posted as a new compensating ledger entry. Original charges stay in the audit log.

Edit & duplicate

Recurring without a scheduler.

Most "recurring" team expenses are actually annual, same tournament next spring, same uniform vendor next season, same field-rental fee every Tuesday. TeamLedger has Duplicate instead of a recurring scheduler: one click copies an event's category, amount, allocation, and notes onto a new event with today's date. You adjust whatever differs and save. Edits to existing events post compensating ledger entries, original history intact.

  • One-click Duplicate copies an event template forward
  • Adjust differences (date, opponent, fee bump) and save
  • Edit per-player amount post-creation, compensating ledger entry, not a silent rewrite
  • No event is ever deleted, cancellations are first-class, with refund-to-credit on payments
  • Master Event List shows the duplicate's lineage for end-of-season audits
Master event list · 2026 spring season
Spring Tournament
Apr 20, 2026
$1,000.00Original
Spring Tournament, duplicate
Apr 12, 2027
$1,100.00Duplicated
One-click duplicate copies category, amount, allocation, and notes.

A common workflow

Spring tournament for $1,000.

Four steps, two minutes, ten ledgers updated, twenty parents notified, all from one form save.

1

Create the event

$1,000 spring tournament. Pick category, type amount, choose date.

2

Custom split among 10 players

Goalkeeper takes a discount; the other 9 share the remainder cent-perfectly.

3

Save, charges lock

Every ledger updates atomically. Charges are immutable from this point forward.

4

Confirmation emails queue

New-charge emails go to both parents on each affected player. Both channels respected.

Total collected · season-to-date
$6,750.00
↑ $580 this week
MarAprMayJunJulAugSepOct

What you get instead.

Every line below is a conscious choice that earns its keep on a Sunday night.

Duplicate handles the recurring case cleanly.

Click Duplicate on last week's practice fee and you're a few keystrokes from this week's. None of the pause/skip/edit-future complexity a 15-player team would never use.

A clean ledger is the receipt.

TeamLedger captures dollar amounts and methods; the audit trail is the receipt. Photos live in your phone or your drive; the books carry the proof that pays at tax time.

TM reimbursement is the canonical pattern.

When you front a cost, log a TM reimbursement. No vendor table to maintain, no extra entity to keep clean. One pattern covers every who-paid-for-what.

You keep the cash flow you already have.

Parents pay you directly via cash, check, Venmo, or Zelle; TeamLedger records what came in. No processing fees, no PCI scope, no settlement waits to plan around.

Event & expense questions.

What event categories are supported?

Eight: League fee, Tournament, Equipment, Travel, Ref fee, Coach fee, Uniforms, and Other (with a free-text label). The eight cover roughly 95% of youth-sports expense types we see in real season ledgers.

When the roster changes mid-event, what happens to the existing per-player shares?

Adding a late-joiner via the explicit prompt recomputes every player's share against the new headcount, on equal-split events. Editing the event total does the same. The original ledger entries stay forever (the database role itself blocks UPDATE / DELETE on the ledger table); the recompute is realised as new compensating entries on top. For custom-split events, the per-player editable grid lets you redistribute amounts as long as they sum to the event total to the cent.

Can I edit an event after saving it?

You can edit the per-player amounts post-creation when needed, adjustments post as compensating ledger entries so the original record stays in the audit trail forever. The event amount field itself is editable too; deletions are not. Immutable history, mutable corrections, that is the principle.

How does cent-perfect rounding work?

Each player's share rounds down to the nearest cent, then the remainder is distributed one cent at a time in last-name-ascending order until the total matches the event amount exactly. $1,000 ÷ 7 produces $142.86, $142.86, $142.86, $142.86, $142.86, $142.85, $142.85, sums to $1,000.00 exactly. The same algorithm is used everywhere money is split.

Is there a recurring event scheduler?

No. Use Duplicate, every event has a one-click duplicate that copies the category, amount, allocation, and notes onto a new event with today's date. Recurring schedulers add complexity (pause, skip, edit-future-only) we deliberately left out of the MVP.

More TeamLedger features.

Seven more modules in the same ledger, every workflow a TM actually runs.

Charges lock at save

Record your first event tonight.

Free for one team, forever. Add a tournament fee and watch every ledger update in real time.

Get started free$0 forever for 1 team
Talk to a human
Events & expenses, record an event, allocate a fee, done | TeamLedger | TeamLedger