Purchase orders and requests for price

How to ask vendors for prices, award the work, raise and approve a purchase order, book a subtrade's start date, receive a delivery, and settle the vendor's bill.

A purchase order is how you engage anyone outside your company: a subtrade doing work on a job, or a supplier sending material. Work orders are for your own crew only. If someone else is doing the work, it goes through a purchase order.

There are two ways to start:

  • Purchase order when you already have a price. You pick the vendor, say what you need, and state the amount.
  • Request for price (RFP) when you don't. You ask one or more vendors for a number, compare what comes back, and award it. Awarding turns the request into a purchase order.

Both live under Financial in the sidebar: Purchase Orders and RFPs. On a job, they're on the POs tab.

Starting one

Open Create in the top-right corner and choose Request for price or Purchase order. The keyboard shortcuts are c r and c o. The Purchase Orders page has New purchase order at the top, the RFPs page has Request a price, and a job's POs tab has both. A few other places open the same sheets already filled in:

  • Another PO for this vendor on a purchase order opens a new one for the same vendor, job and phase. The original isn't touched.
  • Request prices when you split an approved estimate opens an RFP for each trade, with its lines. See Work orders.
  • Raise a purchase order for this on an inventory item that's run out.
  • Ask another subtrade and Price it yourself on a request that's past due or that everyone declined.

The project comes first

The sheet opens on the job you're in, or the last one you looked at. Most purchase orders belong to a job, and the cost lands on the job and phase you pick.

Tick This purchase order is not tied to a project for general purchases like equipment, material or restocking the shop. The project field is replaced by a Branch (whose books it lands in) and an Expense category. Material that arrives on a no-job order goes into that branch's stock at the price actually delivered, and is costed to a job when a crew uses it. Anything that isn't stock lands as an office expense under the category you picked.

Picking the vendor

Who it goes to starts with three tabs, on a request for price and on a purchase order:

  • Subtrade is someone who comes to the site. They suggest a start day (on a request, whoever wins does), and you confirm it before they come.
  • Supplier is a delivery. There is no start day, and you receive it under Bills & approvals.
  • All lists everyone, each marked Subtrade or Supplier. The order follows the vendor you pick: a subtrade makes it site work, a supplier a delivery. On a request it follows the first vendor you pick, unless you have already chosen Subtrade or Supplier yourself. The line under the tabs always says which it is.

On Subtrade or Supplier, the list shows that kind, searched by name or trade. When you type, matches of the other kind show too, under Listed as suppliers (or subtrades), so nobody filed under the wrong kind is hidden. You can still pick them: a line under the vendors says they are listed as the other kind and what the document will do. If they aren't on the list at all, type their name and choose Add a subtrade (or supplier) who isn't on this list. They are saved as that kind. An email address is all you need. Company name, mobile and trade are optional, and the new vendor is selected straight away.

A new vendor gets a sign-in link by email. They don't choose a password or fill in a profile before they can answer. Until they set their company name, they show on your side under their email address.

Document numbers

The sheet shows the number the document will get before you send it.

  • On a job: the job number, then RFP or PO, then a count that RFPs and POs share on that job. For example PUR-26-8576-RFP-1, then PUR-26-8576-PO-2.
  • Awarding keeps the number. When …-RFP-5 is awarded, the purchase order it becomes is …-PO-5. Search finds it by either number.
  • No job: the vendor's name, counted per vendor, such as Tractor-Supply-PO-1. Until you pick a vendor, the sheet says the number will come from them. A no-job request sent to several vendors takes your company's prefix instead.

A number is fixed once the document has gone out. A voided number is never used again. The one exception is a no-job request that went to a single vendor: if you ask a second vendor, it moves onto your company's prefix first, so no vendor ever sees another vendor's name. The first vendor's portal shows the new number. Awarding it to any vendor numbers the purchase order from that vendor.

Asking for prices

A request for price has three parts.

  1. Who you are asking. One vendor for a straight request, or several to compare.
  2. What you need priced. Describe it the way you would on the phone. Lines are optional: type one and choose Add "…" as written, or search your price codes, materials and equipment. A line picked from the catalog brings your cost with it. Nothing has to come from the catalog.
  3. When, and what you expect to pay. A Prices due by date, and an optional Internal expected cost.

The internal expected cost is for you. It's marked "Internal tracking only. Vendors will not see this number." If you leave it blank it uses your lines' total, and a figure you type wins. Once a catalog line is on the request, you can choose whether those lines count at Cost (what you pay) or Price sheet (what the estimate allows). Every price that comes back is measured against it.

