How the money side fits together
The big picture: money in from the client, money out to vendors, and your fee.
Money flows two ways. IN from your client (recorded as client payments) and OUT to vendors (subcontracts → invoices → payments). Your profit is a cost-plus fee: a percentage on top of vendor costs.
WHICH TAB IS WHICH. Money OUT - the bills your subs and suppliers send you - lives on BILLS FROM SUBS, one per bill, each landing on a budget line. Money IN depends on how the job bills: an AIA job invoices the owner from PAY APPS (the G702 application you print is the bill you send), and a simple job records what the client has paid on PAYMENTS & ESCROW.
THE QUICKEST ROUTE is from the bill itself. Approve a sub's bill and a green BILL THE CLIENT button appears on it showing what the client owes with your markup on. It takes you to a client invoice that already has that cost on it and its total worked out - press Raise and it is done. Use "Add another cost" there if you want to put more on the same invoice.
BILLING THE CLIENT on a simple-billing job happens on the Billing the client tab (it was called Payments & Escrow), under "Invoices to your client". Click "Bill the client", tick the costs going on this one - approved sub invoices and material receipts, each already showing its markup - and raise it. Nothing is retyped, and a cost can only ever appear on one client invoice, so the same bill cannot go out twice. Delete a draft and its costs go back to being billable.
ONE TICK BOX DECIDES WHAT THEY SEE. "Show the client the cost and my markup" prints every line as cost + your percentage = amount, with cost of work and contractor's fee broken out at the bottom - the open-book presentation a cost-plus contract usually requires. Leave it off and the client sees one amount per line and one total, with your margin nowhere on the document.
SENDING IT. "Issue & get link" turns a draft into a real invoice and creates a link for it. Copy the link, or click Email to open your own mail client with the message and link already written. Your client opens it with no account and no sign-up - it works on a phone - and can print or save it as a PDF from there. The list shows how many times they have opened it and when they last did - "opened 4 times, last Aug 27" - which answers most of the "did they even get it" phone calls before you make them.
MARKING ONE PAID records the money. Press Mark paid and the normal Record a client payment box opens with the invoice amount and number already filled in - put in the date, how they paid (check, ACH, wire) and their check number in Reference, and save. That is what puts the money in Funds Received and your escrow balance, and what settles THAT invoice in QuickBooks - the payment carries the invoice you pressed it on, so two invoices raised the same day cannot be mixed up. Change the amount before saving if they paid something different.
WHERE THE REST OF THE BUTTONS WENT. Each invoice row shows the one action that is normally next - Issue & get link on a draft, Mark paid on a sent one - and everything else is behind the ... menu at the end of the row: View / Print, copy the client's link, email it, compose it yourself, and Void. Seven buttons in a row all looked equally like the thing to press, with Mark paid sitting next to Void.
GOT ONE WRONG? Void it. A draft can be deleted outright, but an invoice you have already SENT is a document your client is holding, so it is voided rather than deleted: it stays on the list with its number, greyed out, the costs on it go back to being billable, and the void is sent to QuickBooks so it stops counting as money owed. Then raise a fresh one. That is how an accountant expects a mistake to be corrected - editing a sent invoice would leave your copy and theirs disagreeing.
IF A VOID DID NOT GET THROUGH, THE BADGE SAYS SO. Voiding sends the void to QuickBooks, and if it has a payment attached the payment is voided first, because QuickBooks refuses to void an invoice while money is applied to it. When any of that fails - the connection expired, QuickBooks was slow - the invoice shows "Void not sent to QuickBooks" rather than a green tick, and the invoice is still an open receivable over there until you fix it. Settings → QuickBooks → Retry voids sends them again; it is safe to press more than once, because an invoice already voided in QuickBooks is recognised rather than voided twice.
THE QB TICK ON AN INVOICE HAS TWO STATES, because there are two facts: the invoice reached QuickBooks, and the money settling it reached QuickBooks. "QB tick" on a sent invoice means the bill is over there as money owed. "QB tick paid" on a paid one means the payment is over there too and the invoice is settled. An amber "payment not synced" means the invoice went across but the money has not, so QuickBooks still shows it owing - press Sync client payments in Settings. "Not in QuickBooks" means the invoice itself never made it, usually because it was raised before you connected; press Sync client invoices. You only ever see any of this if you have a QuickBooks connected.
ON THEIR PORTAL TOO. Every invoice you have sent (and every paid one) is listed on the client's portal link under "Invoices", with what is currently due at the top - so a client who lost the email finds the bill there instead of asking you to resend it. Drafts never appear.
The link is made once, when you issue the invoice, and never regenerated - so a link already sitting in somebody's inbox keeps working. A draft has no link; a cancelled invoice stops working on the one it had.
It defaults to OFF on purpose. A client who was never shown your margin cannot be un-shown it. You can flip it on a draft before you send, and each invoice remembers its own answer.
- 1Award a quote → creates a subcontract (Committed) and optionally a budget line.
- 2The sub bills you → you create an invoice; approving it makes it a real cost (Actual/Billed).
- 3Mark the invoice paid → cash actually leaves.
- 4Record client payments → money in. Your fee = billed × fee%, bill by bill (at-cost bills earn none). Escrow = received − paid out − fee.
COMMITTED means money you have promised to pay but have not paid yet. It counts every subcontract you have signed, plus anything you have committed on a budget line without a contract behind it - a materials order, an equipment hire, a supplier. Each is counted once: a budget line tied to a subcontract does not add on top of that contract.
Committed is the same figure on the Budget tab, the job's Financial Summary and Master Money. If you ever see those disagree, tell us - they are all reading one calculation.
COST-PLUS MARKUP is applied per invoice, which is how it is actually billed. The electrician sends you $35,000, your 15% goes on top, and the client owes $40,250. Open any sub invoice and it shows cost, markup and what to bill, and the top of the Bills from subs tab totals it across everything approved so far. On a job set to cost-plus these controls are always there, whatever your default rate is - they used to appear only once a project rate was set, which left a job priced line by line with no way to mark up its first invoice.
THE RATE CAN LIVE ON A BUDGET LINE. "Permits at cost, electrical at 15%" is a fact about the trade, not about each bill as it arrives - so click the line on the Budget tab and set it there once. Every bill landing on that line follows it. Precedence is most-specific-first: what one invoice says beats what its line says, which beats the project rate. Blank at any level means follow the level above, so changing the project rate still moves everything you have not given its own answer. A bill split across a line at 15% and a line at cost earns the right fee for each part.
Two things you can change on any single invoice. Tick "Bill this at cost - no markup" for a permit fee, a deposit the client paid direct, or anything you agreed to pass through; it then bills at exactly what it cost. Or type a different percent for one you negotiated separately.
Leaving the percent BLANK is not the same as typing 0. Blank means "follow the project rate", so if you change your markup later that invoice moves with it. Typing 0 fixes that invoice at no markup for good.
Master Money (admin only) rolls all of this up across every project in one table.