Expenses & Approvals

Track, approve, and manage every expense your team logs against a task — now with one-click approve and un-approve directly from the board and list views.

Track every cost your team logs against a task — supplies, repairs, labor — and move it through a clear approval flow before it lands on the right property's books.

How expenses flow

Each expense moves through four stages:

  • Submitted — logged against a task by whoever did the work, waiting for review.
  • Approved — a manager has signed off on the cost. If you need to make a change, you can move it back to Submitted (see below).
  • Billed — the approved cost has been transferred to the property's ledger. This is the final step.
  • Rejected — the cost was declined (with a reason), and can be reopened later if needed.

Only owners, admins, and managers can approve, reject, or bill. Anyone on your team can submit an expense from a task.

The approval board

Open Expenses from the main menu (it's also a tab inside Tasks). You'll see a board with a column for each stage.

  • Drag a card from Submitted to Approved to sign off on it.
  • Drag an Approved card to Billed to push the cost to the property.
  • Drag anything to Rejected to decline it — you'll be asked for a reason.

Each column shows how many expenses are in it and the running total, so you always know what's waiting on you and how much is in flight.

Prefer a spreadsheet view? Switch to the Table layout to select multiple expenses and approve or bill them in bulk.

One-click approve and un-approve

You no longer need to open an expense to approve or un-approve it. Inline action buttons appear directly on board cards and list rows, so you can act without leaving your current view.

On the board (Board view)

  • Any Submitted card shows an Approve button at the bottom of the card. Click it to approve the expense instantly — the card moves to the Approved column.
  • Any Approved card shows an Un-approve button. Click it to move the expense back to Submitted if corrections are needed.

[Screenshot: Board view showing a Submitted expense card with the green Approve button at the bottom, and an Approved expense card with the amber Un-approve button]

In the table (Table view)

  • Each Submitted row shows an Approve button beneath its status badge. Click it to approve without opening the expense.
  • Each Approved row shows an Un-approve button beneath its status badge. Click it to revert the expense to Submitted.

[Screenshot: Table view showing a Submitted expense row with the Approve button under the status badge, and an Approved row with the Un-approve button]

These buttons are only visible to owners, admins, and managers. If you don't see them, check with your account owner about your role.

Un-approving an expense

Made a mistake, or does an approved expense need corrections before it goes to billing? You can move it back to Submitted without losing the underlying expense record.

You can do this from three places:

From the board (Board view)

  1. Open Expenses from the main menu.
  2. Find the Approved card you want to revert.
  3. Click the Un-approve button at the bottom of the card.
  4. The expense returns to Submitted status — the approval is cleared, and it's ready to be reviewed and approved again once any corrections are made.

From the expense detail view (main dashboard)

  1. Open Expenses from the main menu.
  2. Click any Approved expense to open its detail view.
  3. Select Reopen back to submitted from the available actions.
  4. The expense returns to Submitted status — the approval is cleared, and it's ready to be reviewed and approved again once any corrections are made.

From Table view

  1. Switch to Table view and find the approved expense you want to revert.
  2. Click the Un-approve button (or the undo icon ↩) on that expense's row.
  3. The expense returns to Submitted status — the approval is cleared, and it's ready to be reviewed and approved again once any corrections are made.

This works only for expenses that are currently Approved. Once an expense has been Billed, it's locked and can't be moved back.

[Screenshot: Approved expense detail view on the main dashboard with the 'Reopen back to submitted' action highlighted]

[Screenshot: Approved expense row in Table view with the undo icon highlighted on the right side of the row]

Reopening a rejected expense

If an expense was declined and needs to be reconsidered, you can reopen it from the same expense detail view or from the task's Expenses panel. Select Reopen back to submitted to return it to the queue for review.

Reviewing expenses in the table

When you switch to Table view, each expense row shows its own dedicated Property and Date columns — property names and dates are no longer tucked inside the expense title, so you can see at a glance which property a cost belongs to and when it was submitted.

Sorting the table

Click any sortable column header to order the list:

  • Property — sorts expenses alphabetically by property name (A → Z on first click, Z → A on second). Expenses with no property assigned always appear at the bottom.
  • Date — sorts by submission date, newest first by default. Click again to reverse the order.

Clicking the same column header a second time reverses the sort direction. Switching to a different column resets to that column's default direction. Sorting applies across all pages, so you're always working with a consistent, complete view — not just the current page.

[Screenshot: Table view showing separate Property and Date columns, each with a sort arrow in the column header]

Seeing all costs for a task in one place

When you open a parent task — say, a "Turnover" job broken into subtasks like "Replace kitchen faucet" or "Restock supplies" — the Expenses panel now shows every expense logged against the parent task and all of its subtasks together. You don't need to open each subtask individually to add up the costs.

For each rolled-up expense that came from a subtask, you'll see a small label indicating which subtask it belongs to, so you can always tell at a glance where each cost originated.

[Screenshot: Parent task expenses panel showing both direct expenses and subtask expenses, each subtask expense labeled with the subtask name]

This gives you a complete picture of what a job is costing before you approve it — including any costs your team logged deeper in the task hierarchy.

Subtask expenses and property assignment

When your tasks are organized with subtasks — for example, a main "Turnover" task broken into subtasks like "Replace kitchen faucet" or "Restock supplies" — any expense you add to a subtask is automatically linked to the same property as the parent task.

You don't need to assign the property manually. Vanio AI looks up which property the parent task belongs to and carries that through to the subtask expense, so your records stay organized from the moment the cost is logged.

This also means that when a subtask expense comes through the approvals flow, reviewers and approvers will see the correct property displayed on the expense card — no missing or blank property fields to track down before billing.

[Screenshot: Expense card for a subtask showing the inherited property name in the approval board]

Billing transfers the cost to the property

When you bill an expense, Vanio AI posts it to that property's ledger automatically, so it shows up in your accounting and owner reporting without any double entry.

An expense can only be billed once it's approved and has a property assigned. If a cost isn't linked to a property yet, assign one first — Vanio AI will prompt you.

Currencies

Expenses support USD, EUR, GBP, BGN, and CAD.

When you open the expense form, the currency is automatically pre-selected to match your account's default currency — so if your account is set up for Canadian dollars, the form opens on CAD every time. You can always change the currency for any individual expense, and your manual selection will be remembered for that entry.

Canadian property managers: you no longer need to switch away from USD on every expense. Once your account's default currency is set to CAD, the form handles it for you.

[Screenshot: Expense form showing the currency dropdown pre-selected to the account default]

Filtering and exporting

Filter the board or table by date range, category, or property. The counts and totals update to match what you've filtered.

Use Export CSV at any time to download the current view — including who submitted and approved each cost and when it was billed — for your accountant or owner statements.

On the go

The Expenses section is built for your phone. Tap a status to filter, tap any expense to open its full detail, and approve, reject, or bill it right from the bottom sheet — no desktop required.

Tips & best practices

  • Set your account's default currency early. Go to Settings → Account and confirm your primary currency. Every new expense form will pre-select it automatically, saving your team time on every entry.
  • Assign a property before approving. Expenses without a property can't be billed — catch unlinked costs at the Submitted stage to avoid delays later. In Table view, the dedicated Property column makes unassigned expenses easy to spot at a glance.
  • Approve without opening. When you're working through a backlog, use the Approve button directly on each board card or table row — it's faster than opening every expense individually. Save the detail view for expenses that need a closer look.
  • Un-approve from wherever you're working. If you approved an expense in error or the details need to change, you can revert it from the board card, the table row, or the expense detail view on the main dashboard — whichever is fastest for you. Once corrected and resubmitted, approve it again as normal.
  • Add expenses to subtasks without worrying about property assignment. If you're logging a cost on a subtask, Vanio AI automatically picks up the property from the parent task. You'll see it filled in on the expense right away.
  • Review total job costs from the parent task. Open the parent task's Expenses panel to see every cost across all subtasks in one list — no need to open each subtask one by one before approving.
  • Use the subtask label to trace a cost back to its source. When reviewing a rolled-up expense on a parent task, look for the subtask name shown beneath the expense category. Tap or click the expense for full details.
  • Sort by Property to work through a single property at a time. Click the Property column header in Table view to group all expenses for the same property together, then bulk-approve or bill them in one pass.
  • Sort by Date to catch stale submissions. Click the Date column header and sort ascending to surface the oldest, longest-waiting expenses first.
  • Use bulk actions for busy periods. Switch to Table view after a big turnover week and approve or bill multiple expenses in one go instead of card by card.
  • Add a note when rejecting. A clear reason helps your team correct and resubmit quickly without a back-and-forth.
  • Export before owner statements. Pull a filtered CSV by property and date range so your numbers are ready before you run reports.

Common questions

How do I see all the costs for a job, including its subtasks? Open the parent task and go to its Expenses tab. You'll see every expense logged on that task and on any of its subtasks in one list. Expenses that came from a subtask are labeled with the subtask name so you can tell where each cost originated.

How do I sort the expense table by property or date? Switch to Table view, then click the Property or Date column header. The list re-sorts immediately. Click the same header again to reverse the direction. The sort applies across all pages, so you're always seeing a consistent order as you page through results.

Why does the currency on the expense form change automatically? Vanio AI reads your account's default currency and pre-selects it whenever you open a new expense. If your account is set to CAD, you'll see CAD. If it's set to USD, you'll see USD. You can always change it for a specific expense — your pick won't be overwritten.

Which currencies can I use for expenses? You can log expenses in USD, EUR, GBP, BGN, or CAD. Select the currency from the dropdown in the expense form before saving.

Can I approve an expense without opening it? Yes. If you're a manager, admin, or owner, any Submitted expense shows an Approve button directly on its board card and on its row in Table view. Click it once and the expense is approved — no need to open the detail view. The same applies to un-approving: Approved expenses show an Un-approve button in both places.

Can I undo an approval after I've signed off on an expense? Yes — as long as the expense hasn't been billed yet. You have three ways to do it: click the Un-approve button on the board card, click the Un-approve button on the table row, or open the expense detail view from the main Expenses dashboard and select Reopen back to submitted. Either way, the approval is cleared and the expense returns to Submitted so you or another manager can review and re-approve it once any corrections are in place. Once an expense reaches Billed, it's locked and can't be moved back.

Can an expense be billed more than once? No. Once an expense reaches Billed, it's locked. If you need to make a correction, reject the expense and have it resubmitted with the right details.

I added an expense to a subtask and the property was filled in automatically — is that right? Yes, that's exactly how it should work. When you log an expense on a subtask, Vanio AI automatically links it to the same property as the parent task. This means the property is already set when the expense enters the approvals flow, so your managers can review and approve it without needing to assign a property first.

This guide is also relevant for:

expensesoperationsapprovalsbillingowner-reportingtasks
Last updated July 2026