The problem: units per square foot is the whole game
- Block and brick are counted by units per square foot of wall face, and that figure changes with unit size, coursing and joint width.
- Wall height varies along the same footprint — stem walls, full-height walls, knee walls and parapets can all be on one plan.
- Openings deduct from the wall face and add lintels at the same time.
- Mortar is a function of unit count and joint size, and grout is a function of the cells you are actually filling, not of the wall area.
The measuring is straightforward. The conversion chain — face area to units to mortar to grout to hours — is long, and every link is somewhere a spreadsheet can quietly go wrong.
How the tool handles it
The wall condition carries its own height, per segment where the height changes, and converts face area to unit count at the units per square foot you set. Mortar follows unit count, grout follows the grouted-cell rule you specify, and lintels come off the openings you already deducted.
One trace, the whole material list
A condition is a named, colored layer you trace on the drawing. An assembly turns that one condition into every part it drives, each with its own formula, coverage rate, waste percentage and rounding rule. A 8in CMU wall condition looks like this:
| Part | Unit | Driven by |
|---|---|---|
| Concrete block | EA | wall SF × units per SF (1.125 for 8x8x16), + 5% breakage |
| Mortar | BAG | unit count ÷ units per bag (about 3 bags per 100 block) |
| Sand | CY | mortar bags ÷ 7 — site-mixed mortar only, omit for pre-blended bag mix |
| Grout | CF | grouted cell count × 0.125 CF per cell (8in two-core unit) |
| Vertical rebar | LF | (wall LF ÷ cell spacing, +1 per wall) × (wall height + lap and hook) |
| Horizontal joint reinforcing | LF | wall LF × courses reinforced |
| Bond beam unit | LF | bond beam course LF |
| Bond beam grout | CF | bond beam LF × 0.22 CF/LF (8in) |
| Lintel | LF | opening widths + bearing |
| Control joint | LF | from the joint layout trace |
| Backer rod and sealant | LF | control joint LF |
| Veneer anchor | EA | veneer SF ÷ anchor spacing |
| Base flashing | LF | wall base LF |
| Weeps | EA | flashing LF ÷ spacing |
| Lay labor | HR | unit count ÷ units per mason-hour |
Change a coverage rate, a waste percentage or a unit cost and every job using that assembly re-prices. You are not editing numbers in twelve places.
Height varies per segment
A stem wall and a full-height wall on the same footprint are segments with their own heights, so face area is summed correctly rather than averaged.
Openings do two jobs
The opening you deduct from the wall face also drives lintel linear feet with your bearing allowance added.
Published figures, not guesses
An 8x8x16 unit is 1.125 block per square foot of wall face, modular face brick about 6.75, mortar about 3 bags per 100 block and 7 per 1000 brick, and an 8 inch two-core unit holds about 0.125 cubic feet of grout per cell. Those ship as defaults you can see and change.
Every number traces back to a mark
When the block count is questioned, you show the wall traced with its height per segment, the openings deducted, and the units-per-square-foot figure used to convert. The chain is visible end to end.
Every number on the report links back to a specific mark, on a specific sheet, at a specific place on the page. The marked-up PDF export draws every mark in its condition color with the quantity labeled — that is the file you attach to the bid.
Accuracy is held to a stated tolerance: linear measurements within 0.10% of true, straight-sided areas within 0.25%, and calibration repeatable within 0.20% across five separate calibrations of the same page. Geometry is stored in PDF units, never screen pixels, and rounding happens exactly once — at report time.
What it costs
Block ordered against an averaged wall height on a stepped footing is wrong before the first course goes down.
$2,500, paid once. Nothing in year two. Nothing in year three. No per-seat bill and no renewal date.
| Estimators using it | A per-seat subscription, five years | Ours, one-time licence |
|---|---|---|
| 1 | $8,745 – $10,000 | $2,500 |
| 2 | $17,490 – $20,000 | $2,500 |
| 3 | $26,235 – $30,000 | $2,500 |
| 5 | $43,725 – $50,000 | $2,500 |
Their column multiplies by headcount and then repeats every year. Ours does neither. Put a fourth estimator on it and the number is still $2,500, because you are not licensing seats — you are buying the software.
And it does not repeat
| Whole company | Per-seat subscription, billed that year | Ours, billed that year |
|---|---|---|
| Year 1 | $1,749 – $2,000 × seats | $2,500 |
| Year 2 | $1,749 – $2,000 × seats | $0 |
| Year 3 | $1,749 – $2,000 × seats | $0 |
| Year 4 | $1,749 – $2,000 × seats | $0 |
| Year 5 | $1,749 – $2,000 × seats | $0 |
What you actually receive
- The source code. Not access to it — a copy of it, running on your infrastructure.
- A one-time perpetual licence. It does not expire, it cannot be revoked, and there is no renewal date in your calendar.
- No seat count. Put every estimator in the company on it. There is no user tier to outgrow and nothing that counts logins.
- No dependence on us. Sixty days of support are included. After that you can hire any developer to change it, because you have the code. Most vendors cannot make that offer, because with them you are renting.
Subscription figures are publicly reported PlanSwift prices from software review sites, shown as a representative example of per-seat takeoff pricing. Check any vendor's current pricing directly before you compare. See the full PlanSwift comparison.
What is being built next
- DXF and DWG import is in active development. Today the tool reads PDF. If your drawings arrive as CAD files, ask on the call and we will give you honest timing rather than a guess on a web page.
- Auto-count symbol recognition — box a symbol once and find every match on the sheet — is a later release.
- Multi-estimator assignment, so a supervisor can hand work to specific people, is still being built out.