Subcontract POs with cost codes and progress payments

A purchase order to a sub for a stage of the schedule: the scope in writing, priced lines with cost codes, the sub accepts from a link with their name, it counts as committed cost by trade, and you pay as the work gets done. The operating system for post-frame and barndominium builders — so the PO hangs off the stages you already run the job by.

The operating system for post-frame and barndominium builders.

Part of The Launch Pad
What it is

A Subcontracts card in every project window. Each subcontract PO names the sub (with their insurance badge), the schedule stage it buys, the scope of work in words, lines tagged with cost codes, payment terms and drawings. Save & send to sub emails the sub a link — no login — where they read the same scope and price and accept or decline with their typed name. A sent PO counts as committed cost on the job's budget, by phase and by cost code; payments go against it by percent complete, through the insurance check, and never past what the PO is worth. It's made for the trades on a post-frame job — the slab, the framing, the rough-ins — on the same stages as your schedule.

Also called: subcontract · sub PO · subcontractor purchase order · cost codes · committed cost by trade · progress billing · sub agreement · percent complete billing · pay subs by draw · committed cost

See it, piece by piece
01

Every sub on the job in one card

The Subcontracts card on Dawson Hoover — Commercial Shop lists each PO with its stage, the sub's answer, their insurance badge and what's been paid: Cornerstone Concrete Co. part paid on the slab, Valley Plumbing & Drain awaiting sub and on insurance hold, Summit Electric LLC accepted for the electrical. Closed, it still says 1 on insurance hold · 1 awaiting sub · $42,450 committed.

Dawson Hoover — Commercial Shop · Subcontracts
Subcontracts1 on insurance hold1 awaiting sub$42,450 committedBid packageSubcontract PO
PO-1018Part paidCornerstone Concrete Co.Insured$18,400
Concrete$9,200 paid · 50% billed
PO-1019Awaiting subValley Plumbing & DrainInsurance expired · pay on hold$9,250
Plumbing rough-in
PO-1020AcceptedSummit Electric LLCInsurance expiring$14,800
Electrical
Bid packages
Electrical rough-in & serviceAwarded2 of 2 bids in
Awarded to Summit Electric LLC · $14,800
Plumbing underground & rough-inAwarded2 of 3 bids in
Awarded to Valley Plumbing & Drain · $9,250
Committed by cost code
Cost codeSubsMaterialPaid
03 · Concrete$17,100—$8,550
06 · Framing—$41,280$20,640
10 · Plumbing$9,250——
11 · Electrical$14,800——
23 · Equipment rental$1,300—$650
Three POs, two bid packages and committed cost by cost code on the Dawson Hoover shop. Real screen · sample data.
Without it

Who's hired for what, at what price and who's been paid lives in texts and a spreadsheet nobody updated.

Why we built it

The project manager sees what needs chasing without opening anything — so nothing waits a week for someone to notice. Problems sit on the closed card's header, where they can't be scrolled past.

Sound familiar?“send a purchase order to a subcontractor”
02

The scope in writing, priced line by line with a cost code

A subcontract PO carries the scope of work in words, priced lines each tagged with a cost code, payment terms, a start date, a note to the sub, an internal memo only your team sees, and the drawings. PO-1020 to Summit Electric LLC is $14,800 in three lines under 11 · Electrical, with terms of 40% at service set, 60% at rough-in inspection and the floor plan attached. The bid award wrote most of it.

Subcontract PO — PO-1020 (draft)
Subcontract PO
PO-1020
DraftInsurance expiring
Subcontractor *
Insurance expiring
Schedule stage
Scope of work
200A underground service from the pole, main panel in the office, shop LED high-bays on two switch legs, receptacles every 12' on the sidewalls (GFCI where required), office and restroom circuits, two exterior wall packs and a 240V circuit for the unit heater. Permit and inspections by the electrician. Bid notes: Two-man crew, 6 working days. We can start the service the week after framing passes.
Lines+ Add line
200A service & panel
4900
×
Rough-in — shop lighting, receptacles, office
7600
×
Exterior lights & heater circuits
2300
×
Total$14,800.00
Payment terms
40% at service set, 60% at rough-in inspection
Start date
When they start
Note to the sub
Internal memo
Awarded from bid package "Electrical rough-in & service" (bid of $14,800.00).
Drawings & attachments
Dawson Hoover - Floor Plan A-101 - Rev 1.pdfRemove
Add drawings or files
Cancel POCloseSave draftSave & send to sub
PO-1020: Summit's electrical scope, three cost-coded lines, $14,800. Real screen · sample data.
Without it

