Deep Space (Platform)Sep 7, 2026

What Got Shipped Today - 7/9/26 - Estimation gets one price, the Document Register prints itself, and the client portal gets its own roles

Monday 7 September 2026 Features Export the Document Register as a Drawing Log PDF User Story As a document controller, I could send someone the drawings but never the list of them, so I can now print or email a proper drawing log straight from the register. Before The Document Register could filter, group, transmit, download files and push to DS Site. What it could not do was export the register itself. Builders who wanted a drawing log to attach to a transmittal, hand to a client, or pin up in the site office had to rebuild it by hand in a spreadsheet or go back to the consultant's own schedule. After An Export PDF button in the register toolbar produces a landscape drawing log of exactly what is on screen, after your filters and sorting and across every page, not just the one you are looking at. Columns run Drawing Number, Drawing Title, Revision, Drawing Date, Uploaded, Set and Status, grouped under discipline bands, with your company logo, the project details and the print time in a header that repeats on every page. One deliberate honesty note. The fifth column is labelled Uploaded, not Received Date, because that is what the platform actually knows. A date of receipt carries contractual weight in construction, so we would rather label the column truthfully than let a system timestamp masquerade as one.Impact The register stops being a screen you look at and becomes a document you can issue. It matches the format the industry already reads, so nobody has to be taught how to interpret it. Client Representative and Superintendent Roles for the Client Portal User Story As a client contact, I needed to bring my own people into the portal without asking the builder to do it for me, so I can now invite them myself, into roles that belong to the client side. Before The invite button in the client portal offered subcontractor roles, which is the wrong answer for a client. It was removed rather than left to over-grant, which left client contacts unable to add anyone at all. After The client portal has its own two roles. Client Representative gets full client portal access and can manage team members. Superintendent sees the same pages with no team management, and it is the option preselected in the invite dialog, so a mis-click under-grants rather than over-grants. Each portal now only ever offers the roles that belong to it: a client never sees a subcontractor option, and a subcontractor never sees a client one. The platform refuses a role that does not match the portal the invite came from, as a security check rather than a convenience. Worth being precise about the naming. Superintendent here is a permission tier, not a claim that this person is the Superintendent named in the contract. Contract party identity still lives in project stakeholder membership, and it stays there.Impact Client teams grow themselves instead of queuing behind the builder's admin. The builder keeps control of what a client role can reach, without being the bottleneck on who holds it. Push the Document Register to DS Site Automatically User Story As a project manager, I had to remember to push every newly registered drawing to DS Site, so I can now switch that on once and let the platform keep site current. Before Pushing the Document Register to DS Site landed last week, and it worked. It also had to be done by hand, every time, by someone who remembered. A drawing promoted at 5pm sat in the register overnight while the crew on site had yesterday's set on their phones. After Project Settings now has a real Advanced section, and its first setting is a per project toggle: automatically push Document Register documents to DS Site. Turn it on and every promote and every new revision for that project queues its own push, arriving on DS Site a couple of seconds after the source job finishes. A new revision refreshes the copy already on site rather than stacking a duplicate beside it. Under that toggle we also closed the last gap in coverage. Every path that registers or revises a document, including the Explorer bulk promote and the detail drawer, now commits through the same job, which is what makes the automatic push fire no matter how the document got there.Impact The set on site stops being a copy someone has to maintain. It becomes the register, a few seconds behind. Known limitations Off by default, per project. Turning it on does not back fill, so use the manual push once to catch up, then let it run. PDF only, the same rule as every push. Release Retention on a Head Contract Claim User Story As a commercial manager reaching practical completion, I could see the retention we held but had no way to give any of it back, so I can now put the release on the claim where it belongs. Before The platform held head contract retention correctly and stored the release schedule. Head Contract Retentions was a ledger of what was held with no transaction that drew the balance back down. Builders hitting practical completion found the final claim and the release could not sit on the same claim, and standard practice is that they do, because most contracts allow one claim a month. The workaround was asking the client to accept two claims. After A retention release line can be added to a head contract progress claim. Enter the amount, the date and the reason, whether that is practical completion, defects liability or something the contract negotiated. The register balance for that head contract reduces by exactly that amount, and the net payable on the claim increases by it. Net payable now reads as certified this claim, less retention withheld this claim, plus retention released this claim. The release carries onto the progress claim, the payment schedule and the invoice documents. It works on a normal monthly claim and on a standalone claim that carries nothing but a release. A release cannot exceed the balance currently held, and reverting or deleting the claim reverses the event.Impact Practical completion stops being a conversation you have with your client about accepting two claims. The retention register finally has both sides of the ledger, so the balance in the platform is the balance you can defend. Improvements One Price, One Source of Truth on Every BoQ Line User Story As an estimator, I had two margin engines that disagreed with each other and no way to know which number was the real one, so I can now price on the line and trust every total above it. Before Estimation carried a Global Markups and Adjustments tab alongside line level margin, and they were separate engines. On one live estimate they were roughly a million dollars apart, with Sell reading zero while Markup and Margin sat blank. Prelims and contingency as a global percentage never matched how estimators here actually work either. Prelims are priced lines in their own section, and contingency and provisional sums are lines tagged as such at zero margin. After The Global Markups and Adjustments tab is gone, along with its compounding, its base cost and its category adjustments. Not hidden, deleted. Every BoQ line now carries Unit Rate, Markup, Margin and Sell Rate. Enter any one of markup, margin or sell rate and the other two derive. Markup is on cost, margin is on sell, and the platform says so on the line. Header totals and section subtotals sum the lines and nothing else, so no screen in Estimation can produce a total that differs from the BoQ. A default margin at estimate level handles imports and new lines: it writes a margin onto the line when it is created, rather than floating above it as a live calculation. Provisional sum, prime cost and contingency lines default to zero margin, overridable per line, because contract terms differ on how provisional sums adjust.Impact There is one number now, and it is the one on the line. Import a cost only BoQ and every line gets a sell rate. Change one line's margin and the header moves by exactly that amount. An estimator can hand a total to a director without first working out which of four figures the platform meant. The BOQ Builder in Estimation: Unit Rate, Sell Rate, Markup and Margin all live on the line, header totals sum those lines and nothing else, and the Margin and Adjustments tab is gone. Cost Total and Sell Total Are Separate Columns in the BoQ Export User Story As an estimator sending a BoQ to a colleague, my export had one column called Total that was really the cost, so I can now export both figures with the right names on them. Before The BoQ export carried a single Total column holding the cost total. Anyone opening the file read it as the value of the line. After Two columns. Cost Total says what it is, and Sell Total sits alongside it. Impact A file leaving Deep Space no longer needs a covering note explaining what its own column headings mean. Roll a Head Contract Claim Up to SOV Sections User Story As a commercial manager, my generated claim printed every SOV line including its cost code, so I can now serve the client the section level summary they actually contracted for. Before The generated head contract progress claim printed every SOV line item. Builders who deliberately built their schedule of values in groups so they could present at group level got the full line by line breakdown instead, cost code attribution, contingency, margin and all. That is not a cosmetic problem. It is not something a commercial manager can put in front of a client. After A show SOV sections only setting on the head contract rolls the generated claim up to group headers with a claimed value per group and no child lines. The setting lives with the contract, not in a bespoke document template built per job, so a builder running many concurrent contracts sets it where it belongs. Ungrouped schedules behave exactly as they do today, and the full line by line breakdown is still there for the places it is genuinely wanted.Impact The effort of building a grouped SOV finally pays off in the document that leaves the building. Nobody has to choose between a claim the client can read and a claim that does not disclose internal cost allocation. The Explorer Remembers Where You Were User Story As a document controller working through one folder, every trip into the viewer dumped me back at the top, so I can now come back to the folder I was in. Before Opening a file from the Explorer took you to the full screen viewer. Coming back landed you at the root, so working through a folder of forty drawings meant navigating back into it forty times. After The Explorer holds its view state across the viewer round trip. Back returns you to the folder, scrolled where you left it. Impact Checking a set of drawings stops being a navigation exercise. The Client Preview Stops Repeating Itself User Story As an estimator sending a proposal, an expanded line printed the rate twice, so I can now send it without explaining the duplication. Before An expanded child row read the trade name with a quantity and rate in brackets, sitting next to a money cell already showing the same figure. Most of these lines are quantity of one lump sums, so the annotation was restating the number beside it. After The annotation is gone where the quantity is one. The money cell carries the figure, once. Impact A client facing proposal that reads like it was proofread. Fixes Every Commitment Appears in the Invoice Register Match Pickers User Story As a contract administrator matching an invoice, the commitment I needed was not in the list, so I can now find it. Before The lookups behind the invoice register's match pickers sent no limit, so the platform applied its default of fifty rows, newest first. If the purchase order or subcontract you were matching against was not among the fifty most recently created, there was no way to reach it, and nothing on screen said the list was truncated. After The pickers query the full set. Every commitment on the project is available to match against. Impact Invoice matching stops silently failing on older commitments, which is exactly the set a job in delivery is working through. Approval Steps Warn When a Role Has Nobody In It User Story As an administrator setting up a delegation of authority, I could build a step assigned to a role with no people in it and only find out when an approval went nowhere, so I can now be told at the point I save it. Before An approval step could name a role that had no members. The step was valid on paper and dead in practice, and the discovery happened downstream when something needed approving. After Creating or updating a threshold or workflow checks every step for a role with nobody in it and warns you on save, without blocking the save. The fallback to highest authority now covers that case too, so an approval already in flight keeps moving instead of stalling. Impact A delegation of authority that looks configured is configured. Approvals stop dying quietly on an empty role. Keep the feedback coming, we're here to listen to you, and thanks for your support.

How do you feel about this update?

Tap a face to rate