What shipped

The Money That Used to Disappear

A member sends a $240 check against a $120 bill. They’re paying the year ahead. That’s normal behavior, not a mistake. The clerk records $240 collected, $120 applied.

The other $120 was booked nowhere. Not to cash, not to a liability. Nowhere.

The journal entry balanced perfectly, so nothing complained. The system posted the applied amount and quietly dropped the difference. The bank statement said one thing, the books said another, and the gap only showed up at reconciliation as a difference nobody could explain.

The software was internally consistent and externally wrong.

And internal consistency is exactly what stops anyone noticing.

What changed

Cash collected beyond what a payment applies is now recorded as what it is: a prepayment. It posts to Deferred Revenue, a liability. The customer’s money is on the books as service you owe them.

That $240 check now writes three lines, not two:

AccountDebitCredit
Cash$240.00
Accounts Receivable$120.00
Deferred Revenue$120.00

The highlighted line is the one that used to be missing. Before, the entry was $120 and $120 — balanced, and $120 short of the bank.

BasicBMS Receive payment dialog: $800 against $650 owed, two bills applied and $150 held as credit. Below, the general ledger shows the three-line entry: Business Checking debited $335, Accounts Receivable credited $185, Deferred Revenue credited $150.
An $800 payment against $650 owed: both bills paid, $150 held as credit. The three-line entry puts the credit in Deferred Revenue instead of nowhere.

Before

Post what was applied. Drop the rest. The entry balances, so nothing complains — until the bank doesn’t match.

Now

The extra is a credit owned by a named customer, held in Deferred Revenue, and drawn down against their next invoice.

The credit comes back on its own. When that customer’s next invoice posts, the credit is drawn down against it, oldest credit first. If it covers the whole bill, the invoice reads paid with nobody re-keying anything. If it covers part, the rest stays open.

The same goes for bank reconciliation. One deposit bigger than the invoice it’s matched to used to be refused. Now it applies what the invoice can take and carries the rest to Deferred Revenue. The split-deposit change handled one deposit spread across several invoices. This handles one deposit bigger than the invoice.

A customer paying ahead on a bill that’s already settled? The cash is still booked, and the whole amount becomes credit.

Here’s how to actually do it: How to record a customer prepayment.

Why this is the part that matters

A prepaying customer’s balance is not a negative receivable.

Booking it as negative AR gets both sides of the balance sheet wrong. That member doesn’t owe you minus $120. You owe them $120 of service. One is a receivable you’d chase. The other is a liability you deliver against.

So a customer holding a credit shows nothing owing in AR aging and, separately, a credit balance under Deferrals. Both numbers are right. The longer version: Why a customer prepayment isn’t a negative receivable.

We found this by trying to close a year of books

Nobody notices money that was never recorded. The bug was invisible in normal operation.

It showed up when we rebuilt a real customer’s 2026 books, invoice by invoice, and one member’s closing balance wouldn’t reconcile.

Software that balances is not the same as software that is correct.

It refuses to guess

If a company hasn’t mapped a Deferred Revenue account, a payment with an excess saves but does not post. It sits on the Unposted Items report until someone maps the account. Silence is how the original bug survived, so the fix doesn’t stay silent. New companies get a Deferred Revenue account mapped from the start.

Bank reconciliation is stricter: with no account mapped, it won’t accept the extra at all.

And a collected amount that comes in short of what’s applied is rejected as a typo, not treated as anything clever:

Amount collected ($1,165.00) is less than the amount applied plus surcharge ($1,175.00).

What this doesn’t do. Cash that arrives with no invoice at all still goes through bank reconciliation — there’s nothing to apply it to.

And a customer’s credit is used on their next invoice. Nothing here pays it back out to them.

Still modular

Start with what you run. Six core modules — Customers, Employees, Suppliers, Payables, Invoices, and a full general ledger — for $150 a month. Add Work Orders, Communication, or Projects for $25 each. Every user included, no per-seat games, no forced bundles.

Implementation is a one-time build: we configure your modules around your workflow and load your data, so you don’t start on a blank screen.

BasicBMS

Business software as unique as your business.