What Got Shipped Today - 17/8/26 - Provisional Sums end to end, budget guardrails at PO, bulk push to DS Site
17 August 2026 Twelve changes reached production today. The through-line is money: Provisional Sums finally connect end to end, purchase orders warn you before you commit past budget, and approved supplier invoices stop waiting on a manual click. Features Attach files to a reply on a notice As a Contract Administrator, I could read an RFI in Deep Space but had to answer it by email whenever the answer needed a marked-up drawing, so I can now attach the file to the reply itself and keep the whole exchange in one thread. Before. Replies to notices were text only. The moment a response needed a sketch, a photo or a revised detail, the conversation left the platform and finished in an inbox. The notice register recorded that a reply happened, not what was actually sent. After. Attach files directly to an in-app reply. The attachment travels with the response, sits against the notice, and stays in the record. Impact. The notice register becomes a complete account of the exchange rather than a pointer to one. When a claim turns on what was asked and what was answered, the evidence is where you left it. Push a whole selection to DS Site at once As a Document Controller, I had to open every drawing one at a time to push it out to the field, so I can now select the lot and send them in a single action. Before. Push to DS Site existed on one file at a time, in the file detail drawer. Getting a revised drawing set to site meant opening, pushing, closing, and repeating for every sheet. After. Select files with the checkboxes and use Push to DS Site from the bulk toolbar. PDFs in the selection go across in sequence, with a progress indicator and a summary at the end that tells you exactly what landed and what did not. Impact. A drawing set that took a dozen separate actions now takes one. Repeat pushes are safe, so re-running a batch after a partial failure does not create duplicates on site. Known limitations. PDFs only in this version. Non-PDF selections are skipped. Folder structure is not yet preserved on the DS Site side. Subcontractors can see what they have been awarded As a subcontractor, I could log into the portal and submit a claim but could not see the purchase order or subcontract the claim was against, so I can now open the project and read exactly what has been issued to me. Before. The Commercial section of the subbie portal showed claims without showing what they were claimed against. Subcontractors asked the builder for their own paperwork. After. A Contracts and Orders view lists every purchase order and subcontract issued to that company on that project, read-only, with the documents attached. Impact. Fewer "can you send me a copy of our order" emails landing on the Contract Administrator. The subcontractor checks their own scope before they claim against it, which means fewer claims that do not reconcile. Margin on Provisional Sum scope lines As a Quantity Surveyor, I could set a cost rate and a sell rate on a Provisional Sum line but nothing recorded whether the gap was a markup on cost or a margin on sell, so I can now state the calculation method and have the sell rate derive from it. Before. Cost Rate and Sell Rate existed on Provisional Sum scope lines, but margin could only be expressed by typing a different sell rate by hand. Nothing derived it, displayed it, or recorded the intent. Estimation already carried a Margin % field, so the expressiveness was lost the moment a line reached the PS Register. After. Provisional Sum scope lines carry Margin % and Markup % alongside Cost Rate and Sell Rate, matching the convention already used on head contract variations. Sell derives from cost and the chosen method rather than being typed independently. A margin of zero stays a legitimate value. Impact. AS4000 pays actual cost plus the builder's margin. ABIC pays actual with no margin. NZS3910 returns savings to the Principal. All three are now expressible on the same line, without a spreadsheet alongside to remember which was which. Internal Team on the project Team tab As a workspace administrator, I had to grant a staff member project access and assign their project role as two separate jobs in two places, so I can now assign the role and have the access follow it. Before. Bringing an internal staff member onto a project meant assigning a project role in one place and granting project access in another. Miss the second step and the person held a role they could not act on. After. An Internal Team section on the Team tab lists everyone from your own company. Assign a project role and the matching project access is granted with it, with per-member permissions set according to the role rather than a blanket grant. Impact. Onboarding someone onto a project is one action instead of two, and a Junior Contract Administrator no longer quietly picks up permissions that belong to a Commercial Manager. Improvements Budget guardrails when you raise a purchase order As a Commercial Manager, I only found out a cost had been coded to the wrong cost code, or to one already over budget, when the budget had already blown, so I can now see it at the moment the commitment is made. Before. The purchase order form said nothing about how the commitment landed against the cost code's budget. Coding to a cost code with no budget allocated, or one the commitment would push over, drew no reaction at all. The first signal came at reporting or invoice stage, by which point clearing it meant a full cost transfer. After. Coding a line to a cost code shows its revised and remaining position inline. If the commitment takes the code over budget, an alert names the code and shows both figures. You can still proceed where the overspend is deliberate. Where the code has already breached its revised budget, the commitment is blocked. Impact. Overspend gets caught at the point of commitment rather than discovered after the money is out the door. Most of the value is the misallocation it prevents: catching a wrong cost code while the form is still open saves the cost transfer that would otherwise be needed weeks later. Approved supplier invoices push themselves to Xero As a finance administrator, I approved a supplier invoice and then had to remember to click Push to Xero before it existed as a bill, so I can now let approval do both. Before. A supplier invoice came in, matched to a purchase order, went through approval, and then sat there. The Bill to Pay only existed in Xero once someone clicked Push to Xero manually. Approved invoices were not payable invoices. Subcontractor payment schedules had already stopped working this way; the purchase order path was the last one still asking for the extra click. After. When the final required approval completes on a PO-matched supplier invoice, the Xero bill push fires automatically. Manual Push to Xero remains available as a fallback for anything that fails. Impact. The gap between approved and payable closes. A failed push leaves the invoice approved and retryable, so nothing goes back through approval a second time. Site Photos gets an album index As a Site Manager, I lost track of my albums after creating a handful because they were a row of truncated chips with no search, so I can now browse them as cards and find one by name. Before. Albums were a horizontal chips row. It worked for three albums and stopped working at ten. No covers, no search, no ordering, no way to tell a shared album from a private one at a glance. After. Albums have their own index: a card grid with a cover thumbnail, the album name, the photo count, and a badge on anything shared by link. Filter by name as you type, and sort by recently updated, name, or photo count. Impact. Photo albums stay usable past the first month of a job. Finding last month's set of defect photos is a search rather than a scan. Fixes A Provisional Sum tagged in the estimate now appears in the register Before. Tagging a BOQ line as PS correctly stripped it from the Budget Register but created nothing in the Provisional Sum Register. The allowance ended up in neither place, with no error shown. A builder could tag allowances across a whole estimate and finish with an understated budget and an empty register. After. Tagging a line as PS seeds a matching Draft in the Provisional Sum Register, including on the Refresh Data path where it previously did not fire. Impact. The estimate-to-register chain works from the first step, which is the path the whole Provisional Sum workflow assumes. Allowances tagged in Estimation stop disappearing silently. Approved Provisional Sums now reach the Budget Register Before. Approved PS never landed in the Budget Register. Approved PS Cost and Pending PS Cost rendered but stayed empty on every row, and Revised Budget did not move when a PS was approved. Revised Budget understated the project by the full value of every approved allowance, and variance was computed against that understated figure. After. Approved and pending Provisional Sums flow through to their cost codes and into Revised Budget. Manually created Provisional Sums now join correctly regardless of how the cost code was entered, and existing records join at aggregation time with no migration needed. Impact. Revised Budget carries the allowances again, so variance means something. On the test project this moved a cost code from zero to sixty thousand dollars of revised budget and cleared a false ninety-thousand-dollar under-budget reading. Forecast Validation stops blocking on something you cannot fix Before. Forecast Validation could fail on a cost code showing zero committed against a negative remaining, telling the user to correct the commitment coding. There were no commitments to correct. The forecast could not be validated and the message offered no way forward. After. The rule no longer blocks on a condition the user cannot act on, and where a negative remaining is genuine the message names the actual cause. Impact. A Quantity Surveyor can finish a forecast instead of getting stuck behind a validation error with no exit. Subcontract retention now respects the cap Before. The retention figure on the subcontract view was calculated without applying the retention cap, so the displayed value ran higher than the amount actually held. After. The capped value is used, matching what the claim and the register report. Impact. The retention figure a Contract Administrator reads on the subcontract is the figure that gets held. One less number to reconcile by hand before a payment schedule goes out. Something here you would do differently, or something missing? Tell us through the feedback portal in the platform. We read every one, and a good share of what shipped today started there.
How do you feel about this update?
