Home/Case studies/A billing engine and client portal that approves every hour
Built and operated by us

A billing engine and client portal that approves every hour

Consulting billing is a small ERP: contracts with retainers, prepaid hours spent oldest first, overage at a contract rate, tax and currency per customer, credit notes, late fees and statements. We built it once, tested it, and run our own practice on it.

Waoo Network, our own consulting practiceProfessional services2026-10-01

The problem is familiar to any business that bills time against agreements: a monthly retainer with included hours, prepaid blocks bought ahead, overage at a contract rate, and customers in different currencies with different tax. Done in a spreadsheet, it drifts. Done in a package, it never quite fits.

We wrote the rules once, in one place, and covered them with unit tests. Everything else reads from those rules: the invoice draft, the statement, the portal balance and the reminder emails.

What we built

The pieces, each small, together an ERP.

One copy of the rules

Retainer day, included hours, prepaid spent oldest first, overage rate, tax and currency per customer, covered by tests.

Invoices as PDFs

Drafted automatically for contracts that opt in, locked when sent, with credit notes and late fees handled.

Dunning without a person

New-invoice notices, three overdue reminders, monthly statements and low-hours alerts, sent by a job that never emails twice.

Pay online and autopay

Card and US bank through Stripe or Square; a saved card is charged when an invoice is sent.

Approve the work

A client approves the hours or asks a question on any line while the invoice is a draft.

Quotes

Drafted and sent by staff, accepted or declined by the client with a note, in the portal.

How it came together

In the order it was built.

Rules first

tested

The billing math as a library with tests, before any screen existed.

Invoices and PDFs

staff side

Draft, add work and expenses, lock and send, record payments.

The portal

client side

Overview, invoices, pay, autopay, approve, quotes, prepaid hours, requests.

The jobs

two hosts

Drafting, notices and autopay as background jobs with a single leader so nothing runs twice.

Why it matters to you

What this proves.

Why does a consulting billing system matter to a distributor?

Because it is the same problem shape: agreements, activity against them, invoices, payments and the exceptions between. The engine, the portal and the payment stack are what your dealer portal or 3PL billing is built from.

Is it really used?

Every invoice we send and every payment we receive goes through it, which is the strongest test a system gets.

Can we see it?

The client-portal page shows what a client sees. After the first quote you get your own login to it.

Want your customers paying and approving like this?

Thirty minutes, no obligation. We reply within one business day.