Changelog
All notable user-facing changes to ForgeX — new features, improvements, and fixes — in reverse chronological order. For the how-to behind any change, follow the links into the guides and feature pages.
info
ForgeX ships continuously: changes go live as they're merged. Dates below are the date each change reached production.
Unreleased
Nothing here yet — check back after the next release.
2026-06-03 — Tax, concrete detailing & labor accuracy
Fixed
- Tax exemption now applies only to consumable materials — concrete, rebar, and installed materials such as lumber, plywood, nails, vapor barrier, and grout. Equipment is always taxed, and the material subcategories Blades, PPE, Safety, Small Tools, and Sprayer are always taxed, even on a tax-exempt bid. See Tax Management.
- The bid-level Tax Exempt toggle now restores correctly. Previously, checking the box removed the tax but unchecking it didn't bring it back. Now checking removes exactly the tax and unchecking restores it — and each item's "Tax Exempt" label only shows on items that are actually exempt.
- Drilled-pier rebar detailing. Outer-pier vertical bars now run 3 ft longer to form the L-dowels that tie into adjacent structure, and each pier gets 4 extra ties for reinforcement at the top and bottom. The center bar and prism bars are unchanged, and the tie count is based on the true pier depth. See Concrete Module.
- Junior Foreman base hours now match Unskilled Labor (full driver hours) instead of half. Separately, submitted, awarded, and closed bids no longer rewrite their stored labor hours just from opening the Labor tab — automatic recalculation of dependent-role hours now happens only on draft bids. Manual edits are never overwritten. See Labor Module.
2026-06-02 — Per diem control, proposal flexibility & dialog units
Added
- Per-bid per diem rate. The per diem rate is now an editable row in a bid's Bid Factors & Fees instead of a fixed, hidden value. It defaults to a branch-level rate set in Admin → Estimation Settings and can be overridden on any individual bid (for example, to match a job's location). Editing it recalculates all scope- and bid-level labor. See Bid Settings.
- "Generic — omit GC" proposal export. A new checkbox in the Modern proposal export produces a single, general-contractor-agnostic PDF you can hand to any GC. When checked, the proposal omits the GC from "Submitted To" and shows a neutral "Accepted By" line. See PDF & Proposal Export.
Fixed
- Concrete Add Item dialog now uses the units estimators actually enter: cylinder Diameter in inches and Depth in feet (previously swapped), and mat footing Width in feet (previously inches). Calculated volume, square footage, and rebar are unchanged. Switching the shape or calculation mode now clears the affected field so a value can't be silently misread by a factor of 12.
2026-06-01 — Proposal export polish & pricing permissions
Added
- "Modern" proposal template. Scope-grouping captions now cover Structural, Civil, Landscape, Architectural, and MEP (the Classic template keeps just Civil/Structural). A new per-scope "Hide price in proposal" toggle hides a scope's dollar figure on the page while it still counts toward its subtotal and the bid total. See PDF & Proposal Export.
Fixed
- The proposal now honors the preparer name you enter on the export form, instead of always using whoever last edited the bid. Leave it blank to fall back to the bid's preparer.
- Proposal line items reflect what you entered — scope descriptions no longer auto-fill from the shape (prism/cylinder), explicitly blank descriptions stay blank, and per-scope overrides flow into the Civil/Structural lump-sum table.
- Bid Settings and the Pricing Database respect role permissions. Which pricing tabs you see is now driven by your configured view / manage pricing permissions and per-user role overrides, rather than showing pricing only to admin accounts. View-only users can browse pricing without hitting errors, while edit and delete actions stay hidden. Permission changes apply on the next session load without a re-login. See Role Permissions.
2026-05-28 — Proposal templates, rebar pricing & concrete pricing
Added
- Proposal export template. A new, selectable proposal template (alongside Classic; now labeled Modern) renders either a Unit Price or a grouped Lump-Sum layout, with fully editable Inclusions, Qualifications & Assumptions, and Terms for each export (pre-filled with standard text; empty sections are omitted). Exports are named
<bid> - Proposal.pdf. See PDF & Proposal Export. - Discipline grouping in proposals. A per-scope Civil/Structural selector groups scopes by discipline with per-discipline subtotals. With every scope left untagged, the proposal renders the existing flat layout unchanged.
- Inline subtotal and overhead & profit. The subtotal and OH&P now show inline next to the bid total on the worksheet, so you can see the breakdown at a glance. See Cost Rollup.
- "No Rebar" option for concrete items (zero reinforcing steel), which auto-selects when an area type is set to Each.
Fixed
- A bid-level rebar price per pound now applies to all pound-priced rebar, including slab rebar. Previously, slab rebar kept using the legacy per-size pricing, so the bid-level $/lb override didn't fully take effect.
- "Each" (EA) concrete items are now priced by the unit price you enter (unit price × quantity) instead of the cubic-yard formula — fixing cases where, for example, a $30,000-each item priced at roughly $200. For Each items, depth is hidden, cubic yards are optional, and the ready-mix small-load surcharge is suppressed (the unit price is all-in). See Concrete Module.
- The ready-mix small-load charge no longer appears on rebar rows. It now shows only on the concrete row it belongs to.
- The mouse wheel no longer changes the value of a focused number field, preventing accidental scroll-edits.
- Scope cards keep the quantity field and edit/delete icons visible even when a scope name is long — long names now truncate with an ellipsis instead of pushing controls out of the card.