You track maintenance spend per property by recording every vendor bill as a payable invoice on the work order it paid for. The work order carries the job and the building, the invoice carries the amount and the vendor, and the books carry the total, so the cost of one job, one building, or one quarter is a lookup rather than a search. The bill is paid once; the record of what it bought is used all year.
You know what the boiler job cost, because you approved the bill and paid it. The contractor was paid on terms and the owner was invoiced for the work; nothing about that is loose. What the file cannot produce in one place is what that building has cost this year, because the bill was coded to repairs and the job stayed in an email subject line. Every dollar of maintenance you spent this year is on a bank statement. Which building each dollar belongs to is not.
What tracking maintenance spend per property means
Maintenance cost tracking is the practice of recording every repair and service bill against the job it paid for and the building the job belongs to, so spend can be read per job, per building, and per period. Three questions test it: what did this job cost, what has this building cost this year, and what do we owe contractors right now. A ledger alone answers the third; a spreadsheet alone answers none of them for long, because the job and the building are facts about the work, and the work lives in the work order.
The invoice itself, the Pay Now link it can carry, and the posting it triggers are covered in Property Management Invoicing: Residents, Owners, Contractors. This article is the cost side of that record: the bill you owe, the job it paid for, and the building that carries both.
Why the spreadsheet loses the building
A maintenance bill arrives by email as a PDF, is approved in a reply, paid from the bank, and coded to a repairs line in whichever tool holds the books. Each step is correct, and each was built around the vendor's need, which is to be paid. None was built around the question that arrives months later: what did the money buy, and where.
So the owner's repair invoice is rebuilt by hand from the contractor's bill, and the owner sees a round number first. The building's own total is produced once a year from a search through email and bank statements, and one bill filed under the wrong address moves that building's margin by the size of the bill. The part bought on a card at the hardware store shows up nowhere, so the number everyone trusts is low by exactly the amount nobody can name.
The work order is the unit of cost
A maintenance cost has four records, each answering a different question. The table lists what each has to carry for the per-property total to come out of the system rather than out of someone's memory.
| Record | What it answers | What it has to carry |
|---|---|---|
| Work order | What the job was, where, and who did it | The building, the originating request, the contractor, the dates, and the files |
| Payable invoice | What the job cost and who is owed | The work order, the contractor, the lines as billed, the tax, the due date, and the bill attached |
| Receivable invoice | What is recharged, and to whom | The same work order, the owner or resident, the pass-through lines, and the vendor bill attached |
| Journal entry | What the books say | The invoice number on every line, the expense and payable accounts, and the date recorded |
Kept in that order, the chain runs from the resident's request to the owner's statement without a document being rebuilt by hand: request, work order, bill, recharge, entry, each carrying the one before it.
How to track maintenance spend per property, step by step
Eight steps, in the order the work happens. The first three decide whether the rest is possible.
- Open a work order for every job and link it to the building. The small jobs too: a job without a work order is a cost with no address.
- Give the contractor the work order number when you book the job, and ask for it on the bill. A vendor who bills monthly needs a line per job.
- Record the bill as a payable invoice on the work order the day it arrives, the lines as billed, the tax as shown, the PDF attached. The entry carries the day it is recorded, so a bill left in the inbox until next month lands in next month's books.
- Check the bill against the quote and the job before you approve it. A bill above the quote is a conversation with the contractor, in the work order's thread, before it is paid.
- Pay on terms and record the payment against the invoice, in full or in part, so the payable clears and the bank statement reconciles to it.
- Raise the recharge from the same work order. Where the management agreement or the lease allows it, the owner's repair invoice or the resident's damage charge comes off the same job, with the contractor's bill attached as proof.
- Allocate the month's maintenance to each building's own accounts. The automatic entry lands on the portfolio's expense account; a building's statement reads its own property-coded accounts, set up as in Chart of Accounts for Property Management: How to Build One.
- Read it monthly, in three cuts, before the month closes: per job on the work order, per building on the property's job list and its statement, and what is owed on the payables report. The close itself is in Month-End Close Checklist for Property Managers.
What a vendor bill does to the books
A contractor's bill is an expense the day it is recorded and a payment the day it is paid, two entries. The table gives both, in the account names a property ledger usually carries; the tax line applies where your business recovers the tax it pays on purchases, as a GST or HST registrant does.
| Event | Entry | What changes |
|---|---|---|
| Bill recorded | Debit Repairs and Maintenance for the bill before tax; debit Sales Tax Recoverable for the tax where you recover it; credit Accounts Payable for the total | The expense is in this month; the vendor is owed |
| Bill paid | Debit Accounts Payable; credit Bank | The vendor is paid; the bank statement will show it |
| Owner recharged | Debit Accounts Receivable; credit the income line your chart uses for recharges | The owner owes the pass-through |
| Recharge paid | Debit Bank; credit Accounts Receivable | The cash is in; the job is closed on both sides |
The expense is recognized when the bill is recorded, not when it is paid, so a bill recorded late moves cost into the wrong month. And the payable account is the list of what you owe, item by item. How the repairs line then reaches the owner is in How to Prepare a Property Owner Statement: Step by Step.
Repairs, improvements, and what belongs in the maintenance number
Maintenance spend per property is an operating number, comparable across periods only if capital work is kept out of it, and the tax authorities draw the line roughly where the comparison needs it. IRS Publication 527 (2025) states that an expense for repairing or maintaining a rental property may be deducted, while an expense is for an improvement if it results in a betterment to the property, restores the property, or adapts it to a new or different use; a new roof and a kitchen modernization are among its listed improvements. The Canada Revenue Agency's page on current expenses or capital expenses (read October 2026) gives the same tests from the other side: a current expense usually recurs after a short period and restores a property to its original condition, repairing wooden steps for instance, while a capital expense gives a lasting benefit or improves the property beyond its original condition, replacing those steps with concrete.
For tracking, record both kinds on the work order and code them to different accounts, repairs and maintenance for the work that keeps the building running and a capital account for the work that changes it. Which account a job belongs in is a question for your accountant; the work order is where the facts they will ask for were kept.
How Scaalr tracks maintenance costs through work-order invoices
In Scaalr every maintenance job is a work order linked to its building and, where one exists, to the resident's request that opened it, with the contractor, the dates, the files, and the message thread on it. Each work order carries an Invoices tab listing every invoice tied to the job, with its number, date, status, type, and amount, and an Add Invoice button that opens a new invoice already linked to that work order.
A contractor's bill is recorded by choosing Pay a vendor / contractor on that invoice. It is addressed to the contractor from your directory, name and address filled in, and takes the bill's lines with description, quantity, and unit price, an optional discount, up to three tax rates with labels that localize to your country, the dates, a note, and the contractor's PDF as an attachment, under the next sequential number and in CAD or USD. Saving it posts the entry the same moment, dated the day it is recorded: a debit to the Purchases account for the invoice's currency, a debit to the recoverable sales tax account for the tax when your chart carries one, and a credit to Accounts Payable, with the invoice number on every line. The work order can also be chosen on an invoice started from the invoice list, and changed later.
When you pay the contractor from your bank, record the payment on the invoice, in full or in part: the entry debits Accounts Payable and credits the bank account for that currency, and the invoice moves to Partially Paid or Paid. The owner's repair invoice is raised from the same work order by choosing Bill a resident / owner, with the contractor's bill attached, and can be emailed with a Pay Now link and paid by card on a page that needs no login, with no added platform fees. Canceling an invoice posts the reversing entries.
The spend then reads in the three cuts: the job's cost on its Invoices tab; the building's jobs on the Work Orders tab of the property's own page, each opening to its invoices, with the invoice list showing the work order and the billed party on every invoice; and what is owed on the Accounts Payable report, every unpaid bill as of its date with the vendor, the amount, what has been paid, the balance, and its age in 30, 60, and 90 day buckets, each line opening the invoice, as a PDF or for print. The general ledger shows the Purchases account entry by entry. A building's own repairs line, on its owner statement and its profit and loss, is read from its property-coded accounts, which the month's allocation entry fills from the portfolio's Purchases account, as described in Profit and Loss per Property: Which Building Makes Money.
Work orders, the contractor directory, and the property pages are on every plan, Starter included. Invoicing, where the bill, its posting, and the Invoices tab live, is Growth and up, at $99 a month for the first 50 units and then $1.49 per additional unit.
Key questions
How do I calculate maintenance cost per unit?
Divide a building's maintenance spend for the period by its number of units, with capital work left out. The figure is useful against the same building's earlier periods and against buildings of similar age and type; a 1960s walk-up and a new build are not expected to cost the same per door. Run it from the bills recorded by building, not from the bank statement, or it is low by every bill that was never coded.
Should I link the contractor's bill to the work order or code it to the property?
Both, because they answer different questions. The work order link tells you what the job cost and what the building's jobs were, bill by bill; the property-coded account puts the month's total on the building's statement beside its rent. Record the bill on the work order, then allocate the month to the building's accounts.
What should a contractor's invoice include before I approve it?
The work order number or the address and unit, the dates the work was done, labor and materials as separate lines with quantities, tax on its own line, the total, the due date and terms, and the contractor's business details. Match it to the quote and the work order before you approve it; a line the quote did not carry is a conversation with the contractor before the bill is paid.
Is a new water heater a repair or a capital improvement?
It depends on whether the work restores what was there or replaces a whole asset, and your accountant makes the call. IRS Publication 527 (2025) calls an expense an improvement when it results in a betterment to the property, restores it, or adapts it to a new or different use, and the Canada Revenue Agency asks whether the expense gives a lasting benefit or improves the property beyond its original condition. For tracking, record the job on the work order either way and code the bill to the account your accountant names.
How do I see what I owe contractors right now?
Run the payables report as of today: every unpaid bill with the vendor, the balance after any part payment, and its age, totaled. In Scaalr that is the Accounts Payable report, item by item with 30, 60, and 90 day buckets, each line opening its invoice, as a PDF or for print.
Can one work order carry both the contractor's bill and the owner's invoice?
Yes. A work order's Invoices tab lists every invoice linked to it, payable or receivable, so the contractor's bill and the owner's repair invoice sit on the same job, each with its own number, status, and amount. The recharge is the same job seen from the other side, compared on one screen rather than reconciled from two folders.
Do I need maintenance tracking software if I already have accounting software?
You need the job record, whichever tool holds it. Accounting software gives you totals by account and, with property-coded accounts, by building; it does not know what a job was, who did it, or which bills belong together, because a ledger stores entries rather than work. The choice is two systems with the invoice number as the bridge, or one system where the work order, the bill, and the entry are the same record.
Which Scaalr plan includes work-order invoices and cost tracking?
Growth and up. Work orders, the contractor directory, and the property pages are on every plan, including Starter, free for the first 5 units and then $0.99 a unit a month. Invoicing, which carries the payable invoice, its posting, and the Invoices tab on the work order, is part of Growth, at $99 a month for the first 50 units and then $1.49 per additional unit.