โจ New
View BIM models right in your browser
You can now upload an IFC building model and view it directly on the project page โ no separate software needed to open and inspect the 3D model.
Estimation now follows a guided, step-by-step workflow
When enabled, a BuildRoom project's estimation now moves through clear stages โ Take-Off, BOM Review, Estimate, Quote Review, Approval and Submit โ with automatic hand-offs between steps instead of relying on someone to manually advance the project.
Building details are now generated straight from your IFC model
When you confirm a project from an ITB, BuildRoom now creates the building model and floor details directly from the IFC data and links each plan sheet to the right floor automatically.
Estimation work can now be scoped to a department
A trade scope must now be assigned to a department before its estimation can be launched, and each step of the process โ Take-Off, BOM Review, Estimate, Quote Review, Approval and Submit โ is only open to people in that department. Department assignment now happens up front, in the same step where you launch the estimation.
Approval now goes to everyone who can sign in the department, not just one person
Instead of two fixed approver slots, every eligible signer in the assigned department is added to the approval roster automatically, and the roster can be refreshed if the department's members change while an approval is in progress.
Review an ITB side-by-side with its extracted fields
When creating a project from an ITB, you can now see the uploaded PDF next to the extracted fields. Selecting a field jumps straight to where it was found in the document and highlights it, so you can quickly check the extraction was correct.
Get notified about key BuildRoom estimation milestones
You'll now receive notifications when a bid is submitted, a BOM or quote is approved, it's your turn to sign off on an approval, an estimate is locked, a trade scope is assigned to your department, and other key moments in the estimation process.
Overhead percentage is now adjustable within a set range
Overhead was fixed at 12%. With the right permission, you can now set it anywhere from 10% to 12% during the Estimate step, and the change is reflected everywhere the total is used โ the worksheet, the quote document, and Approval.
See a trade scope's full revision history
Opening the version badge now shows a read-only history of every version of a trade scope โ what triggered each new version and the reason an approver gave when returning it for revision.
General Contractors now have their own contacts list
You can view, add and search contacts directly from a General Contractor's page, and mark one contact as primary โ if another contact is already marked primary, you'll be asked to confirm before replacing it.
Assign drawing sheets to building floors
You can now link an uploaded drawing sheet to a specific floor of the building model (and remove that link later), so floor-by-floor take-offs line up with the right sheet.
See at a glance when a bid has expired
A project that's still in bidding now shows a banner on the project and launch pages once its bid deadline has passed, so it's obvious the window has closed without having to check the date yourself.
Units of measure for components, BOM lines, quotes, and estimates
Instead of typing a free-text unit, you now pick from a managed list of units of measure (each with its own precision and conversion rules) when working with components, bill-of-materials lines, quote lines, and estimation lines. This keeps quantities and units consistent across a project.
Project activity log
Every project now has an Activity tab showing a day-by-day history of what's happened on it โ approvals, quote submissions, version seals, take-off confirmations, BOM approvals, and more โ in plain language, with filters for gates, seals and versions, or documents.
My Work: a personalized home base for contractors
Contractor accounts now land on a My Work page instead of a placeholder screen. It shows approvals waiting for your signature and your active trade scopes in one place.
Try the app with realistic sample data
Administrators can now create (and later remove) a full sample scenario from Administration โ Demo Data: a pricing catalog, sample contractors and contacts, and a set of projects covering every stage of the bid pipeline, useful for demos and training.
See the full history of every price import, row by row
A new Import History page under Material Catalog lists every price file you've imported, with counts of rows updated, skipped, or errored. Open any import to see exactly what happened to each row.
New help guides on the Parts & Assemblies and Discount Rules pages
The Parts & Assemblies list and Discount Rules list now include a "what this page is for" help panel that walks through how to browse, add parts or assemblies, import price files, and how discount rules are chosen when more than one could apply.
Set up labor rates and price labor accurately on every bid
Labor used to be priced at a single fixed rate on every bid, regardless of trade, wage tier, or location. You can now set up labor categories and rate cards (wage, burden, and fringe) from a new Labor setup area, and estimates automatically resolve the correct rate โ standard, prevailing wage, or union โ based on the project's trade scope and jurisdiction. Each labor line on an estimate shows exactly which rate was used, you can add labor for work that isn't tied to a specific part, and authorized users can override a resolved rate with a reason on file. Catalog parts can now also be tagged with a labor category.
See what's inside an assembly, right from BOM and Take-Off
You can now open a read-only panel from the BOM and Take-Off pages to see the individual components that make up an assembly without leaving the page.
Point a trade scope at just the pages it needs
When creating a trade scope, you can now choose which drawing set it should read from and even a specific page range within it, instead of always reading the entire project intake document. Extraction runs in the background with a live status indicator, and you can now upload a new drawing directly from the picker instead of leaving to the Documents tab first.
Ask ArchAI questions about jurisdictions, codes, and your projects
A new AI assistant, ArchAI, is available from a chat sidebar on every page. Ask it questions about jurisdiction codes and amendments, service request projects and their submittals, or project drawings and documents, and it answers with citations back to the source material.
Download a report explaining exactly why price import rows failed
When a price file has rows that fail to parse, you can now download a plain-text report listing the line number and reason for each failure, instead of seeing only a total count.
New Operations Dashboard for tracking your pipeline at a glance
BuildRoom now has an Operations Dashboard showing your bid pipeline funnel, items that need attention, win rate by general contractor, and margin trends, all in one place.
Add tax, freight, permits and other costs directly to an estimate
Estimates can now include cost categories such as tax, tariff, freight, permits, mobilization and more, entered as either a percentage of material and labor or a flat amount, with a live preview before you save. The Estimate step is now one combined cost table showing material, labor and these other costs together, with an origin tag and a plain-English basis for each line. A new pricing panel lets you enter either a markup or a margin and see the price both ways, along with your distance from the minimum required margin. Cost categories themselves are managed from a new Setup section, where you can create, edit, search and deactivate them; a category that's still used on an estimate can't be deleted.
New fire alarm device symbols for Take-Off
Take-Off device configuration now offers a library of fire-alarm symbols โ smoke and heat detectors, fire alarm control panels, text signs, wall and ceiling speakers, and wall and ceiling horn/strobes โ in addition to the basic shapes, with a searchable dropdown to find the one you need. Adding a device from the catalog now uses the same picker in both Take-Off and the bill of materials, and the assembly components panel shows material, labor and total price for the assembly.
My Work now shows your activity and an attention queue
The My Work page now shows how much you've completed this week, broken down by trade, plus a queue of approvals that need your attention right away, built from the permanent activity record.
Delete labor rates and rate categories you no longer need
You can now delete a labor category, a part category, or an individual labor rate from their respective lists. A labor category can't be deleted while any rate, crew mix or catalog part still uses it (the message tells you how many); a labor rate can't be deleted if any live estimate on a live project was priced on it (the message names the projects). A closed rate can now be reopened from the list to fix a typo or extend its end date.
Close out a job and record its final margin
You can now close out an awarded or in-construction project from its detail page and record the realized margin for it, with the option to reopen and correct that figure later. The project's header shows its value and where that value came from โ an awarded contract, the latest quote, or not priced yet.
Approval screen tells you exactly what's needed next
The bid approval screen now shows a clear banner explaining where the bid stands: whether your signature is needed, who else still needs to sign, that there's nothing for you to do yet, or that every approval is in and the bid is ready to submit.
Your profile menu now shows your department
Opening your user menu now shows which department or departments you belong to, alongside your company name, so it's clear at a glance which team a person is part of.
Build reusable estimating templates for each trade
You can now set up named estimating templates per trade, each with its own pricing options (such as Turnkey or Parts & Smarts), expected bill-of-materials categories, and default settings. Templates support drafts, publishing, version history, and can be copied, downloaded, or imported as a starting point for a new template โ a project's estimate automatically uses its trade's current default template.
Bulk delete labor rates
You can now select several labor rates in the catalog and delete them in one action. Rates still priced into an existing bid are skipped and named, so you know which ones to retire a different way.
Bulk delete cost categories
You can now select several cost categories in the catalog and delete them at once. Any category still in use by an estimate is automatically skipped rather than blocking the rest of your selection.
Confirmation dialogs show a live summary before you approve or lock
Approving a bill of materials or locking an estimate now shows a summary first โ line count, material and cost figures โ so you know exactly what you're confirming before committing to it.
Take-off locks automatically once its bill of materials is generated
Once a bill of materials has been generated from a take-off, the take-off now becomes view-only โ you can still see the plans and counts, but counting and placement can't be changed, preventing a take-off from drifting out of sync with a bid that's already in progress.
Deferred change-order items are now properly excluded from the bid
Marking a code-required item as deferred to a change order on BOM review used to still get priced into the bid everywhere except that one screen, so approvers and the general contractor saw it included with no mention of a change order. Deferred items are now excluded from the base price on every screen and listed separately in the proposal with their own change-order price.
Track vendor pricing and price bids from your suppliers
Parts can now carry a standing price from each vendor that quotes them, entered on the part or, for a part set to follow a vendor, kept in sync automatically. On the bill of materials, you can price a line from the catalog, a job quote, or a specific vendor price, see what a full job would cost under each pricing rule, and group lines into a purchase-order view by the vendor supplying them.
More flexible cost setup in the catalog
Catalog parts can now carry a waste allowance percentage that's automatically factored into their cost on a bid. Cost categories can also specify what a percentage-based line (like tax or freight) is calculated against, and a markup-based pricing option now prices exactly as typed rather than being converted to an approximate margin.
Estimating templates now set the overhead, contingency, and minimum margin rules
Each estimating template can now define its own allowed overhead and contingency ranges, starting rates, minimum margin for bonded bids, and job-difficulty labor factors, per trade. New estimates start from these template rules automatically instead of a single set of defaults for every trade.
Make a published estimating template the default for its trade
You can now set an already-published estimating template as its trade's default directly from the templates list or from the template itself, without needing to publish a new version just to make that change.
See and manage individual placed marks in the take-off count log
You can now expand a device in the count log to see every mark placed for it, click one to jump straight to it on the plan, and delete a single mark or several at once. New count-log actions let you expand or collapse everything, or delete all devices at once, and hovering a device shows its name, SKU, maker, unit, and price. AI-detected marks are shown with a confidence score and a distinct style from manually placed ones, and double-clicking a mark on the plan opens it in the count log.
Search across your projects, quotes, and other records
A global search is now available for finding projects, quotes, and other records from one place. Results respect your permissions and are filtered using your local time zone, so date-based searches return accurate results.
Jurisdiction is now suggested automatically when creating a project from an ITB
When you create a project from an uploaded Invitation to Bid, the correct jurisdiction is now looked up from the project's address and preselected for you, saving you from picking it manually.
Choose a manufacturer vendor when adding catalog parts
Vendors can now be categorized as Manufacturer, Distributor, or System Integrator. When creating or editing a catalog part, selecting a manufacturer vendor now resolves the part's brand for you automatically.
Price a bid two ways with the Parts & Smarts option
You can now price an estimate under a second pricing option, such as Parts & Smarts, alongside the standard Turnkey price. The Estimate screen shows both side by side, options can leave out specific part categories or installation labor, and the approval and submission steps check and disclose each offered option.
๐ช Improvements
Take-Off now shows an editable Floor Details and Building panel
You can view, add, edit and delete floor and building properties right from the Take-Off screen, and the workspace layout can now be resized and collapsed to give more room to the plan viewer.
Take-Off property editor supports more field types and stays responsive while saving
Custom building and floor properties can now be saved as whole numbers, labels or IDs, not just text and measurements. We also fixed an issue where a property row could stay locked after saving or deleting, blocking further edits.
Sending a bid back for revision now restarts from the bill of materials
Returning a bid for revision used to restart the process at the Estimate step. It now restarts at the BOM step, and the copied bill of materials comes back as a draft with the previous approval cleared, so it goes through review again properly.
Upload supporting documents straight from the Documents tab
A project's Documents tab now has its own upload panel โ drag and drop or browse for a file, choose its document type, and watch the upload progress, without leaving the page.
Upload larger documents and load big plan sets more reliably
The file size limit for document and supporting-document uploads has been raised from 100 MB to 200 MB, and large PDFs in Document Review now stream in more efficiently and are far less likely to time out or appear stuck while loading.
Opening an estimation workspace is now faster
Entering a BuildRoom estimation workspace no longer loads the page's data twice before redirecting you to the right step, so the workspace opens noticeably faster.
The Quote Review PDF loads instantly after the first time
Opening, refreshing, or stepping through Quote Review used to regenerate the quote PDF from scratch every time. It's now cached, so repeat views load immediately instead of waiting for it to be rebuilt.
Faster response when editing BOM lines or opening Approval
Department and approver checks that used to be recalculated on every action are now cached briefly, making BOM line edits and the Approval page noticeably more responsive, especially on larger projects.
Take-Off autosave is lighter, and starting a revision is faster
Take-Off now saves your counts a little less frequently while you're actively working (with a safety cap so nothing sits unsaved for long), and only sends the plan sheets that actually changed. Copying a BOM and estimate when returning a bid for revision is also faster on large projects.
Catalog list pages got a cleaner, more consistent look
Price Book, Category Parts and Discount Structures now use a more consistent table layout with clearer active/inactive labeling, and bulk-delete checkboxes only appear for people who actually have permission to delete.
Contacts now live in your contractor directory, not a single project
A contact is now linked to the general contractor they belong to, so the same person no longer needs to be re-entered per project. You can mark one contact as the primary contact for a contractor instead of typing in a separate company name field.
Clearer errors and offline support for price imports
Price import now shows plain-language error messages instead of a raw failure, and the review/import steps are easier to follow. Uploaded price files are stored locally instead of relying on the internet, so the import works even without a network connection.
A cleaner, more focused Take-Off workspace
The side menu and the right-hand details panel now start collapsed so the plan itself gets more screen space. The device/count log can show totals for every sheet at once or just the sheet you're on. Fullscreen mode now covers the plan and left rail (not the details panel) and hides extra controls for a cleaner view, and the fullscreen button was moved next to the building-floor controls and the other viewer buttons realigned for easier reach.
Better filtering on the Category list
The Category page now has a dedicated Filters panel (name, description, active status) with Apply and Clear buttons, and the parts table styling was cleaned up for easier scanning.
Built-in help and quicker searching on directory pages
Contacts, General Contractors, Catalog Parts, Category, and Discount list pages now have a help panel explaining what the page is for and how to use it. Search now filters as you type instead of waiting for Enter, and a newly created or edited row is highlighted in the list so you can find it right away.
Change a trade scope's department after it's been assigned
Previously a department could only be assigned once. You can now change the department that owns a trade scope, with a picker that shows what changing it means before you confirm.
More reliable loading for large documents and packages
Document Review and Packaging previously relied on caching entire large files in memory, which could slow down or fail to load bigger scanned document sets and packages. They now read large files directly from storage as needed, improving reliability.
More reliable extraction from large bid documents
Automatic field extraction from an uploaded invitation-to-bid PDF now reads the file more reliably for larger documents, with an automatic retry if the faster path doesn't work.
Clearer floor labeling and easier time zone selection
Floor detail text now correctly says sheets are linked to floors rather than storeys. The bid deadline time zone field now shows a placeholder, and creating a project from an invitation to bid now lets you pick from a full list of time zones instead of a limited set.
Better bid-document extraction and a refreshed Take-Off screen
Automatic extraction from invitation-to-bid documents was upgraded to a newer, more accurate model, and the Take-Off stage page received a visual redesign.
Cleaner material catalog imports and pricing screens
Price import files can now include a dedicated part name column, separate from the longer description. The catalog parts table is easier to scan with fixed, non-wrapping columns, and bulk repricing and discount-rule screens now clearly label whether you're entering a percent off or a multiplier.
Faster folder loading in Document Management
Browsing a folder with many files or subfolders previously could take many seconds, and grew slower the more it contained. Folder listings now load in a small, constant number of steps regardless of size, so even large folders open quickly.
Quote review and project detail screens polished
The quote review and project detail pages received visual refinements, and creating a new catalog part or assembly from a filtered category list now pre-fills that category for you.
Bulk delete and UI fixes for units of measure
You can now select and delete multiple units of measure at once, along with several small display corrections on that screen.
Contractor navigation reordered around your day-to-day work
The sidebar for contractor accounts is now ordered around daily work, pricing, directory, and setup, so the tools you use most often no longer sort below Administration. Payment moved under Administration.
Approval screen redesigned around the sign-off decision
The Approval page has been rebuilt so the bid amount, the reason it needs attention, and the sign-off actions are always visible together, with the cost build-up, quoted scope, and site conditions shown alongside them. The roster, documents, and project facts now live in a side panel, and the quote document opens full-size in a new tab instead of a small, hard-to-read embedded viewer.
Take-Off plans open dramatically faster
Opening a Take-Off plan, switching between plans, or moving between stages could take as long as a minute or two because the entire plan set was re-downloaded every time. Plans now stream in and are cached, so repeat opens and stage changes are near-instant. The plan viewer also now opens fit to the page instead of zoomed in to full size.
Search projects as you type, including by contractor name
The Projects list now filters as you type instead of waiting for you to press Apply, and a search now also matches the general contractor's name, not just the project's own details.
Map unmatched categories and units during price import without starting over
When a price file uses a category or unit of measure the catalog doesn't have, you can now map it to an existing one right from the import review screen. Both active and inactive options are shown, with inactive ones clearly labeled and blocked from saving until they're activated. The review list also refreshes in place after you create a new category or unit, so you don't have to restart the import, duplicate category names are now blocked, and error messages for blank or invalid import data are clearer.
Price import review shows units for new parts and lets you choose which spelling to use
New-part candidates in price import review now show their unit of measure, with a warning when it's unrecognized. When a category or unit name has more than one possible spelling, the Create button now opens a picker so you choose which one to use instead of silently creating the first match.
Labor Rates page is easier to use, with better filtering and validation
The Labor Rates screen has clearer labels (such as "Base wage $/h" and "Leave blank = no expiration"), streamlined add and edit forms, and new filters for effective date ranges. The form now also checks that the effective-from date comes before the effective-to date.
Labor categories get a searchable list and unique payroll codes
The Labor Categories setup page now has the same search and toolbar layout used elsewhere in Catalog, making categories easier to find. You can also give a labor category a short payroll code, and the system now rejects a code that's already in use on another category.
Clearer navigation and menu names across the app
The sidebar now groups items under Work, Library, Network, and Setup headings. Several menu items also have clearer names: Catalog is now Material Catalog, Catalog Parts is now Parts & Assemblies, Category Parts is now Part Categories, and Import Price / Import History are now labeled Price Import / Import History. Labor Rates and Labor Categories now sit as their own section next to Material Catalog instead of being nested three levels deep.
Demo data now builds a full sample catalog and protects your real data
Creating demo data for a tenant now builds a complete fire-alarm pricing catalog โ dozens of categories, hundreds of priced parts, kits, labor categories with rates, and a favorites list โ instead of a handful of sample parts, alongside sample contractors, contacts and a full bid pipeline. Creating demo data now checks first for catalog numbers that would collide with your real parts and refuses to run rather than mixing the two, and removing demo data now refuses if any of your real crew mixes, estimates, bills of materials or kits still depend on it, telling you exactly what to fix first.
Collapse the drawing preview while setting up a project from an ITB
When creating a project from an invitation to bid, you can now collapse and expand the PDF preview to make more room for the rest of the form, and table headers on that page use a clearer font.
Resolve multiple pricing conflicts at once, including brand changes
When a price import finds conflicts, you can now resolve several pending conflicts in a single action instead of one at a time, and new filters help you find the ones you want. Conflicts caused by a brand mismatch now show both the current and incoming brand, and resolving them can apply the brand change along with the price.
Labor rate editing tightened up
The labor rate editor has been simplified: the tier and wage-determination fields, and the Union Local and Jurisdiction columns on the rates grid, are temporarily hidden while that work continues, and the Effective From / Effective To dates now stay in sync correctly as you edit them. A rate that was cancelled before it ever took effect can no longer be edited (which used to save with no real effect) โ add a new rate instead.
Large price import re-matching now runs in the background
Re-matching a price import after changing categories or rules used to run inline, which could be slow or time out on a large file. It now runs as a background job, and the review screen polls for progress and tells you if the rematch failed, rather than leaving you waiting on a blocked page.
Every catalog part now carries its own labor category
Catalog parts and assemblies now carry their own labor category instead of relying on one tenant-wide default, so estimate hours are priced against the category that actually matches the part. If a part with labor hours has no category set, the bill of materials and estimate now show a clear "Hours not priced" flag on that specific line โ and the Estimate step totals the hours left out of labor โ rather than stopping the whole estimate with a configuration error. Bill of materials totals, priced hours and line counts are now based on every line rather than just the first page shown, and the table tells you when it's only displaying the first 1,000 lines. Cost line percentages (like an 8.875% tax rate) can now be entered and saved without being rejected for having too many decimal places.
Clearer label for a trade scope's drawing selection
The field for choosing a trade scope's default drawing now reads "Drawing documents" instead of the more ambiguous "Drawings".
Parts & Assemblies gets a new browse-and-filter workspace
The Parts & Assemblies list is redesigned as a single workspace: a category rail on the left (with pinned Favorites, All parts and Assemblies, a filter box to narrow the list as you type, and a collapsible layout that's remembered) alongside the grid on the right, with search and filters now built into the same panel. Catalog numbers are easier to scan, quick actions (Edit, Components, Price history) appear when you hover or focus a row, and selecting multiple rows now shows a contextual action bar instead of a banner above the page.
Part categories, units of measure and discount structures get the new workspace too
The same rail-and-grid workspace introduced for Parts & Assemblies now applies to Part categories, Units of measure and Discount structures: a browse rail on the left, search and status chips built into the panel, and counts shown for each scope. Discount structures also gain a manufacturer search and status chips for expiring and expired rules, and bulk actions show as a contextual bar while rows are selected.
Side panels now open at a consistent size, with a widen option
Slide-out panels throughout the app โ approvals, pricing details, document review, help and more โ used to open at many different widths, and only one of them offered a button to widen it. Every panel now opens at the same width and offers the same widen/narrow toggle beside its close button, and help panels now have the same visual border and shadow as the rest of the app.
Faster zooming and panning on the Take-Off drawing viewer
The Take-Off PDF viewer now supports zooming to your cursor with the mouse wheel, panning by holding the middle mouse button without leaving whatever tool you're using, and fitting the page with a double middle-click. The scrollbar is also easier to see in dark mode, and the Project Details page now points you to the next step right after you create a project.
Notifications and approval emails now include the project number
Emails and in-app notifications for approvals, bills of materials, and estimate versions now consistently include the project number, so it's easier to tell which project a notification is about at a glance. A quote returned for revision now sends its own email with the project number in both the subject and the body.
Bill of materials and estimate sections now remember what you leave open
Line groups on the bill of materials and estimate screens now start collapsed rather than opening automatically, and what you expand is remembered by category so it doesn't shift around after every change.
Clearer bid summary and submission emails
The Submit step now shows a clearer bid summary with properly formatted currency and a localized bid due date, and the email it generates has better-organized subject and body content. The project detail page's audit log now also records bond attestation and addenda acknowledgment, so there's a record of when those were confirmed.
Newly saved catalog entries are easy to find
After you add or edit a cost category, labor category, or labor rate, that row is now highlighted and scrolled into view, and these lists show your most recent entries first instead of alphabetically.
Feedback tickets now say whether it's a bug or a suggestion, and reach the right team
When you send feedback from the quick report panel, you can now flag whether you're reporting a problem or suggesting an improvement. Tickets also route to the correct team more reliably, including when you're on a page that doesn't obviously belong to one product area.
Kits on the bid materials list now show their individual parts
An assembly or kit picked during counting or added from the catalog used to appear as a single rolled-up line on the bill of materials. It now lists the individual parts inside it, each at the right quantity, so the materials list reflects what's actually being installed. Kits no longer need their own labor category, since each part's labor is now priced under its own category.
Starting a new project from an ITB document is now a single step
Creating a project from an Invitation to Bid used to open two separate pop-up panels, one after the other. Uploading and reviewing the extracted document now happens in one panel from start to finish.
Redesigned document editor on the Quote review page
The document editor used when reviewing a quote has a refreshed layout and controls, making it easier to work with your proposal document before sending it.
Consistent progress indicator across the bidding pipeline
The BOM review, Estimate, and Quote review pages now use the same step-by-step progress indicator used elsewhere in the app, instead of each page having its own version, for a more consistent look as you move through a bid.
Faster loading on BOM review, Take-off, and related screens
Several screens that list projects, quotes, and BOM lines now load their counts more efficiently, and Take-off's autosave only writes rows you actually changed, so counting and pricing stay responsive on larger jobs.
Clearer overhead toggle on the Estimate screen
The overhead control on the Estimate screen now uses the same on/off switch style as the contingency control on BOM review, so switching overhead on or off reads the same way everywhere.
Description is now required on labor lines
Adding a labor line now requires a description, so labor entries on an estimate are always identifiable later.
Clear status messages during multi-step actions
Approving a bill of materials, locking an estimate, sending a proposal, signing, returning for revision, and submitting a bid used to just grey out a button with no explanation while the next step loaded, which could look frozen. These actions now show a message describing what's happening until it completes.
BOM generation confirmation shows how many devices you're adding
The confirmation you see before generating a bill of materials from the count log now shows the number of devices involved, not just the number of material types, so it's clearer what you're about to commit to.
Project overview page is easier to follow
On a project's overview tab, the bid-to-award progress is now shown once for the whole project instead of being repeated under every trade scope, and the tab bar now stays visible at the top as you scroll down the page.
Clearer labels for AI-detected vs. manually added symbols
The wording used to describe symbols the AI detected versus ones you added yourself has been clarified throughout Take-off, so it's easier to tell at a glance where a count came from.
Expired pricing now warns instead of blocking your submission
Submitting a bid that relies on an expired vendor price or job quote used to be blocked outright. It now shows a warning that you acknowledge, and that flag travels with the bid, so you can still choose to submit while a fresher price is sourced.
Redesigned catalog toolbar for search and filters
The catalog panel's toolbar has a cleaner layout for search and filter controls, making it easier to narrow down long parts and pricing lists.
Contacts and general contractors now require an email and phone number
Creating a contact or general contractor, either directly or automatically when confirming a project from an ITB document, now requires an email and phone number, so every contact you save can actually be reached.
Contingency now sits next to overhead on the Estimate step
Contingency is now set on the Estimate step alongside overhead, instead of on the BOM review step, so the two related cost adjustments are made in the same place.
Compare pricing options side by side
The pricing options view now prices every option against the same example job, with a hint for each pricing method and live range checking as you type, making it easier to compare what each option would actually charge.
Quote documents now autosave, with a status indicator
The quote review document editor now saves automatically a short moment after you stop typing, and shows a status next to the title โ saving, saved, offline, or a retryable error โ instead of requiring a manual save.
Projects list shows when each project was created
The projects list now includes a Created On column, with the last-updated time shown under the project name.
Take-off plan viewer shows autosave status
The plan viewer now shows the same autosave status indicator used in Quote review โ unsaved, saving, saved, or offline โ and shows a friendly retry message instead of a raw error if a save fails.
Refreshed, more consistent catalog styling
Catalog list pages now use consistent row striping and hover colors that also work correctly in dark mode, the project detail page's launch rows and trade-scope cards share one visual style, and the labor categories page's explanatory note has moved into its help panel to reduce clutter.
๐ Fixes
Markup that came with a document no longer gets swept into your review
Documents that already contained markup from other software (such as AutoCAD exports or earlier review rounds) were being treated as part of your annotations โ they were being saved, exported, and could even cause a comment export to fail. That existing markup now stays visible on the page but is no longer mixed in with your own comments and stamps.
Comment export now warns you before you hit the limit, not after
Exporting comments from an oversized document used to run for a long time and then fail with a confusing error only after everything had uploaded. You'll now see a clear message up front if your export has too many images, before any time is spent generating it.
People outside a project's department now see the correct read-only view
Team members who weren't part of a project's assigned department were sometimes shown a blank Take-Off canvas or blocked from opening the quote entirely, instead of the intended read-only view. These pages now load normally in read-only mode for non-members.
Assembly costs now correctly account for parts priced per multiple units
If a component's price was based on a quantity greater than one (for example, priced per box of 100), an assembly built from it could show the wrong rolled-up material cost. Assembly pricing now divides by that basis quantity correctly.
Bulk repricing preview now shows the right number of affected items
The preview before a bulk price change could report a different count of parts and assemblies than what the change would actually update. The preview now matches exactly what will be applied.
Page Organizer changes are no longer lost when saving a reviewed document
Rotating or reordering pages with Page Organizer didn't always register as a change, so Save & Next could skip uploading those edits. Any Page Organizer change is now correctly saved.
Estimate totals for large bills of material are now accurate
On a bill of materials with more than 1,000 lines, the total shown on the Estimate step could silently be cut off and disagree with the actual quote. Totals are now calculated correctly regardless of size.
Generating a bill of materials no longer hangs on large take-offs
Creating a BOM from a large take-off count could take a very long time or appear to hang. Part and mapping lookups are now batched together, so BOM generation completes quickly even on large projects.
Turning off the contingency buffer now actually removes it
The contingency toggle in BOM Review looked like it was off but had no effect โ the percentage stayed editable and the buffer was still added when the BOM was approved. Turning it off now removes the buffer for real, and the percentage field is disabled while it's off.
Unit prices in BOM Review now show cents
Unit costs were rounded to whole dollars, which could make a correct line total look like a math error (for example, a $3.94 item showing as "$4"). Unit prices now display with cents while extended totals stay whole-dollar.
Trade scope status now reflects what's actually been completed
A launched trade scope could keep showing as untouched, and a scope sent back for rework could keep showing as ready-to-quote. Status now updates correctly at every stage, including right after launch and after a return for revision.
Overhead and margin controls no longer show stale numbers after a rejected change
If a permission check rejected your change to overhead or margin, the worksheet had already recalculated on screen and kept showing the attempted, invalid numbers. A rejected change now reverts the control and the recalculation back to the last saved value.
Assembly labor hours field now reflects the real total
The labor units field on an assembly could be typed into, but the value was never actually saved or used. It's now a read-only field that always mirrors the labor hours rolled up from the assembly's components.
Payment redirects now return you to the correct page
After completing or cancelling a payment, the return link could point to the wrong address instead of your organization's own page. Payment redirects now correctly return to your organization's URL.
Large packages no longer fail to save
Saving a large finished package (roughly 300 MB or more) used to fail outright after several minutes with no clear reason. Saving now happens in the background and reports real progress, so large packages finish successfully instead of timing out.
Project documents open directly instead of failing to download
Viewing an uploaded project document now opens it right in the browser instead of going through a download step that could fail. If a document can't be opened, you'll see a clear message telling you to try again.
Fixed pages and document viewers failing to load for some tenants
Some project subdomains couldn't load the portal or storefront at all, and documents or packages opened through a secure link sometimes failed to display. Both are now fixed.
Packaging edit screen now displays documents correctly
The document editing step of packaging could fail to show the document at all in some environments. It now uses the same reliable viewer as the rest of Document Review, and the loading indicator no longer disappears early on large files.
Location lookups fixed outside local development
Address/location lookups were only configured to work in local development and silently failed elsewhere. They now work correctly in staging and production as well.
Fixed error when adding a floor with a duplicate name
Adding a building floor with a name that was already in use produced a confusing error. This now behaves correctly.
Manually created projects no longer error out in Take-Off
Opening Take-Off on a project that was created manually (rather than from an uploaded drawing set) used to fail with a server error. It now opens correctly.
Won bids no longer linger in your work queue
A trade scope that had already been awarded could still show up in My Work as if it still needed action. Awarded scopes are now correctly removed from the queue.
Margin-below-floor warning now shows the correct number and direction
When a bonded project's margin fell below the required floor, Approval displayed it as safely above the floor and in green instead of flagging the shortfall. It now shows the correct amount and color. The bonded floor is also no longer shown at all on projects that don't require a bond.
Compliance and exposure figures, and revision messaging, now accurate
The compliance and exposure figures on Approval always read as zero regardless of the actual costs; they now reflect the real numbers. Sending a bid back for revision also used to tell you it would restart at the Estimate stage when it actually restarts earlier, at the cost breakdown โ the message now matches what happens.
Prevailing wage, union, and bond details now carry through correctly
Prevailing wage and union local information captured during intake was previously discarded when the trade scope was created, so it always showed as not required even when the source documents said otherwise. Bond requirements can now also be corrected after intake instead of being locked in from the start. Generated quote documents no longer come out with blank scope and exclusions sections.
Auto-detected Take-Off symbols keep their appearance after reloading a plan
Symbols that Take-Off detects automatically are meant to appear as outline-only markers and count separately from ones you place by hand. After saving and reopening a plan, they used to come back filled in and miscounted as manual marks. They now keep their original look and count correctly.
Deleting a category, unit, or other reference item no longer breaks other lists
Deleting a material category, unit of measure, contractor, fee schedule, or similar reference item that other records still pointed to used to make the dependent list page fail to load for every user. Reference items that are currently in use can no longer be deleted; for records that still reference something removed another way, the missing value now shows as blank instead of causing an error.
Wide list tables no longer hide columns you need
List pages across Material Catalog, BuildRoom, and ControlRoom (Contacts, Fee Schedules, Permit Projects, Request Forms, Service Requests, and others) used to collapse extra columns behind an expand icon, which could hide columns entirely at normal zoom levels. These tables now scroll sideways within their own space instead, so every column stays visible.
Clearer guidance when adding a catalog part or assembly without a unit of measure
Creating or editing a catalog part or assembly now marks unit of measure as required on the form, and an assembly's component list shows a clear message asking you to choose a unit first instead of a blank or broken label.
Support tickets now show up correctly regardless of where you filed them
Submitting a support ticket from BuildRoom, or checking My Tickets afterward, could file it into the wrong queue or fail to find it. Tickets now route to the right queue based on where you filed them, and both My Tickets and ticket detail lookups check every relevant queue so your tickets are found reliably.
Price import catches blank part names and units instead of guessing
A price import file with a blank part name or a blank unit of measure used to fall back to a guess โ the catalog number as the part's name, or an "each" unit that could silently mis-cost a linear-foot item. The importer now requires a Name and a Unit of Measure column, flags any row that's missing either one with the reason shown in the downloadable error list, and refuses to import a file where none of the rows have enough information to create a usable part.
Operations dashboard numbers and signature queue are now accurate
On the operations dashboard, the chart that shows bid trends could show an axis running below zero even for a normal, non-negative series. The period comparisons under win rate and awarded value described the wrong time window, so a bid that arrived over a year ago and was just awarded could look like it belonged in the current period; the wording now matches what's actually being measured. The attention list could also show zero pending signatures for you to sign whenever there were five or more overdue bids, even though signatures were waiting โ both categories now always get their fair share of the list.
Page range selection for drawings no longer accepts pages that don't exist
Selecting a page range for drawing extraction โ both on project intake and for a trade scope โ now checks the range you asked for against the actual length of the PDF, in the browser before you submit and again on the server, instead of accepting a range past the end of the document. Separately, the Launch step no longer falls back to the first trade when the trade scope isn't known, and the Launch link is rebuilt correctly once drawing preparation finishes.
Jurisdiction names on approvals no longer flash a placeholder
The Approval screens could briefly show a placeholder instead of the real jurisdiction name if the lookup wasn't ready yet. They now retry until the name is available, so you see the correct jurisdiction from the start.
Approvals can no longer be edited or re-sent after they're closed
Once every approver on a bid has signed, or the bid has moved past approval, a few paths could still change the roster after the fact โ adding a reviewer, removing a signed approval, or re-sending the quote for approval, which could silently swap in a new document or wipe out recorded signatures. All of these are now refused with a clear explanation, and error messages from a failed action now show the actual reason instead of a generic "request failed."
Device counts are now classified correctly as count or linear
Placed devices are now classified as a count item or a linear (length) item based on the catalog part's actual unit of measure, instead of a rule that could misclassify them. A trade scope's default Take-Off drawing is also identified correctly, where it could previously go unrecognized.
Dashboard tiles now show your real numbers
The Projects dashboard's Total value and Average margin tiles, and the Operations dashboard's Realized margin card, used to display a placeholder instead of live figures. They now show your actual contract value, quoted value, and margin, with a note on how many active projects have a price yet.
Win rate no longer drops when you close out a won job
Closing out a project used to make it disappear from win-rate and hit-rate counts on the Operations dashboard, Quotes page, and My Work, understating how often you actually win. Closed jobs now stay counted as wins everywhere those numbers are shown.
Invitations now send new users to the right company portal
Accepting an invitation could redirect a new user to the wrong environment's login page. Invitation links now resolve to the correct company-specific portal before signing in.
Clearer message when a labor rate can't be deleted
The message shown when you try to delete a labor rate that's still used on a bid now names the specific rate โ its tier, category, wage, and effective dates โ instead of only listing the affected projects.
Discount rules now require a valid date range
A volume discount rule could previously be saved with an end date on or before its start date, which meant it silently never applied. The end date must now be after the start date.
Friendlier error messages when adding a labor line
If the labor rate couldn't be resolved while adding a labor line, the panel used to show a raw technical error message. It now shows a plain, readable message instead.
Area icon in Units of Measure no longer shows blank
The icon for the Area unit type had gone missing from the icon set and displayed as a blank space. It now shows correctly wherever unit types are listed.
Bid totals now match on every screen
The same bid could previously show slightly different totals on the Estimate screen, the stored quote, Submit, the proposal document, and the Approval screen, due to each place rounding and computing the price its own way. Every screen now reads the same, single, precisely rounded figure, and editing a bill of materials in a later revision correctly re-prices the estimate everywhere instead of leaving stale numbers on some screens.
A bid can no longer be approved with unpriced labor
A bill-of-materials line whose part had no labor category assigned had its hours silently priced at zero, understating labor cost without any warning. Approving a bill of materials with any such unpriced hours is now blocked, and the message names exactly which items need a labor category before you can continue.
Proposals now show accurate labor pricing and complete contact details
Generated proposal documents could show a flat placeholder labor rate that didn't match the actual labor total, and could leave the client name, contact, email, or phone blank, or show an unpriced pricing option as "$0.00." Proposals now price each line at the same rate used in the bid, fill in the client's contact details automatically, and leave out any pricing option that hasn't been priced instead of showing it at zero.
Price import files no longer zero out prices, and hand-entered prices are protected
A price file whose price column header didn't exactly match an expected name used to be silently read as all-zero prices and applied to your parts. Such files are now rejected with a clear message instead, and blank, zero, or negative prices in a file are flagged as errors rather than applied. Prices you've entered by hand can no longer be silently overwritten by the next price import.
The minimum required profit margin is now checked precisely
Rounding in the displayed margin percentage meant a bid that was actually a hair under the required minimum margin could pass without the usual override approval, while a bid that genuinely cleared the floor could be asked for one it didn't need. The exact margin now decides in both directions.
Approval screen's cost breakdown now adds up
The direct-cost figures shown to approvers used to leave out certain cost lines, such as tax, so the total didn't match the actual cost basis of the bid. The Approval screen now shows every cost line, grouped clearly, so the numbers reconcile.
BOM lines and volume discounts always use current, correct pricing
Adding a part from the catalog to a bill of materials could apply a price already loaded in your browser rather than the current catalog price. Pricing is now always determined on the server from the current data. Separately, when a part qualified for both a manufacturer-specific and a category-specific discount, whichever rule was edited more recently could win by accident; the more specific rule now always applies as intended.
Take-off symbol styling now persists after reload
Custom appearance settings for take-off symbols used to reset after leaving and returning to the page. They now persist correctly.
Trade scope extraction no longer gets stuck
Extracting scope for a trade could previously hang partway through. This has been fixed.
Cost category codes must now be unique
The catalog previously allowed two cost categories to share the same code. Duplicate codes are no longer allowed, preventing confusion between categories.
PDF viewer scrollbar issue fixed
A scrollbar display issue in the PDF viewer that affected its responsiveness has been fixed.
Comments on quote documents show your real name
Comments left on a quote document used to be attributed to "Guest" instead of the signed-in user. They now show your actual name.
Display issues fixed on Quote review
Several visual issues on the Quote review page are fixed: rail buttons were hard to see in light theme, and the search, comments, and options panels could overlap or clip in a narrow window or in fullscreen.