The price was agreed on the phone, the scope never got written down, and the argument starts at the final bill.

Why we built it

A scope in writing settles the argument before the first trench is dug — and the sub knows exactly what you're paying for. Pricing line by line with a trade on each is also what lets the job cost add up later.

03

Each PO buys a stage of the schedule

Schedule stage links the PO to one stage of the job — Electrical here. The PO then counts against that phase's committed cost on the budget, and a stage set to Needs a purchase order stays locked until a PO linked to it has been sent.

Subcontract PO — Schedule stage
Subcontractor *
Insurance expiring
Schedule stage
PO-1020 hangs off the Electrical stage of the Dawson Hoover shop. Real screen · sample data.
Without it

A sub's price that isn't tied to a stage shows up nowhere when you look at what that phase is costing.

Why we built it

The project manager runs the job by stages, so the money follows the stages he already watches. It's the same schedule your crews and customer see, not a second list.

Sound familiar?“sub agreed to a price”Sound familiar?“committed cost by trade”
05

You hear the moment the sub answers

When the sub answers from their link, admins and project managers get Sub answered a purchase order: Summit Electric LLC accepted PO-1020 — The subcontract is agreed. A decline brings the sub's reason, and the PO goes back to draft so you can revise it and send it again, or pick another sub.

Sub answered a purchase order
Summit Electric LLC accepted PO-1020
The subcontract is agreed.
Sep 26 · 6:20 PM
Cornerstone Concrete Co. accepted PO-1018
The subcontract is agreed.
Sep 14 · 6:20 PM
Summit accepted PO-1020; Cornerstone accepted the slab PO two weeks earlier. Real screen · sample data.
Without it

You send a PO and then keep checking your email to see whether the sub replied.

Why we built it

The answer comes to the project manager instead of him going to look for it. A decline that reopens the draft turns a no into the next move, not a dead end.

Sound familiar?“pay a sub in progress payments”
06

What the sub accepted stays what they accepted

Once a PO is sent, its scope and price lock — they're what the sub is answering. The PO shows when the sub opened it and what they said — Accepted by Dale Summers · 9/26/2026 — with the sub's link on hand to send again.

Subcontract PO — PO-1020 (accepted)
Subcontract PO
PO-1020
AcceptedInsurance expiringAccepted by Dale Summers · 9/26/2026
The sub's link
https://ridgeline.leads2build.com/sub/po/subpo-3f9a1c07e2b84d55a9c1
Subcontractor *
Schedule stage
Scope of work
200A underground service from the pole, main panel in the office, shop LED high-bays on two switch legs, receptacles every 12' on the sidewalls (GFCI where required), office and restroom circuits, two exterior wall packs and a 240V circuit for the unit heater. Permit and inspections by the electrician.
Lines
200A service & panel
11 · Electrical
4900
Rough-in — shop lighting, receptacles, office
11 · Electrical
7600
Exterior lights & heater circuits
11 · Electrical
2300
Total$14,800.00
PO-1020 accepted — the scope and the three lines locked. Real screen · sample data.
Without it

Someone edits the PO after the sub agreed, and now nobody knows which version he said yes to.

Why we built it

Both sides can trust the paper because neither side can quietly change it. The office sees opened and answered without phoning the sub.

07

Committed cost adds up by trade

Try it

Cost codes — the trades a job's cost is sorted by — start as construction defaults, 01 General conditions to 24 Cleanup & dumpsters. Every PO line, material or sub, can carry one, so the Subcontracts card and the Budget & margin card add committed cost up by trade. Rename a code, add your own or switch one off; old lines keep their label.

