The credit ledger
Every credit that arrives or leaves is a row you can read. What the columns mean, what the four kinds of entry are, and why some rows are struck through.
The ledger is the record of every change to your balance. It is on /account, under the balance.
It is also the source of truth. The big number on the account page is a running total kept for speed; the ledger is what it is a total of. Rows are never edited after they are written and never deleted.
The columns
| Column | What it holds |
|---|---|
| When | The date and time, in your local format. |
| What | A description, plus a badge saying what kind of entry it is. |
| Credits | The change. Grants show as +500 in green; charges show as a negative number. |
| Balance | Your balance immediately after the entry. Shows — for an entry that was not committed. |
The page shows your 25 most recent entries, newest first. There is no paging and no way to see further back from the account page. An administrator can see 50 for any user.
The four kinds of entry
| Badge | What it is |
|---|---|
| Grant | Credits arriving automatically. In practice this is your monthly allowance top-up, described as "Monthly allowance for 2026-09 (top-up to 500)". |
| Build | Credits spent by a build run, described as "Build run #42 (Barber Booking)" — the run number and the project name. |
| Adjustment | A platform administrator changed your balance by hand, up or down, with the reason they typed. |
| Purchase | Defined, but nothing in the product writes one. There is no way to buy credits. |
Struck-through rows
A row shown faded, with its description struck through and a reason in brackets, is a refused charge that was kept on purpose.
When Bookbag tries to charge you, it writes the row first and then commits it. If the charge cannot go through, the row is marked void rather than deleted — so the attempt is still visible. Two reasons appear:
insufficient_credits— the balance could not cover the charge.account_not_found— no credit account existed.
Void rows do not change your balance, which is why their Balance column shows —. They are an audit trail: a charge that was attempted and did not happen is more useful to see than one that silently vanished.
Reading a ledger usefully
To find what a project has cost you, look for Build rows naming it. Each one is a single run.
To check the top-up arrived, look for a Grant row at the start of the month. Its description names the month and the allowance it topped you up to.
To understand a balance that dropped further than you expected, find the Build rows since your last check. A run that hit the step ceiling or went in circles will stand out.
Why you might see no ledger at all
The table is only rendered when there is at least one row. A brand-new account, before its first grant and its first build, shows just the balance with nothing under it.
The administrator's view
A platform administrator can open any user's ledger from the admin credits page. It shows the same rows, 50 of them, under the heading:
Balance
<n>· tops up to<n>monthly. Newest first; struck-through rows are refused charges, kept for audit.
They can also adjust a balance, which writes an Adjustment row carrying their name and their stated reason — so an adjustment is never anonymous. See Credits administration.