Outdoor Travel Adventures · Back Office
How the general ledger in the advisor portal works, how it stays in step with TRES while we migrate off it, and the exact routines for daily entries, month-end, and year-end.
OTA is building its own set of books inside the advisor portal so that, over time, we can run all of our accounting there instead of in TRES. The portal ledger is a standard double-entry general ledger: every event is recorded as a journal entry made of debit and credit lines that always balance.
Until the cutover, we run both systems in parallel. Most entries you post in the portal are automatically mirrored into TRES ("dual-write"), and a reconciliation report proves the two agree. You never have to key the same entry twice.
Who does what
Automated postings (client card payments, processor settlements, supplier bills, corporate-card submissions) create their own journal entries. Your job is the rest: adjustments, corrections, classification, month-end locking, year-end closing, and keeping the reconciliation clean.
All four pages are in the advisor portal's left sidebar and need the accounting role. The two you use day to day are under Finance; the two you set up once are under Settings. You can also press Ctrl K (Cmd K on a Mac) and type the page name.
| Page | What you do there |
|---|---|
| Finance → Journal Entries | Browse every entry in the ledger, drill into its lines, post a manual entry, reverse an entry. |
| Finance → Financial Statements | Run the Income Statement, Balance Sheet, Trial Balance, and Account History for any dates. |
| Settings → Ledger Settings | Classify accounts, manage GL branches, set the period lock, run the year-end close. |
| Settings → Account Roles | Tell the system which account each automated posting uses (e.g. which account is "Operating Cash"). Also holds the TRES payment-sync and backfill tools. |
Ledger Settings → Chart of Accounts
Our accounts are imported from TRES, but TRES doesn't tell us what kind of account each one is — so each account must be classified once, by hand. An account's type decides which statement it appears on and which side it normally carries a balance:
| Type | Statement | Normal balance | Examples |
|---|---|---|---|
| Asset | Balance Sheet | Debit | Bank accounts, Undeposited Funds, CC Merchant |
| Liability | Balance Sheet | Credit | Supplier Balances, Agency Corp CC Charges |
| Equity | Balance Sheet | Credit | Capital Contributions, Retained Earnings |
| Revenue | Income Statement | Credit | Sales – Tour, Sales – Service Fee |
| Cost of Sales | Income Statement | Debit | Cost of Sales – Tour, Cost of Sales – Cruise |
| Expense | Income Statement | Debit | Rent, Salaries, CC Processing Fees |
Unclassified accounts
An unclassified account still accepts postings, but its activity can't be placed on any statement. Instead of hiding it, every report shows an amber box listing unclassified accounts that hold activity — the statement is telling you it's incomplete. When you see that box, classify those accounts in Ledger Settings and re-run the report.
Native-only accounts. A few accounts exist only in our ledger and never post to TRES (Retained Earnings is the main one — TRES has no equivalent we can use). Create these with New Native-Only Account in Ledger Settings. Any account that must mirror into TRES still has to be created in TRES first and re-imported.
Account Roles page
Automated postings don't hard-code account numbers. Instead they look up a role — a named job an account holds. Exactly one account can hold each role. If a role a posting needs is unmapped, that posting quietly fails until it's mapped (the backfill tool then catches it up — see §11).
| Role | Used when… |
|---|---|
| Merchant Clearing | A client's card is charged — money is with the processor, not yet in the bank. |
| Operating Cash | A settlement batch deposits to the bank; supplier payments draw from it. |
| Client Funds Held | Trip payments received that belong to the client's trip, not to us yet. |
| Commission Revenue | We earn a fee (e.g. the curation fee). |
| Supplier Payable | A supplier bill is committed but not yet paid. |
| Commissions Receivable | Commission is earned but the supplier hasn't paid it yet. |
| Realized FX Gain/Loss | A foreign bill is paid at a different rate than committed. |
| Retained Earnings | The year-end close sweeps profit into equity (§10). |
Journal Entries page
Journal entries arrive three ways, same as in TRES: automated (the system posts them from payments, settlements, bills and card submissions), prompted (a screen pre-fills an entry you approve — corporate-card submission works this way), and manual (you build the entry yourself). Manual entries are the exception, used for beginning balances, depreciation, and adjusting or correcting entries.
| Account | Debit | Credit |
|---|---|---|
| Bank Fees (Expense) | 95.00 | |
| Cash in Bank – Chase Checking (Asset) | 95.00 | |
| Totals | 95.00 | 95.00 |
| Status | Meaning |
|---|---|
| Posted | Live in the ledger. Counts in every report. |
| Reversed | Unwound by a counter-entry. Both entries remain visible and net to zero. |
| NeedsAttention | TRES accepted it but our save needed automatic recovery. It is a real, balanced entry — a human just needs to eyeball it against TRES. Never re-post it. |
| Draft | Not yet posted; excluded from every report. |
Ledger Settings → GL Branches · used on entry lines & report filters
Branches split the Income Statement into segments (say, Leisure vs Groups). A branch can go only on Revenue, Cost of Sales, and Expense lines — balance-sheet lines never carry one. If we adopt branches, put a branch on every income-statement line so per-branch statements add up to the company total. The Income Statement and Account History both take a branch filter, including a "no branch" option that catches unassigned lines.
Journal Entries → expand the entry → Reverse Entry
Reversing posts a new entry with every debit and credit swapped, links the two together, and marks the original Reversed. If the original went to TRES, the reversal goes to TRES too, so both systems stay in agreement.
Financial Statements page — four tabs
Any date range, not just whole months. Shows Revenue, minus Cost of Sales for Gross Profit, minus Expenses for Net Income. Year-end closing entries are excluded, so a closed year still shows its full activity. Remember the ledger is cash-basis like TRES: revenue lands when money is received/settled, not when a trip is booked — so a huge booking month can look quiet here. That's expected; use reservation reports for sales-effort questions.
A snapshot as of one date: Assets = Liabilities + Equity. Profit that hasn't been through a year-end close yet appears as an italic Current earnings line inside Equity — that's why the sheet balances on any date, mid-year included. A green ✓ In balance badge confirms it; if it ever shows out of balance, the unclassified-accounts box will tell you why.
Every account with activity, each on its natural side, with grand totals that must match. This is the quickest health check of the whole ledger.
One account's ledger detail: beginning balance, every line in date order with a running balance, and the journal-entry number of each line so you can jump to the full entry on the Journal Entries page. Filterable by branch.
Ledger Settings → Period Lock
After you've reviewed a month, lock it: pick the last day of the month, add a note ("March 2027 closed"), and set the lock. From then on nothing can be posted or reversed with a date on or before it, in either system — the portal checks the lock before anything reaches TRES.
Ledger Settings → Year-End Close
The close zeroes every Revenue, Cost of Sales, and Expense account and moves the net result into Retained Earnings, so the new year's Income Statement starts fresh. The order matters:
The close is once-per-date — running it twice for the same 12/31 is refused. If entries were somehow missed, a later close only sweeps what wasn't already closed.
Account Roles page (tools) · reconciliation report
The reconciliation compares every dual-written entry in our ledger against TRES for a date range:
| Result | Meaning | What you do |
|---|---|---|
| Matched | In both systems, amounts agree. | Nothing. |
| Unsynced | In our ledger but the TRES write never completed. | Investigate; the entry may need to be keyed in TRES. |
| MissingInTres | We hold a TRES number, but TRES has no such entry. | Escalate — should not happen. |
| AmountMismatch | Both hold it, amounts differ. | Compare the two and correct with a reversal + repost. |
| LookupFailed | TRES couldn't be reached for that entry. | Re-run later; usually transient. |
Two more tools live on the Account Roles page:
Never retry a TRES-confirmed action
TRES has no void or delete. Any screen that says an entry already reached TRES — the 409 warning, a NeedsAttention status — means retrying creates a permanent duplicate there. The tools above are the safe re-run paths; a manual retry is not.