Settings — Subs & Purchasing · Cost codes
Cost codes

Tag each purchase order line with a trade, and committed cost adds up by trade on every job. These are the built-in defaults — edit them and save to make them yours.

01General conditions×
02Site work×
03Concrete×
04Masonry×
05Steel×
06Framing×
07Roofing×
08Siding×
09Windows & doors×
10Plumbing×
11Electrical×
12HVAC×
13Insulation×
14Drywall×
15Cabinets×
16Trim×
17Paint×
18Flooring×
19Countertops×
20Gutters×
21Landscaping×
22Permits & fees×
23Equipment rental×
24Cleanup & dumpsters×
+ Add cost code
The built-in cost codes — switch one off or rename it, then save. Real screen · sample data.
Without it

Every job's costs are sorted differently, so you can't tell what framing cost on this shop against the last one.

Why we built it

The same trades on every job let an owner compare jobs instead of guessing. The codes start ready to use, so nobody has to build a chart of accounts before the first PO.

Sound familiar?“job cost by cost code”
08

Pay as the work gets done — never more than the PO

Try it

Cornerstone Concrete Co.'s slab PO is $18,400, with $9,200 paid at forms. Enter 100% complete and the amount fills in as the rest owed; Pay the balance does the same in one tap. A payment can never be more than what's left on the PO, and the PO reads Part paid, then Paid.

PO-1018 — Payments
Subcontract PO
PO-1018
Part paidInsuredAccepted by Mark Hensley · 9/14/2026
Payments$9,200.00 of $18,400.00 paid
Method
Reference
Check #
$9,200.009/16/2026 · check · Check 4471
PO-1018: $9,200 of $18,400 paid; 100% complete fills in the last $9,200. Real screen · sample data.
Without it

Paying a sub in draws turns into arithmetic on a sticky note — and once in a while, paying twice.

Why we built it

The sub gets paid as he progresses, and the office can't overpay with a typo. Percent complete is how subs bill, so the screen speaks their language.

Sound familiar?“sub says that wasn't in the price”
09

Every payment goes through the insurance check

Try it

If you've switched on the insurance hold, a payment to a sub whose required cover is missing or expired is refused with the reason — Valley Plumbing & Drain's PO-1019 reads Payment on hold — insurance. An admin can pay through it by writing why.

PO-1019 — Payment on hold
Subcontract PO
PO-1019
Awaiting subInsurance expired · pay on holdOpened by the sub 9/29/2026
Payments$0.00 of $9,250.00 paid
Payment on hold — insurance
Workers' comp expired Sep 13, 2026. Add a current certificate to Valley Plumbing & Drain's record in Contacts to release it.
Method
Reference
Check #
Record paymentPay the balance · $9,250.00
Valley's plumbing PO on hold until a current certificate is on file. Real screen · sample data.
Without it

The PO was approved, the work was done, and nobody noticed the sub's comp ran out last month.

Why we built it

The check happens where the money goes out, so nobody has to remember it. It's the same rule on every PO, with one documented way through.

Sound familiar?“no written scope with my subs”
10

The sub's bill on the PO — and into QuickBooks if you switch it on

When the sub's bill arrives, Record the sub's bill on the PO. With QuickBooks bills switched on in Settings — it's off until you turn it on — an accepted PO goes to QuickBooks as a bill to that vendor against the job, one line per cost code, and the payments you record go across as bill payments.

PO-1020 — Bill & QuickBooks
Subcontract PO
PO-1020
AcceptedInsurance expiringAccepted by Dale Summers · 9/26/2026
Bill & QuickBooksRecord the sub's billSend to QuickBooks

Becomes a QuickBooks bill when the sub accepts or you record their bill — if QuickBooks bills are switched on in Settings.

PO-1020's Bill & QuickBooks: record the bill; it goes across once QuickBooks bills are on. Real screen · sample data.
Without it

The sub's bill gets retyped into the books by hand, against the wrong job, a week late.

Why we built it