Two folded sections sit underneath: the phase and What they can see. Nothing on the job reaches a vendor unless you pick it under What they can see. It offers the job's notes, photos and documents, and never a private note or a note the app wrote itself. Vendors are always emailed.

The button names the action, for example Send RFP to 3 vendors. Nothing is committed until you award one.

Raising a purchase order

A purchase order asks for less: who it goes to, a short scope ("Re-pipe the kitchen supply lines, cap and test" is plenty), and the price you're authorizing.

Choose what the amount is:

  • Fixed price. The price is agreed, and their bill should match it.
  • Not-to-exceed. They bill what the work takes, up to this ceiling.
  • Time and materials. Enter your best guess at what the work will cost. The estimate is yours alone: the vendor never sees it, not on their page, the PDF or any email. Their copy says time and materials and tells them to invoice their actual hours and materials against the purchase order number. Changing the estimate later doesn't send them anything. Until their bill is authorized, the estimate counts toward the job's in-progress costs on the Expenses tab. Authorizing the bill records the real cost in its place, whether it came in under or over.

On a fixed price or not-to-exceed order the vendor sees this amount. It prints on the purchase order, and their bill is matched against it. A purchase order goes to one vendor, and it has no internal expected cost of its own.

Lines, phase and what the vendor can see are folded underneath, the same as on a request. Press Send purchase order.

Picked the wrong one? The quiet line at the bottom of each sheet switches: Already agreed a price? or Need to request pricing instead? It carries the vendor, job, scope and lines across. It never turns an internal expected cost into a price, and a purchase order keeps only the first vendor.

Approval

Set your limit under Settings → Purchase Orders, in Approval required above. Zero turns approval off.

A purchase order over the limit can't go straight out. The button becomes Send for approval and you choose an owner or admin to decide it. On a job, the limit counts what that vendor already has on the job, so splitting work into small orders doesn't slip past it. Owners and admins can approve their own.

While it waits, the vendor hears nothing, no cost is committed, and there's no PDF. The approver either approves it, which sends it to the vendor, or sends it back with a note. A purchase order that comes back to you can still be changed, then approved or sent for approval again.

What the vendor receives

The vendor gets an email with a link that opens the job and what you shared. The purchase order PDF is one page with the authorized amount and pricing basis near the top. It prints your purchase order terms from Settings → Document Settings → Purchase Order, as they stood when the order first went out, so editing your terms later doesn't change an order that was already sent.

Every purchase order record has See exactly what they see, which opens the vendor's view of it. An order still with an approver, or voided, has no vendor view yet.

Vendors never see your internal expected cost, your estimate, your margins and costs, internal notes, or the other vendors on the job. See Your subtrade portal for their side.

The Purchase Orders and RFPs pages

Both pages open on what needs you, with one line saying how many. Show everything lists every record.

The Purchase Orders page lists purchase orders only. Requests for price live on the RFPs page. It has four tiles, each with a count and the money behind it:

  • Awaiting approval: with an approver, or back with you.
  • Dates to confirm: a subtrade proposed a start date, or asked to add a day, and nobody has answered.
  • Vendor bill received: needs authorizing.
  • Waiting on vendor bill: committed, nothing billed.

Dates to confirm is the office's queue for a subtrade's date. The row's button is Answer the day: it opens the order so you can answer the proposed start or the extra day. Once you answer, the order leaves the tile. Dates to confirm also counts toward what needs you.

RFPs has Requested, Ready to award, Past due, nothing back and Awarded. An awarded request stays on the RFPs list under its own number and names the purchase order it became.

Everything else on the Purchase Orders page is under Other states: billed over the PO, bill back with the vendor, paid and settled, and voided. These are states, not queues, so they don't get tiles.

The Document column holds the number, which opens the record, and the job name under it, which opens the job. A row that wants something names it with a button: Award it, Approve, Authorize bill, Review overage, Chase the bill, See the bids. Voided records stay listed, struck through.

Search covers every record, not just the view you're on. It matches document numbers, jobs, vendors, line items and amounts. Display holds the column choice, Group by PM and the sort (newest, by vendor, largest first), and all three are remembered. Export downloads the list.

On a job, the POs tab still lists that job's requests and purchase orders together, with Requested and Ready to award tiles beside the bill tiles, counting only that job. It also names any order where the work is finished and the bill still hasn't come in.

Comparing prices and awarding

