Administration
Overview — Administration
The Expense module is driven by a handful of settings tables in the admin panel. Change a value here and it ripples through every claim — the stages a claim passes through, the accounting codes finance sees, the mileage and per‑diem rates, the currencies on offer, and how each person is paid. This chapter explains every setting.
Who can get here
The admin panel lives at /admin. It is reserved for administrators — roles such as system‑admin and finance‑admin (and super‑admin). Everyone else is turned away. Inside, the expense tables sit under the Expenses nav group (with Currencies under Administration).
- Expense Statuses — the workflow itself: the stages and how the app behaves at each.
- Expense Types — the catalogue of claimable types and their default accounting codes.
- Per Diems and Vehicle Rates — the allowance and mileage rates.
- Currencies — the currencies and their exchange rates.
- Expense Users — how each person is reimbursed.
⚠️ Heads up: These tables are live configuration, not reference data. Editing, reordering or deleting a row affects claims that are already in flight. Change them deliberately, ideally when few claims are mid‑workflow.
ℹ️ Good to know: Deciding who is an approver or who can process payments is a matter of roles and permissions — that is set under User Management → Roles, not in these expense tables.
Expense Statuses
Expense Statuses is the heart of the module. Each row is one stage a claim can sit in, and its settings decide how COMS behaves while a claim is there — whether it shows on the workflow bar, whether the owner can still edit, whether an approver can act in one click, and whether it appears in the payment queue.

The Expense Statuses table.
How the workflow advances
Claims move through the statuses in Order By sequence. The default chain is: Draft (1) → Department Approval (2) → Finance Review (3) → Finance Approval (4) → Processing Payment (5) → Paid (6), with Returned and Cancelled as side branches.
The settings, one by one
| Setting | What it does |
|---|---|
| Order By | The stage’s position in the chain (a unique number). Approvals advance to the next status in ascending order, so this defines the route a claim takes. |
| Name | The label shown on the status badge and the workflow bar (e.g. “Finance Review”). |
| Kind | The behaviour category that tells COMS how to treat the stage — this is the most important field. See the table below. |
| Is final | Marks a terminal stage where no further changes are possible (Paid, Cancelled). |
| Show in workflow | Whether the stage appears as a step on the claim’s status‑workflow bar. Turn off for side states you don’t want cluttering the bar. |
| Quick Approval | Lets approvers approve/reject from an inline modal without opening the full review page. Leave off for stages that need line‑by‑line review (the finance stages). |
| Owner Edit | Lets the claim’s owner edit and delete it while it sits here. On for Draft and Returned; off everywhere else so a claim can’t change under a reviewer. |
| Payment Queue | Whether claims in this status appear on the Payment Processing page. |
| Description | A short explanation, shown as helper text. |
| Color | The colour of the status badge throughout the app. |
| COG Staff | The staff member assigned to act at this stage — how the fixed finance stages (Finance Review, Finance Approval, Processing Payment) know who to route to. |
Kinds — the behaviour categories
Kind is what really drives behaviour. Two statuses with the same Name but different Kinds behave differently; two with different Names but the same Kind behave the same. The eight kinds are:
| Kind | What it means |
|---|---|
| Draft | Being prepared by the owner. The owner can edit and delete. |
| Approval | Awaiting a department approver (manager / supervisor). |
| Financial Review | Finance is reviewing or approving — this is what makes the Finance Review panel (posting date, GL coding) appear. |
| Processing Payment | Payroll is preparing the payment; the claim shows in the payment‑processing queue. |
| Completed | Fully paid. No further changes. |
| Cancelled | Terminated without payment. No further changes. |
| Returned | Sent back to the owner for corrections; the owner can edit it as if it were a draft. |
| Other | A generic review step — the assigned staff member must act before the claim advances. |
ℹ️ Good to know: The behaviours above come from the Kind, not the Name. For example, only a Financial Review kind shows the finance coding panel, and only Completed / Cancelled are genuinely terminal — so if you add a new stage, pick its Kind carefully.
💡 Pro Tip: Approval and Financial Review are the “waiting on a person” stages. These are the two kinds that send pending‑approval reminder emails and that an admin can reassign to a different approver.
⚠️ Heads up: Avoid renumbering Order By or deleting a status while claims are live — you can strand a claim between stages. Add new stages at the right position instead, and retire old ones only once nothing is sitting in them.
Expense Types & Accounting Codes
Expense Types is the catalogue of things people can claim, and — crucially — the default accounting codes attached to each. This is what pre‑fills the GL coding that finance sees at Finance Review, so getting it right here saves finance work on every claim.