The bookkeeper stops retyping what the PO already says. It's off until switched on, so nothing reaches your books until you've chosen the accounts.

Sound familiar?“how much have I committed to framing”
12

Or let a bid award raise it

Put the scope out to several subs first and Award raises the subcontract PO as a draft — the package's scope, the winning price or line breakdown, the stage and the drawings — with the bid recorded in the internal memo. See bid packages.

Award to Summit Electric LLC?

Award to Summit Electric LLC?

A draft subcontract PO for $14,800 is raised with this scope and their line breakdown. The other bidders see “not awarded” on their link.

Cancel
Award to Summit Electric LLC — the $14,800 draft PO comes from the bid. Real screen · sample data.
Without it

The winning bid gets retyped into a PO and comes out a few hundred dollars different.

Why we built it

The PO says exactly what the sub bid, because nobody retyped it. The project manager goes straight from choosing a sub to sending the PO.

How it works
  1. 1Open the job and, on the Subcontracts card, press Subcontract PO — or let a bid award raise it for you.
  2. 2Pick the sub and the schedule stage, write the scope, add priced lines with a cost code each, the terms and the drawings.
  3. 3Save & send to sub — they get a link with no login. No email on file, and you get the link to send yourself.
  4. 4The sub accepts or declines with their name; a decline asks why and puts the PO back to draft. You're notified either way.
  5. 5Once sent, the scope and price lock, and the PO counts as committed cost by phase and by cost code.
  6. 6Pay as the work goes: enter % complete and the amount fills in, or pay the balance — every payment goes through the insurance check.
  7. 7Cost codes start as construction defaults; rename them, add your own or switch them off in Settings → Subs & Purchasing.
  8. 8With QuickBooks bills switched on, an accepted PO goes to QuickBooks as a bill against the job, one line per cost code.
Why we built it

Subs were hired on a phone call and a text. There was no record of the scope or the price they'd agreed to, the job's committed cost by trade was guesswork until the bills arrived, and progress payments were worked out on the back of an envelope. So a sub's work became a purchase order like any other: a written scope, priced lines with a trade on each, a link the sub answers with their name, and payments that add up against it — on the same stages the schedule runs on.

The problem
  • Sub scope and price agreed with no written record
  • Committed cost by trade unknown until bills arrive
  • Progress payments worked out by hand, with nothing stopping an overpayment
  • A pulled scope still counted as money committed
What you get
A written yes from the sub on every scope
Committed cost by cost code on every job
Progress payments that fill themselves in and can't overpay the PO
Every sub on the job in one card, with what needs chasing on the outside
The PO buys a stage, so the schedule and the money line up
One system for the post-frame job, from the sub's PO to the payment
SUPPLIER ORDER LIFECYCLE

See subcontract POs with cost codes and progress payments
on one of your own jobs.

Twenty minutes, your building, your numbers. Bring the job where “send a purchase order to a subcontractor” — we will show you exactly where that stops.

leads2build.com
Materials staged on site
Dawson Hoover — Commercial Shop · Subcontracts
Subcontracts1 on insurance hold1 awaiting sub$42,450 committedBid packageSubcontract PO
PO-1018Part paidCornerstone Concrete Co.Insured$18,400
Concrete$9,200 paid · 50% billed
PO-1019Awaiting subValley Plumbing & DrainInsurance expired · pay on hold$9,250
Plumbing rough-in
PO-1020AcceptedSummit Electric LLCInsurance expiring$14,800
Electrical
Bid packages
Electrical rough-in & serviceAwarded2 of 2 bids in
Awarded to Summit Electric LLC · $14,800
Plumbing underground & rough-inAwarded2 of 3 bids in
Awarded to Valley Plumbing & Drain · $9,250
Committed by cost code
Cost codeSubsMaterialPaid
03 · Concrete$17,100—$8,550
06 · Framing—$41,280$20,640
10 · Plumbing$9,250——
11 · Electrical$14,800——
23 · Equipment rental$1,300—$650
Subcontract POs with cost codes and progress payments — Leads2Build