Loomis
The product

Billing

What a person can change about their subscription, and what the owner has to have configured first.

/dashboard/billing is one screen with three jobs: what plan am I on, what else is there, and how do I stop. It is short on purpose, because the person using it is usually in a hurry and slightly annoyed.

What is on it

PartWhat it shows
Current planThe plan, its price, and the period it renews on
The catalogueWhat else is available, with the difference stated plainly
CancelThe way out, available without a message to anybody
Payment readinessWhether the installation can take a payment at all, read from the server

That last row is the honest one. Billing depends on a gateway being configured by the owner, and an installation without one says so here rather than offering a button that fails.

What the owner has to configure first

Plans & pricing in the panel: the plans, the prices, and which one is featured.

Entitlements: what each plan unlocks, which is what makes the difference between plans real.

Payments: a gateway, its keys, and whether it is in test or live mode. Until this exists, billing is not ready.

Invoices & receipts: after the first real payment, confirm the receipt and the invoice look right. That screen is also where a refund is issued.

Annual, and why the discount exists

Paying for a year costs less than twelve months, and the discount is a setting rather than a hard-coded number. It is a cash-flow decision more than a pricing one: a year paid up front is a year of hosting somebody else paid for. An owner who does not want annual billing can leave the option off, and the screen will only offer the periods that exist.

Cancelling, honestly

Cancelling is available in the product, without a support conversation. What a cancellation does to the current period is a policy decision the owner makes:

ChoiceWhat the person experiences
Keep the plan until the period endsThey keep what they paid for, then stop
Downgrade immediatelyThe plan ends now, and the allowance ends with it
Move to the lowest paid planThey keep an account and lose the features of the bigger one

Whichever is configured, the screen should say so before the button is pressed, and the confirmation should repeat it. A cancellation that surprises somebody is a refund request waiting to happen.

When somebody writes to you about a charge

Open Money → Invoices, search the address, and read what was actually charged and when.

Check Money → Credits for the movements behind it, if the complaint is about usage rather than the bill.

Check People → Users for the account's plan, in case a change was made and not remembered.

Refund from the invoices screen if it is owed, which is immediate and cannot be undone from here.

Refunds move money and cannot be reversed in the panel

The refund is issued through the gateway, which records it, and this installation records it too. Undoing one means charging again rather than pressing a second button, so read the row twice before confirming.