[Note - this feature is only available in Enterprise subscription]
Estimate Variables (Excel-style) – What they are and how to use them
Estimate Variables let you define reusable numeric values (such as areas, lengths, and heights) and reference them in Excel-style formulas to automatically calculate item quantities in the Estimate Builder.
- Where: Click the Variables button at the top of the Costing page to manage variables for the current estimate.
- What: Variables are name/value pairs (with an optional description) that can be reused across item formulas.
- Default Formulas: Inventory items can have default formulas that are automatically pre-filled when added to an estimate.
Reserved / built-in values
These are always available in formulas. They appear as read-only rows in the Variables modal and cannot be created or overridden.
contract_price
-
Variable:
contract_price - Returns the estimate total (subtotal + tax, if enabled)
- Automatically updates as the estimate changes
Examples:
=(0.05*contract_price) =(0.15*contract_price) =IF(contract_price>10000, 0.05*contract_price, 100)
Notes:
- Cannot be created or overridden
- Returns zero if the estimate total is zero
QUANTITY
-
Variable:
QUANTITY(exact spelling — do not useQty) - Means this line’s quantity when you click Calculate (often from takeoff export or a typed measurement)
- On recipe preview / explode,
QUANTITYcan mean the parent recipe quantity for child line formulas
Examples:
=(QUANTITY/36.5) =(QUANTITY/0.9) =(QUANTITY/0.6) =IF(door_size = 820 OR height > 2340, QUANTITY, 0)
Typical use: measure wall LM (e.g. 57), put that number on the product line, then convert with a formula such as =(QUANTITY/36.5) for building paper rolls.
Note: On first Calculate, QUANTITY uses the line’s current quantity and freezes that as the input base so re-Calculate stays stable. Type a new measured LM/area on the quantity field to update the input, then Calculate again.
YES / NO (literals)
In IF conditions and recipe question formulas, YES and NO mean 1 and 0, for example:
=IF(V(Acoustic upgrade?)==YES, QUANTITY, 0)
Variable naming rules
- Must start with a letter or underscore
- Can contain letters, numbers, and underscores only (question variables ending in
?allow spaces/hyphens) - Recommended: use lowercase, descriptive names (for example
floor_area,wall_height) -
Reserved variables:
contract_priceandQUANTITYcannot be created or overridden
Add, edit, and sort variables
- Add / Edit: In the Variables modal, click Add Variable or the edit icon to change the name, numeric value, or description.
- Reorder: Drag variables using the three-bar handle on the left. Order is saved automatically.
- Templates (Universal): Create shared variable templates in the right-hand panel and reuse them via Use.
-
Reserved Variables:
contract_priceandQUANTITYare always available (shown as read-only rows) and cannot be modified.
Using formulas on line items (Excel-like)
- Click the Variables (code) icon on a line item.
- Enter a formula starting with
=and wrapped in parentheses (or an=IF(...)form). - Click Calculate to apply it.
Example:
=(floor_area*slab_height)
When a formula is saved, the Variables button turns blue to indicate it is active.
Formula syntax
-
Must start with:
= -
Wrap expressions:
=( ... ) - Operators: + − * /
- Parentheses: Supported
- Whitespace: Ignored (format freely for readability)
=( kitchen_area + bathroom_area ) * wall_height
Examples:
- Slab area:
=(floor_length*floor_width) - Two walls:
=(wall_length*wall_height*2) - Combined spaces:
=(kitchen_area+bathroom_area)*wall_height - Packs from takeoff:
=(QUANTITY/36.5)
Advanced Formula Features
IF statements
Use Excel-style conditional logic:
-
Syntax:
IF(condition, value_if_true, value_if_false) - Operators: >, <, >=, <=, ==, != (and Sage names GT, LT, EQ, GE, LE, NE)
- Combine conditions with AND, OR, and NOT
Examples:
=IF(area>100, area*2, area) =IF(height>=3, height*1.5, height) =IF(contract_price>10000, 0.05*contract_price, 100) =IF(door_size = 820 OR height > 2340, QUANTITY, 0)
Prompt variables
Prompt variables ask the user for input when calculating formulas or saving notes.
-
Syntax:
[variable_name] - Formulas: Must be numeric
- Notes: Can be text or numeric
Examples:
=([wall_height]*area) =([multiplier]*QUANTITY) =([width]*[height])
In notes:
Benchtop colour: [colour]
Default formulas on inventory items
- Go to Estimates → Manage Inventory
- Edit or create an inventory item
- Enter a formula in Default Formula (below Notes)
=(area*height) =(QUANTITY/36.5)
- The formula is pre-filled when added to an estimate
- The user must still click Calculate
- Default Hide Notes can also be applied
When exploding a recipe, default formulas are shown and automatically applied.
Prompt variables in notes
- Use
[variable_name]inside notes - User is prompted when saving
- Prompt value replaces the placeholder
Tips and best practices
- Keep units consistent (all meters, all m², etc.)
- Quantities round to 3 decimal places
- Blue Variables button means a formula is active
- Avoid deeply nested IF statements
- Use descriptive prompt names
-
contract_pricealways reflects the current estimate total - Use
QUANTITY(notQty) for the line’s own quantity
Troubleshooting
- Variable Not Found: Check spelling and underscores exactly (names are case-sensitive)
-
Invalid Formula: Must start with
=and use a valid shape - IF errors: Must contain exactly two commas
-
Prompt not working: Must use
[name]syntax - Contract price is zero: Estimate has no subtotal yet
- Cannot create contract_price or QUANTITY: Intentional (reserved variables)
-
Qty not found: Use
QUANTITYinstead
Quick workflow
- Add variables:
floor_area = 120.5,slab_height = 0.1 - Add formula:
=(floor_area*slab_height) - Click Calculate
- Quantity updates and Variables button turns blue
- Optional: put measured LM on a line, formula
=(QUANTITY/36.5), Calculate → pack quantity
That's it. You now have Excel-style formulas, conditional logic, user prompts, contract-based calculations, and line-quantity conversions directly inside your Estimate Builder.
Comments
0 comments
Article is closed for comments.