Every hour billed, every balance current.
Billing that starts at the booking instead of at month end. The charge exists before the airplane moves, follows the flight when the flight changes, and lands on the member's account as line items you can read out loud without apologising.
Created by the booking. Corrected by the booking.
A draft charge is written from the booking itself — the slot's duration against the rate configured for that tail. No end-of-month reconstruction from a paper sheet.
Reschedule the flight or swap the airplane and the charge recalculates on the new duration and the new tail's rate. Change nothing that affects money and nothing is touched.
The fee is decided by how much notice you got, not by who is standing at the desk arguing. Forty-eight hours clear is not the same as ninety minutes.
Rental and instruction land on the member's account as line items, each with its own category and taxable flag.
Your rates, your meters, your rounding.
A rate per tail, from your catalogue
Rates live in your own billing catalogue, keyed to the tail. The charge uses the rate for the airplane that actually flew, and warns loudly instead of guessing quietly if a tail has no rate configured.
Instructor ground and flight rates
Ground and flight instruction are separate rates per rate name, each with its own taxable flag — because in most jurisdictions they are not taxed the same way.
Hobbs reconciled, not assumed
When an aircraft's Hobbs or tach reading changes, billing reconciles the new hours against the flight logs rather than trusting whichever number arrived last.
Money in cents
Amounts are stored as integer cents, so a rounding difference can't quietly accumulate across a season of invoices.
One charge per booking
The charge write is idempotent on the booking. A retried event, a double-click, or a redelivered message cannot bill a member twice for the same flight.
Block time, ACH, autopay
Block-time contracts with usage records, bank accounts and ACH payments, recurring charges, and stored payment methods for members who'd rather it just happen.
Overdue balances surface before they age out.
Every member has an account with a ledger and a current balance. What's outstanding is a query, not a Friday afternoon — and the unpleasant part is a job that runs whether or not anyone remembered.
Days overdue, computed
Outstanding balance is the sum of everything unpaid, and days overdue comes off the invoice's own due date. Nobody counts backwards from a calendar.
Late fees run nightly
A scheduled job walks each organisation's overdue invoices past its configured grace period and applies the late fee once, on the invoice, with an event recorded.
Membership dues generate themselves
Monthly membership invoicing is a job, not a Sunday evening. It can be switched off per organisation if your dues don't work that way.
Creating an invoice and reversing one are different powers.
- Every member See their own balance and their own invoices.
- Dispatcher Create an invoice. Cannot refund or credit.
- Billing admin Create, edit, refund, and apply credits.
- Chief instructor No refunds. Training authority is not financial authority.
Invoices are scoped to the organisation that owns them, and that scope is checked before any invoice data is returned — including on the internal service path, where the acting person's own role is resolved rather than inherited from the caller.
What's built, and what isn't.
Built: a per-organisation connection record holding encrypted credentials and the realm id, and a sync queue that a worker drains. Not built yet: the OAuth flow that would let you connect your own QuickBooks company without us. So no — you cannot switch this on today, and we would rather say that here than in a sales call.
When is a member charged for a flight?
A draft charge is created the moment the booking is made, priced from the slot duration and the rate configured for that aircraft. It is recalculated if the flight is rescheduled or moved to a different tail.
How are cancellations handled?
By notice. A student cancellation with at least forty-eight hours' notice, one with at least twenty-four, and a late cancellation are three different outcomes, and the policy is applied automatically rather than negotiated at the desk.
Can WingWrangler sync to QuickBooks today?
Not yet. The per-organisation connection record and the sync queue a worker drains are both in place, but the QuickBooks OAuth connect flow has not shipped, so this is not something you can switch on yourself right now.