Prepaid Session & Package Tracker
For anyone who sells time in blocks — tutors, personal trainers, therapists, music teachers, dog trainers, salons, coaches. Money taken up front is money you still owe in work, and the balance almost always lives in someone's head until the day a client says they had three left and you thought they had one. Each row is one package: the client and how to reach them, the package name, sessions purchased against sessions used and sessions remaining, what was paid and the price per session that implies, the purchase date, the expiry you agreed, the status from Active through Low balance to Used up, and where the payment actually landed. Be clear about the limit before you rely on it: this stores what you type, so the remaining count is a number you keep current yourself after each session, and nothing here watches the expiry date or warns you as a balance runs down. The practical trick is to update the row in the same minute you finish the session, while the client is still in front of you — a credit tracker updated weekly from memory is worse than none, because it is believed.
Your database
Fields
| Field | Type |
|---|---|
| Client | text |
| Contact (phone or email) | text |
| Package name | text |
| Sessions purchased | number |
| Sessions used (you update this) | number |
| Sessions remaining (you update this) | number |
| Amount paid | number |
| Price per session | number |
| Purchase date | date |
| Expires on (as you agreed it) | date |
| Status | select |
| Where the payment went | text |
| Last session used | date |
| Other notes | text |
Frequently asked
Where is my data stored?
Only on this device, in your browser. Nothing is ever uploaded — these lists hold client payments, medical detail and buyer records, and none of that belongs on someone else's server. Export to CSV to back it up, to print it, or to move it to another device.
Does it work anything out or check anything for me?
No. It stores exactly what you type and nothing else. It subtracts no balance, checks no value against a rule, interprets no result, watches no date, sends no message, and does nothing while the tab is closed. Silence from this tool is not a verdict — it means nobody has looked. Where a judgement matters, the professional involved is the only place it comes from.
Why record price per session when I already record the amount paid?
Because it is the number that settles a dispute and prices your next package. If someone cancels a block half-used, what you refund usually turns on the per-session rate the block implied, not on the headline price — and comparing that rate across your packages shows which discount you have quietly been giving away. Work it out yourself and type it in; nothing here divides one column by another.