Open a request to see the prices back. Once two or more are in, Compare line by line opens the comparison: every vendor's price against the same lines, with your internal expected cost beside them (marked internal only).

  • The lowest price on each line is marked.
  • A line a vendor can't do shows Can't do this.
  • A vendor who answered with one number shows priced as one total. Their blank lines aren't read as zero.
  • A vendor who priced only some lines shows "for 3 of 4 lines" and not comparable on the total. When a partial bid looks cheaper only because it left something out, the page says so.

Award confirms the winner, the amount and the purchase order number before anything happens. If the winning bid left lines unpriced, the purchase order lists them as not included, so you arrange that work yourself. You can add a short note to the vendors who weren't picked.

Awarding issues the purchase order and tells the winner and everyone else at the same moment. Nobody sees another vendor's number, then or later, and only the winner gets a purchase order number. If the amount is over your approval limit, the award asks who should approve it (owners and admins can approve their own). The winner is told they were chosen and gets the purchase order once it's approved.

Ask for a revision sends a vendor your note. There's a preset one asking them to break their price down by line. The record shows that you asked, not that they changed anything. Their next answer is what changes the price.

A request that's past its due date, or that everyone declined, offers three ways forward:

  • Ask another subtrade adds vendors to the same request. The prices already in stay.
  • Price it yourself opens a purchase order carrying the request's scope and lines, and closes the request.
  • Close it ends the request. Every answer stays on the record.

The purchase order record

A purchase order opens in a wide sheet over the page you're on, with five tabs: Overview, Scope & pricing, Schedule, Bills & approvals and History. The number, vendor, job and status sit above the tabs, with whichever of Edit, Amend, Close PO, Reopen and Void apply. A button you can't use right now stays visible but greyed out, with the reason printed underneath.

Overview leads with the one thing someone is waiting on and names the tab it's in. A tab holding something that needs you carries a dot, and an unread message from the vendor puts one on Overview. Overview also shows where the order has got to, what's still outstanding before it closes, and how many orders this vendor holds on the job.

Scope & pricing has the full scope of work (the header shows only its first line), the lines, the authorized amount and its basis, every amendment, the document the vendor received, and what you shared. History has the request it came from with every price, every amendment, the whole message thread, and the audit log of everything that happened, with who and when.

The Messages section on Overview shows the latest few messages with the vendor, and History has the rest. You can write to them while the order is out, but not while it waits for approval or after it's closed or voided. They get each message by email and answer from their portal, and their replies are emailed to the people assigned to the conversation.

The Assigned to control at the top of Messages shows who that is. It starts with the person who issued the order and the job's project manager. Click it to add or remove people; each person is emailed the way they chose under Settings, Notifications. Owners and admins see every conversation. Everyone else sees the conversations on jobs they are on (as project manager, tech or crew, or on a work order) and the ones they are assigned to. If anyone assigned replies, or sets No reply needed, it's handled for everybody.

Start dates and the calendar

Once a subtrade has a purchase order, their next step is to suggest a start date. They pick one day and are told not to start until you approve it.

A suggested day shows on the Calendar in the job's colour, hatched, with a clock and Start · proposed. The To be scheduled rail lists what's waiting on you:

  • A suggested day offers Approve or Another day.
  • A won job with no date yet offers Ask for a date, which sends the vendor a message asking for one.

The job's project manager, owners and admins decide start dates. Asking for another day, or rejecting one, needs a reason, and the vendor sees it word for word. Only approving books the day. Every day they suggested stays on the Schedule tab with what happened to it.

To move a booked day, drag it on the calendar and confirm Move it. The vendor is told and asked to confirm the new day. Booked start dates also go out through calendar sync.

Changing a purchase order

