CommercialSep 14, 2026

What Got Shipped Today - 14/9/26 - Contracts signed outside Deep Space finally count, a provisional sum shows its variations, and the cash flow stops flattering itself

14 September 2026 Features Upload an Executed PDF and the record is executed User Story As a Contract Administrator, I had contracts signed in DocuSign or in wet ink with nowhere to put them, so I can now upload the executed copy and move the record forward. Before Every route to Executed ran through the in-app e-signature chain, which meant the contract had to be generated from a Deep Space template first. If your template was not configured yet, still being corrected, or the contract was signed on another platform, there was no way to record the executed agreement. Subcontracts had no path at all. Head contracts accepted the file but never persisted the status, so the register kept showing Draft. Purchase orders had no home for a signed copy. People dropped the PDF into the Documents tab as a loose attachment and hoped. After The Agreement tab on Subcontracts, Head Contracts and Purchase Orders now carries Upload Executed PDF. Upload the signed copy, confirm the actual execution date (not the upload timestamp), and the record moves to Executed. The file lands in the same place the e-signed pack would, appears in Attachments and Documents, and is marked as uploaded so it stays distinguishable from an in-app signature. A purchase order executed outside Deep Space no longer gets pulled back to draft. Impact Template readiness comes off the critical path. Contracts that were stalled waiting on a document template can be executed today, and everything downstream (claims, payment schedules, retention timing) starts behaving as if the contract were signed, because it was. Uploading an executed copy asks for the real execution date, not today's, because that date drives retention timing and claim validity. If the record is already out for e-signature, that request is superseded and the outstanding signing link cancelled. A head contract signed outside Deep Space, marked Executed the moment the signed copy lands, and archived to the CDE. A provisional sum shows the variations it raised User Story As a Commercial Manager, I could see that an allowance had moved the contract sum but had no way to find the variation that carried it, so I can now open the allowance and see every variation it raised, with a link straight to each one. Before Every over-run crossing and close-out credit raises a head contract variation. That variation showed up on the schedule of values and in the Variations register, but from the provisional sum itself there was nothing: no variation number, no status, no value, no link. The adjustment summary said only "Carried by variation(s)" and left you to go hunting. The reverse direction was just as blind, a variation raised from an allowance never named the allowance it came from. After The provisional sum drawer now carries a Variations raised by this allowance block: one row per variation, ordered by drawdown, showing the variation number, its status chip, the value it carries, which drawdown raised it, and a link that opens it in the register. The rows sum to the net adjustment, so the figures reconcile on screen. Each drawdown card shows the variation it produced. The Head Contract provisional sums tab shows the count and total per allowance. And a variation raised from an allowance now says so at the top of its sidebar, linking back. Impact Provisional sum movement becomes auditable in both directions without leaving the screen. When a client asks which variation covers the overrun on an allowance, the answer is one click away rather than a reconciliation exercise. One way to record a bid, whether it was typed or read from a quote User Story As an Estimator, I had one button for recording a bid on behalf of a subcontractor and a different one for turning an uploaded quote into a bid, so I can now do both from the same place and stop ending up with the same vendor twice in the comparison. Before Recording a bid on behalf and promoting a quote are the same act, a builder vouching for a price that arrived outside the portal. They differed only in where the number came from. Two entry points and two modals for one act, and a manual entry with an emailed PDF created a bid with no quote record and no link, which is exactly what produced duplicate columns for the same vendor. A package holding only quotes could not carry an adjustment or generate a recommendation at all. After Record bid on behalf now asks where the price comes from: pick one of the package's quotes and it prefills the subcontractor, the ex-GST headline and the source note, or type it by hand as before. A bid that arrives as a document is stored as a quote first, read by KAI in the background, then recorded as a bid from that quote, so every document-borne bid has a source record and can never be counted twice. Promote to bid on the Quotes tab still exists, it just opens the same modal with that quote already selected. Generate Recommendation now tells you to promote a quote first instead of failing. Impact One act, one modal, one record. The comparison stops double-counting vendors, and a quote-only package can go all the way through adjustment, recommendation, approval and award. Upload a revision for one drawing without the bulk flow User Story As a Document Controller, I had to open the bulk set-matching modal to revise a single drawing, so I can now upload that revision straight from the document I already have open. Before The only route to a revision was Upload revisions on the register toolbar: pick a set, drop files, drag each one onto its drawing. For "this one drawing has a new revision" that is a long detour. Worse, the document drawer showed an Upload New Version button that did nothing at all when opened from the register. No modal, no error, no toast. A button that silently fails is a trust problem. After The dead button is gone from the register drawer, replaced by Upload Revision for the document you are looking at. The modal carries the drawing's registered metadata, prefilled with the revision already bumped, so you can see what is on record while you upload. You can also compare the current revision against the file you just picked, before it goes anywhere. Impact A single-drawing revision takes seconds instead of a trip through a bulk workflow built for twenty files, and the compare step catches the wrong file before it lands on the register. Download invoice attachments in bulk User Story As an Accounts Payable officer, I saved invoice attachments one at a time, so I can now pull them down together. Before Every attachment in the invoice register and inbox came down individually. Month-end meant a lot of clicking. After A download action on the invoice register pulls the attachments together in one go. Impact Assembling a payment run or handing a batch to your accountant stops being a per-file exercise. Improvements Program stops appearing twice User Story As a Project Manager, I saw every Program page listed in the sidebar and again in the tab bar above it, so I can now navigate Program without reading the same list twice. Before Program was the only module whose pages rendered in two navigations at once, and the two were built separately, so they had already drifted apart. The tab bar was missing Programme Analytics entirely, showed pages your role could not open (landing you on an Access Restricted message), and dropped the project from the address when you clicked a tab. If you had arrived from a cash flow or procurement deep link, your first tab click quietly switched you to a different project's data with nothing on screen to say so. After Both navigations now read from the same workspace menu. The sidebar keeps Dashboard, Construction Program and Programme Analytics; the tab bar carries the full set. Tabs respect your permissions, so you no longer see doors you cannot open, and the project you are working on travels with you across every tab. Impact No more duplicated list, no more dead-end tabs, and no more silently reading the wrong project's programme because a tab click dropped the project from the URL. The invoice detail drawer opens wider User Story As an Accounts team member, I read invoice detail through a narrow drawer, so I can now widen it to see the whole record. Before The invoice detail drawer had a fixed width. Longer descriptions and wider line tables were cut off or wrapped awkwardly. After The drawer is adjustable. Pull it out to fit the record you are reading. Impact Coding a line-heavy invoice stops requiring horizontal scrolling inside a narrow panel. The invoice inbox fills the page it has User Story As an Accounts team member, I was paging through the invoice inbox four emails at a time, so I can now see the full list on the first screen. Before The inbox paginated across several pages while leaving most of the first page empty. Four emails on screen, the rest a click away, with white space below them. After The first page fills the space available. The archived filter was corrected in the same pass, so what you are looking at is what is actually in the inbox. Impact Working the inbox down stops being a pagination exercise. Fixes The cash flow stops understating what you need to fund User Story As a Commercial Manager, I took the peak funding figure to the bank, so I can now trust that the number on screen is either the real trough or is clearly labelled as not knowing. Before The "Funding requirement so far" card reported a figure bounded by whatever the forecast window happened to show, not by the contract term. On a project still falling at the window edge, the headline was the deepest point the grid could draw rather than the deepest point of the job. A floor presented with the same visual weight as an answer. Understating peak funding is wrong in the dangerous direction. After The window now reaches the contract end date, so the trough falls inside it. Where the position still has not turned, the card says so plainly instead of handing over a number it cannot stand behind. Impact The figure a director takes to the board or the bank is either the real peak or is openly marked as indeterminate. No more quiet optimism in the one place it costs the most. The Document Register refreshes when a revision job finishes User Story As a Document Controller, I uploaded revisions and watched the register keep showing the old data, so I can now see the new revision land without reloading the page. Before After a revision upload completed, the register kept displaying the previous revision for the documents just revised. Only a full page reload corrected it. Switching tabs did not help. This affected the bulk revision flow too, not just single documents. After A completed revision job refreshes the register on its own. The row updates when the work finishes. Impact You stop wondering whether the upload worked, and stop reloading to find out. Your Head Contract ID stays your Head Contract ID User Story As a Contract Administrator, I entered the client's formal contract reference and Deep Space replaced it with its own, so I can now record the number that matches the client's paperwork. Before A custom Contract ID entered on a head contract was discarded on save, and the system-generated reference appeared everywhere instead: register, drawer, generated documents and correspondence. Builders who need the contract ID to match their client's own contract register (common on larger head contracts) could not reconcile the two. After The entered Contract ID persists and displays everywhere the contract reference appears. Impact Your records and your client's records refer to the same contract by the same name. Financial summary margin columns stay inside the window Before The margin columns on the financial summary ran past the edge of the window, putting figures out of reach with no way to scroll to them. After The columns scroll within the window. Every figure is reachable. Impact The full margin picture is visible on screen, whatever your display width. Changing the currency on an invoice no longer throws an error screen Before Editing the currency field on an invoice in the inbox dropped the user onto an error screen, losing the work in progress. After The currency field has been removed from the invoice detail, so the path that failed no longer exists. Impact Coding an invoice runs through without hitting a wall. Tell us what to build next. The feedback portal is in the platform, and we read every entry.

How do you feel about this update?

Tap a face to rate