This page is being written. The screen exists and works; the guide for it is on its way. The What is this page? button in the app has the short version.

Finance tutorials

Four real scenarios, end to end: a claim, a supplier bill, a subcontractor claim, month end.

Finance tutorials

<!-- unverified: the figures are worked examples, not taken from a running system. The controls named are the ones on the components today. Not confirmed from the components: what the client sees and presses on their portal (the Portals section covers it), and the exact timing of the Xero push after a send beyond "within a day". -->

Four scenarios, end to end. Each names the page for every step and says what Base did in between.

1. A progress claim from raised to paid

You have finished the first month on a $240,000 fitout with 5% retention capped at 5%. The client, Acme Retail, has a contact with an email address.

  1. Job → Invoicing tab. The Getting paid checklist shows the contract sum recorded, the client linked, and the schedule of values generated and locked.
  2. Claim from schedule. Enter this period's amounts: Demolition $18,000, Services rough-in $22,000. The summary shows work value $40,000, retention held $2,000, GST $3,800, total to client $41,800. Press Create draft claim.
  3. Send on the draft's row. The dialog has Acme's contact in To; press Send claim. The claim is frozen, issued today, and due on your client terms. Acme receives the PDF. Within a day it is a sales invoice in Xero: two lines ex GST, a negative $2,000 retention line, GST on the net.
  4. Acme pays $20,000 on account. Xero records it; on the next pull Base shows claim 1 part paid with $21,800 still owed, and the row says so.
  5. Acme pays the balance. Claim 1 is marked paid with the date, from Xero.
  6. Reports → Project profit & loss. Revenue recognised $40,000; cash received $41,800; the retention schedule shows $2,000 held.

If Acme had queried the claim instead, you would record Queried by the client from the row's status icon, and the claim would not be chased while queried.

2. A supplier bill from arrival to paid

Reece's $3,300 invoice for the plumbing rough-in reaches the job — pulled from Xero, read off the email, or added from the Receipts page.

  1. Nothing to do yet. The bill lands on the job Awaiting review: Reece, $3,000 ex GST with $300 GST beside it, invoice 44871. The reviewer is told.
  2. Job → Job Costs → Cost Entries. The Pending review banner says one cost awaits approval. Filter to Awaiting review, check it against the PDF, and tick the approve box. It now counts toward the plumbing line's actual, and within a day it is in Xero as a bill on the plumbing cost code's account with the job's tracking option. Had it matched an order and a recorded delivery under your policy limit, it would have approved itself as it landed.
  3. Payments → New payment run. Reece is listed with the bill, $3,000 ex GST, $300 GST, $3,300 total, and a green tick for bank details. Press Create draft run.
  4. The run. An admin presses Approve & build ABA, then Download .aba.
  5. Your bank. Upload the file as a batch payment.
  6. The run → Mark paid & send remittances. The bill is stamped paid, Reece gets a remittance advice quoting invoice 44871, and Xero records the payment against the bill from your bank account for payments.

If Reece had no bank details on file, step 3 would have held the bill back and named the reason; add the details on Reece's record in Contacts and start the run again.

3. A subcontractor claim under the Security of Payment Act

Your electrician lodges a claim for $28,000 on 2 September. Their engagement is $90,000 with 5% retention. Your response window is ten business days.

  1. The electrician uses their portal link. Amount claimed $28,000 ex GST, period ending 31 August. On the job's Subcontractor Claims tab the row reads Lodged via portal, with the schedule due date and the business days left.
  2. Your inbox (with the assessment automation on). The assistant's proposal: contract $90,000, nothing certified yet, the orders and site progress it read; it proposes certifying $28,000 in full.
  3. Certify. You agree with $26,000 because one distribution board was not fitted. Enter certified $26,000 and the reason "DB2 not installed at period end". Base holds $1,300 retention, shows net payable $24,700, and writes the approved $26,000 cost entry on the job. The electrician has not been told yet.
  4. Issue schedule. The scheduled amount is the certified $26,000 with your reason; choose Email the PDF and press Issue payment schedule. The schedule PDF lands on the job's documents and goes to the electrician. The row reads Schedule issued and the clock stops. The decision is recorded on Money → Decide with your name.
  5. Payments, on the next run, as in tutorial 2.

If nobody had issued a schedule by the due date, the row and the tab would have turned red: silence means the full $28,000 is owed.

4. Month end

It is the first of the month.

  1. Money. Read the position: what is free after obligations, the low point, the jobs that are thin or losing, and what waits on Decide. Work through Watch, worst first.
  2. Reports → Aged receivables. Chase the 31–60 bucket by email with the Chase button on Claims & Invoices; phone the 61–90 bucket. Queried claims are listed apart; deal with those on the job.
  3. Reports → Aged payables. What falls due this fortnight. Start a payment run for it.
  4. Each job's Cost Entries tab. Approve or reject what the machines recorded during the month, so next month's P&L is complete; the Reports footnote tells you how much is still waiting.
  5. Each job's Budget Lines tab → Close month. Freeze the lines at the cut-off and record each forecast's movement with its reasons.
  6. Cashflow → WIP & Margin → Draft last month. Once every live job has closed, the WIP journal is drafted; post it to Xero when the accounts are mapped.
  7. Cashflow → Cashflow Forecast. Read the balance line twelve months out. If a month goes below zero, the fix is usually a claim that could be raised earlier or a payment run that could wait.