Owners and admins can award, amend, void, close and reopen. Project managers and other staff raise requests and orders on the jobs they manage, edit them, ask vendors again and chase bills. On a record with no job, you can change what you created. Anything else is greyed out with the reason, or left out of the row menu.

  • Edit changes it in place and keeps its number. It's only offered before the order has reached anyone, for example after an approver sent it back. Moving it to a different job or vendor then gives it a number from that job or vendor. A request can be edited until the first price comes in. Who you asked and the job stay as they are.
  • Amend changes the scope, the amount, or both once the order is out. Edit the scope or enter a new amount (leave the amount blank to keep it), then give a reason. The reason prints on the revised purchase order, which goes to the vendor marked as replacing the earlier one, and their email says what changed. The original scope and amount stay on the record. If the change takes the order over your approval limit, it goes for approval first, and the vendor keeps the current document until it's approved. On time and materials the vendor never sees your estimate: a new amount alone sends them nothing, and a scope change tells them only that the scope changed.
  • Void cancels it. Pick a reason. The order stays listed, struck through, and the vendor is told it's cancelled. Its committed cost comes off the job, and a bill waiting for review is refused with that reason. A voided order can't be un-voided, but Raise a replacement on it opens a new order with the same job, vendor, lines and pricing basis. The new order links back to the voided one, and the voided number is never reused. Void is greyed out, with the reason, once a bill is authorized or the cost is on a client invoice.
  • Close PO is for when no bill is coming, like work called off part-way. The note is optional. It leaves Waiting on vendor bill, and if nothing was billed, the amount stops counting toward the job's costs. The vendor isn't told. If a bill does arrive later, it still lands on the order and reopens it for you to authorize. Close is greyed out while a bill waits for your decision.
  • Reopen brings back an order you closed by hand, in one click.

A purchase order also closes on its own when its bill is authorized. That's logged as "Bill authorized, purchase order closed."

Requests have Close request and Void. A voided request tells every vendor you asked that it was cancelled.

Receiving a supplier order

When a supplier's delivery arrives, open the order, go to Bills & approvals and press Receive it. Enter how many of each line turned up and the price each was delivered at. The difference from the ordered price shows on the order. Anyone who can see the order on its job or branch can receive it.

  • On a job order, the goods go to the job. Its cost stays at the purchase order amount until the bill is authorized.
  • On a no-job order, materials go into the branch's stock at the price delivered.

A partial delivery leaves the order open showing received against ordered. Press Receive the rest when the rest arrives. If it isn't coming, tick Close it short in the same sheet and the order stops asking for it. The bill should then cover only what arrived. See Stock and inventory for what happens to the stock.

The vendor's bill

Each purchase order takes one bill. A subtrade sends theirs from their portal, against the order, so it ties itself. For a bill that came by email or on paper, press Upload their bill on Bills & approvals. It's read for you, and each value AI filled in carries a sparkle mark until you change it. If the file can't be read, you type the bill in yourself. If the bill quotes a different purchase order number, the sheet says so, and the saved bill keeps saying so until it's decided. Credit memos can't be added this way. Nothing is filed until someone authorizes it.

A bill in review puts its buttons at the foot of the record, so they show on every tab. Only people who approve expenses see them:

  • Authorize files the cost, closes the purchase order and sends the bill to QuickBooks. You can do it yourself, or send it to someone else who approves expenses. Once it's with them, only they can authorize it.
  • Send back to fix returns a portal bill to the vendor with your reason. They amend it and send it again.
  • Refuse it turns the bill down. The vendor sees your reason, nothing is owed on it, and the purchase order stays open for a new bill.

A bill your team uploaded, or one that came in by email, offers Ask for a corrected bill instead of Send back. When the new one arrives, press Upload a corrected bill. A bill your team uploaded also offers Edit, to fix what was typed in while it waits.

A bill for more than the order is flagged Over PO, never refused automatically. Authorizing it accepts the overage and amends the purchase order to the billed amount. The original stays on the record, and the amendment doesn't need approval again. On a T&M placeholder, authorizing records the actual cost the same way.

If the work is finished, or the goods delivered, and three days pass with no bill, the order shows No bill yet with the number of days and counts as needing you. Ask them for their bill sends the vendor a reminder and logs it. Nothing is sent automatically.

All vendor bills, from every job and from no job, are also listed on Invoicing & Payments → Payable. See Payables.

Tax on the bill

When a bill has tax and QuickBooks is connected, QuickBooks tax on Bills & approvals lists each of the vendor's taxes and says whether QuickBooks already has it. Each tax is matched to its own QuickBooks rate, and the code is the one built from exactly those rates, so most bills just say Posts with and the code. Press Change to pick another. If two codes fit, both are shown and the one used most is picked. The bill can't be authorized until it has a code.

If QuickBooks has no code for these taxes, the section says so and shows what will be made: the code name (for example "GST + PST 12%"), each rate (reused if QuickBooks already has it, new if not), and who each new rate is paid to. GST and HST go to the Canada Revenue Agency, and PST and QST to that province's agency. If the app can't tell, pick the agency under Paid to, or create a new one there. Then press Create GST + PST 12%. Nothing is made before you press it. The new code is saved on the bill, and the creation shows in the order's History. Only owners, admins and accounting staff can create codes.