Expense Types and their default GL accounts.
The fields
| Field | What it does |
|---|---|
| Title | The name the claimant picks (e.g. “Hardware Expense”, “Software Expense”). |
| Type | Which line‑item family it belongs to: Receipt, Vehicle, or PerDiem. This controls where the type appears in the claim form. |
| Resource Type (GLA) | The general‑ledger account this type posts to. Required. It is copied onto a new claim line as the default GLA at Finance Review. |
| HST Resource Type (HST GLA) | The GL account for the recoverable HST on this type. Optional, and auto‑copied onto new lines — set it for anything that normally carries tax. |
ℹ️ Good to know: The GLA and HST GLA here are defaults. A finance reviewer can still change the code on an individual claim line if a particular purchase needs to post somewhere else.
Per Diems & Vehicle Rates
Two small but important tables set the money COMS calculates automatically for Vehicle and Per‑Diem line items, so claimants never type an amount for these.
Per Diems
Each row is a per‑diem allowance the claimant can pick (Breakfast, Lunch, Dinner, Incidental).
| Field | What it does |
|---|---|
| Title | The name shown in the Per‑Diem picker on a claim. |
| Amount | The fixed allowance applied automatically when the claimant selects this per diem. |

Per Diem allowances.
Vehicle Rates
Sets the mileage rate used to turn a distance in kilometres into a dollar amount (and its HST).
| Field | What it does |
|---|---|
| Start Date / End Date | The window this rate is effective. A claim uses the rate whose window covers its transaction date, so historical claims are costed at the rate that applied then. |
| Rate per km | Dollars per kilometre. COMS multiplies the claimed distance by this and splits out the HST. |

Vehicle mileage rates, with effective dates.
⚠️ Heads up: Keep the date windows continuous and non‑overlapping. A gap means a claim on that date has no rate to use; an overlap makes the rate ambiguous. When the rate changes, end the old row the day before the new row starts.
Currencies
Currencies lists the currencies a claimant can choose on a Receipt line, and the exchange rate used to convert the amount to Canadian dollars.

Currencies and their exchange rates.
The fields
| Field | What it does |
|---|---|
| Abbreviation | The short code (CAD, USD, EUR…). Must be unique. |
| Name | The full currency name. |
| Exchange Rate (CAD) | Canadian dollars per one unit of this currency. Auto‑synced daily from the Bank of Canada; typing a value here overrides the synced rate. |
| Default Currency | Marks the system default (CAD). New claim lines start in the default currency, and all totals are expressed in it. |
ℹ️ Good to know: The table also shows Rate Updated — when the automatic sync last refreshed each rate. If it says “Never” or looks stale, the rate may be a manual override.
💡 Pro Tip: Currencies are soft‑deleted: removing one hides it from new claims but keeps it on historical claims that used it, and it can be restored from the Trashed filter.
Expense Users (Reimbursement)
Expense Users controls how each person is paid when their claims are reimbursed. It is the default that appears in the Reimbursement field finance sees at Finance Review.

Expense Users — per‑person reimbursement settings.
Editing a person
| Field | What it does |
|---|---|
| Reimbursement Method | How this person is paid back — Payroll (via ADP) or Vendor (through Accounts Payable). Leave unset and finance chooses per claim. |
| Vendor | Only shown for the Vendor method. Search for the company to pay. Leave it empty to reimburse via the default Accounts Payable vendor. |
What the list shows
- Staff — whether the user is a linked COG staff member.
- Department and ADP File # — pulled from HR, used on payroll exports.
- Completed / In Process — how many of their claims are paid vs still moving.
- Reimbursement — the current method, as a colour‑coded badge.
- Use the Has Expenses filter to hide people who have never filed a claim.
ℹ️ Good to know: This sets the default only — a finance reviewer can still switch a single claim between Payroll and Vendor at Finance Review if needed.
No comments to display
No comments to display