Accounting
Accounting (owner/manager only) is a tabbed page: Expenses, Payments Collected, and Payments Due. A Monthly/Yearly switcher above the tabs controls the period the P&L tiles and Payments Collected tab cover.
Expenses tab
- Dynamic Expense Calculations: Operating expense totals in P&L reports are calculated dynamically from actual payment records in the
operating_expense_paymentsledger. - One-off expenses: Includes a
"Mark as Paid Immediately"option. If unchecked, the expense is recorded as pending without an immediate cash outflow entry. Editing a non-recurring expense automatically updates its linked payment entry. - Recurring expenses: Configured with interval and next-due-date fields. When editing a recurring bill template, an optional
"Apply changes to past payments too"toggle allows staff to choose whether to update past historical payments or preserve historical records while updating future cycles. - Hard-Delete Payment Removal: Deleting an expense performs a hard deletion on all related
operating_expense_paymentsrecords, immediately updating P&L operating expense totals. - A recurring-bill reminder email (staff/owner, configurable lead time).
Always shows all expenses regardless of the Monthly/Yearly switcher above — expenses aren’t period-scoped.
Payments Collected tab
A read-only feed of receipts for the selected period — customer, invoice, service (Visa/Flight/Tour/General), amount, payment method, reference, and collection date. It shares the same period picker as the P&L tiles above it, and surfaces the exact same underlying receipt data those figures are already computed from — there’s no separate ledger or sync mechanism behind it, just a visible list over existing data. Switching to Yearly shows the whole year’s receipts, paginated. No export or drill-down into the invoice itself; use the Finance & Invoicing screens for that.
Payments Due tab
A read-only list of unpaid and partially-paid invoices — customer, invoice, service (Visa/Flight/Tour/General), total, paid, balance, status, and date. Unlike the other two tabs, this always shows every outstanding invoice regardless of the Monthly/Yearly switcher, since an overdue balance from an earlier period is still due today. The same view is also reachable from the Payments screen.
Monthly vs. Yearly view
- Monthly — the default. P&L tiles and Payments Collected cover the selected calendar month, with the usual month-by-month navigation.
- Yearly — P&L tiles are summed for the whole selected year, and a Jan–Dec breakdown table appears underneath showing Total Invoiced and Gross Profit for each month side by side. Payments Collected switches to the full year’s receipts.
P&L figures are always accurate
The Total Invoiced, Cost of Sale, Gross Profit, Operating Expenses, and Net Profit figures shown at the top of the Accounting page are computed live from invoices, costs, receipts, and expense ledgers — not from anything entered on either tab. The Cost of Sale KPI card is located on the Accounting page alongside Gross Profit, Operating Expenses, and Net Profit.
How Profit is calculated
Profit isn’t simply revenue minus cost — visa and flight/ticket invoices are counted differently, since only one of them has a real, agency-set margin line:
- Visa invoices — profit is the Consulting Fee line item only. The Visa Fee line item is a pass-through cost remitted to the embassy or vendor, not agency margin, so it’s excluded from profit even though it’s part of the invoice total. (See Quotations for where Visa Fee / Consulting Fee are set as pricing-template fields.)
- Flight/ticket invoices — profit is Total Amount − Cost Amount (the markup over what was actually paid to the airline/consolidator).
- Tour invoices — same as flight: Total Amount − Cost Amount (what was actually paid to the guider/vendor for that tour). Cost Amount is collected on every tour invoice at issue time — templated and manual tours alike — via the same internal-only “Cost Amount” field flight invoices use.
This same formula applies everywhere Profit is shown — the P&L tiles here, the Financial Dashboard, the per-staff breakdown, and Company Statistics — all driven by one server-side calculation, so these can never drift apart from each other. Every invoice carries a persisted service type (Visa, Flight, or Tour) recorded when it’s issued, rather than being guessed later from which kind of request it’s linked to — this is what makes Tour’s profit figure (and its own revenue tile below) reliable rather than silently folded into another category.
Fee breakdown
Alongside the top-level P&L tiles, the underlying report also breaks Total Invoiced down into Visa Fees, Consulting Fees, Flight Revenue, Tour Revenue, and Other Fees (any custom pricing-template line item that isn’t a Visa Fee or Consulting Fee), plus Tax and Discount totals for the period. This breakdown is what powers the pie chart on Company Statistics.