🗓️ Operations

Joist vs Wave vs QuickBooks: The Best Contractor Invoicing App

Published October 25, 2026

Take a $4,950 job. Run the whole thing through a credit card at a typical 2.9% + $0.30 processing rate and you hand over about $144. Do forty jobs that size in a year and card fees cost you roughly $5,800 — more than most contractors spend on their entire software stack, insurance renewal, and phone plan combined.

Push those same payments to ACH at 1% capped at $10, and the same forty jobs cost you $800.

That’s the real difference between invoicing apps. Not the logo on the PDF. So I took one invoice — the same job, the same numbers, the same deposit structure — and built it three times: Joist, Wave, and QuickBooks Online. Here’s what each one does with it, what it costs you to get paid, and who should use which.

The test invoice

A composite deck repair and rail replacement:

LineAmount
Labor, 40 hrs$2,600
Materials (lumber, hardware, stain)$1,850
Dump fee + permit$200
Subtotal$4,650
Sales tax on materials (varies by state)$300
Total$4,950

Terms: 40% deposit ($1,980) before material pickup, balance ($2,970) due on completion, net 7.

That deposit structure is where most invoicing tools quietly fall apart, so it’s the most important part of the test.

What each tool actually is

These three are not competitors in the way a comparison post implies. They’re three different categories of thing that happen to print invoices.

  • Joist is a contractor-specific estimate-and-invoice app. Mobile first. Built by people who understand that you write the estimate standing in someone’s backyard. It is not accounting software.
  • Wave is small-business accounting software with free invoicing attached. Real double-entry books. Nothing in it knows what a change order is.
  • QuickBooks Online is the accounting platform your bookkeeper and CPA already use. Heaviest, most expensive, most capable, and the only one where “progress invoicing” is a named feature instead of a workaround.

Pricing and feature tiers for all three move around, and Joist in particular has changed hands and restructured its plans. Check current pricing pages before you commit — treat every dollar figure here as the shape of the thing, not a quote.

Building the invoice: what happened

Joist

Fastest path from “job done” to “invoice sent.” You write the estimate on your phone, the customer approves it, and the estimate converts to an invoice without you retyping a single line. The 40% deposit is a first-class concept — you set a deposit amount or percentage on the document and the app tracks the balance.

Where it bites: your books live somewhere else. At tax time you’re exporting or hand-entering into accounting software, and the deposit — which is a liability, not revenue, until you’ve done the work — doesn’t land in a liability account on its own.

Wave

The invoice itself looks professional and took about eight minutes to build from scratch. The problem is the deposit. Wave’s invoicing is built around one invoice, one total, with partial payments applied against it. To bill a 40% deposit properly you end up either:

  1. Creating a $1,980 deposit invoice, then a second invoice for $4,950 with a “Less deposit received” line of -$1,980, or
  2. Sending the full $4,950 and asking the customer to pay part of it, which means the thing sitting in their inbox says $4,950 and no due date they believe.

Option 1 works and is what most Wave users do. It’s two documents instead of one, and your accounting needs a manual journal entry to keep the deposit out of revenue until you earn it.

QuickBooks Online

The only one where the estimate-to-progress-invoice flow is native: build the $4,950 estimate, invoice 40% of it, then invoice the remaining 60% later, with both invoices linked back to the original estimate. QuickBooks shows you what’s been billed against the estimate and what’s left.

The catch has historically been that progress invoicing lives on the mid-tier plan, not the entry-level one. Confirm which tier you need before you subscribe, because the gap between tiers is real money every month.

The comparison that matters

JoistWaveQuickBooks Online
Estimate → invoice in one tapYesPartialYes
Native deposit / progress billingYesWorkaroundYes (higher tier)
Real double-entry booksNoYesYes
Job costingLimitedNoHigher tiers
Mobile usability in a truckBestOKOK
Automatic payment remindersYesYesYes
Your CPA already knows itNoSometimesAlmost always
Monthly costFree tier + paid plansFree core, paid add-onsHighest

The fee math, run on the same $4,950

