A resort sells its own rooms. An agency resells someone else's inventory — so every line you sell has two numbers, and the business is the gap between them.
Sell, net and margin
- Sell is what the traveller pays.
- Net is what you owe the supplier.
- Margin is the difference, in your base currency.
Sell and net are often in different currencies — sell in PKR against a net in USD or SAR. The exchange rate is snapshotted when the line is priced, so a rate move six months later never rewrites what a past booking earned.
Margin is back-office only. It never appears on the traveller portal, on a voucher, or on the public browse API.
Why supplier cost is accrued, not just paid
Booking a supplier and paying one are separate events, often weeks apart. If you only record the eventual payment, the cost lands in the wrong month and there is no answer to "what do we owe the airline right now?".
So confirmation posts an accrual:
Dr Cost of Sales / Cr Accounts Payable — for the net you owe, tagged with the supplier.
When you later pay the supplier, record it as an ordinary expense Payment against Accounts Payable. That debits AP and credits your bank, and the two entries net to zero — the cost stays recognised once, in the month you actually sold the trip.
Cancelling or refunding reverses the accrual, so a trip that never happened leaves nothing behind.
One-time setup
This needs two accounts mapped in Accounting Settings → Default accounts: Accounts Payable and Cost of Sales. Without them the accrual is skipped and logged.
You also need an expense category pointed at your Accounts Payable account, so supplier payouts clear the balance instead of debiting an ordinary expense account and double-counting the cost.
Reports
Travel Reports shows sales and margin by line type, margin by supplier, the visa pipeline by stage, and departure load factor — how full the seats you have already committed to are. Every money column is base currency, because that is the only way amounts in different sell currencies can be added at all.