Processing rates change and vary by plan, so run these as structure, not as a quote. Typical published card-present and card-not-present rates for small-business platforms cluster around 2.9% + $0.30 for online card payments, with ACH either around 1% capped at a low dollar amount or, on some plans, free.

Splitting the job into a deposit and a balance means two transactions, so you pay the fixed per-transaction fee twice:

Payment methodDeposit $1,980Balance $2,970Total feesYou keep
Card, 2.9% + $0.30$57.72$86.43$144.15$4,805.85
ACH, 1% capped $10$10.00$10.00$20.00$4,930.00
Check$0$0$0$4,950.00

On a job this size, steering the customer to ACH instead of card is worth about $124 — more than two billable hours.

Scale it. Forty jobs a year at this size:

MethodAnnual fees
All card~$5,766
All ACH~$800
Mix: deposit by card, balance by ACH~$2,710

That last row is the realistic one. Homeowners will card the deposit because it’s the moment they’re committing and the card is already out. The balance is the one worth steering.

Two honest caveats. First, surcharging the customer for card fees is regulated by state law and by card network rules, and some states restrict it outright. Look up your own state before you add a 3% line to an invoice. Offering a discount for check or ACH is generally treated differently from adding a surcharge — but confirm that locally too. Second, checks cost zero in fees and plenty in float: a check that arrives in eleven days cost you eleven days of cash.

Time to paid: the app is not the lever

None of these three will materially change how fast you get paid by itself. What changes it is the behavior the app makes easy:

  1. Invoicing the same day you finish. An invoice that sits in your truck for nine days cannot be paid in nine days. Joist wins here purely because it’s the one you’ll actually open on site.
  2. A pay button in the email. Removing the “where’s my checkbook” step is the single biggest accelerator. All three do this.
  3. A deposit. Taking 40% up front means the worst case on a job is that you’re owed 60%, not 100%. This is cash flow, not collections.
  4. Automatic reminders at day 3, day 7, day 14. Set them once. Stop being the guy who texts “hey, just checking in.” All three support this; turn it on, because none of them do it by default.

More on the collections side of this in invoicing and getting paid, and on the front end of the process in how to write estimates that win jobs.

Who should use which

Use Joist if you’re solo or two guys, you write estimates on your phone, and your bookkeeping is a shoebox plus an accountant in March. The speed from driveway to sent invoice is worth real money, and the deposit handling is clean out of the box. Accept that you’ll need something else — or someone else — doing the books.

Use Wave if you want free, you’re billing fewer than roughly 10–15 invoices a month, and you’re willing to do the two-document deposit dance. It’s the best free option, and it gives you actual books instead of a pile of PDFs. It’s a reasonable anchor for the approach in running a contracting business on $0 of software.

Use QuickBooks Online if you have employees or subs, you’re filing 1099s, you want job costing, or your CPA has already told you to. The progress invoicing is the real version of what the other two approximate. It’s also the one you’ll grow into rather than out of.

Use two if you’re in between: Joist (or similar) for estimates and field invoicing, QuickBooks or Wave for the books. Plenty of shops run this way. It costs you a monthly fee and a reconciliation habit, and it beats forcing one tool to do a job it wasn’t built for. If you want the wider field, the full software comparison covers the other contenders.

One accounting point nobody tells you

A deposit is not income until you’ve earned it. It’s customer money you’re holding. If you take $1,980 in March and don’t start the job until May, that $1,980 belongs in a liability account — customer deposits — not in March revenue. Wave and QuickBooks can both handle this correctly; a standalone invoicing app can’t, because it isn’t doing your books.

The practical risk isn’t the IRS. It’s you, looking at a bank balance fat with other people’s deposits, and concluding you had a good month.

Your next move

Pick your three largest invoices from the last six months. Add up what you actually paid in processing fees on each one, and note how many days passed between job completion and money in the bank.

If the fees are over 2% of revenue, your fix is payment method, not software. If the gap between finishing and invoicing is more than two days, your fix is a mobile-first app you’ll actually open on the job site. Solve the bigger of the two first.

Keep learning

More from Operations

Get one actionable tip every week

Join contractors getting practical advice on winning more jobs, running tighter operations, and picking the right tools — free, no fluff, unsubscribe anytime.

▶ Watch on YouTube