BOM Logic Rules allow you to apply conditional, targeted changes to products and calculations during Bill of Materials (BOM) generation. They are designed to manage exceptions to standard estimating logic without duplicating key measures, expanding product libraries, or over-configuring subcomponents.
Use BOM Logic Rules when the estimating logic is largely consistent, but specific conditions, such as community, phase, or construction method, require different outcomes. When used intentionally, BOM Logic Rules improve accuracy, transparency, and long-term maintainability of your BOMs.
What BOM Logic Rules Are (and Are Not)
What BOM Logic Rules Are
BOM Logic Rules provide a flexible way to modify estimating behavior during BOM generation. They allow you to adjust products, calculations, or uses when defined conditions are met, while maintaining standardized key measures.
Each rule explicitly defines:
- When it runs during BOM generation (execution stage)
- Why it runs (conditions)
- What changes when it runs (actions)
This structure makes estimating behavior transparent, predictable, and easier to test and maintain over time.
What BOM Logic Rules Are Not
BOM Logic Rules are not a replacement for a foundational estimating setup. They are not intended to compensate for poorly designed key measures or act as unrestricted global product-swap tools.
Once created, BOM Logic Rules are always active and apply whenever their conditions are met. Because of this, careful scoping and validation are essential to avoid unintended changes.
How BOM Logic Rules Execute During BOM Generation
BOM Logic Rules are applied as part of the BOM generation process and may run multiple times as the BOM is assembled. Rather than executing once, rules are applied in defined execution stages, each corresponding to a different point in the estimating workflow.
The new phase runs after waste/rounding has been applied, so rounding doesn’t happen again during rule processing, except when a product is swapped. In that case, the rounding is applied to the original quantity after the swap.
- Pre-Product Assembly rules run before key measures calculate quantities. This stage is used when a change will affect how quantities are determined, such as swapping product sizes, changing containers, or modifying calculations that drive rollups. Applying rules at this stage ensures downstream calculations reflect the updated logic.
- During Product Assembly rules are evaluated as products and subcomponents are assembled into the BOM. This is the primary execution loop and where most BOM Logic Rules are applied. Rules at this stage are commonly used to modify products, calculations, or uses based on conditions such as building phase, floor, or construction attributes.
- Post-Product Assembly rules run after quantities have been established. These rules are appropriate for changes that do not affect quantities, such as brand substitutions or cost-only adjustments. Quantity-affecting changes should not be applied at this stage, as they can result in inaccurate BOM output. For example, when estimating labor costs, running the phase after assembly ensures that you will not include estimates for hanging sheetrock that is considered waste or rounding.
When multiple rules exist, they are evaluated in sort order and may be applied across multiple evaluation cycles. Changes made by earlier rules can affect how later rules are evaluated, making execution timing and rule ordering key design considerations.
When to Use BOM Logic Rules Instead of Spec Sets
BOM Logic Rules are ideal for handling exceptions to standard estimating procedures, enhancing both accuracy and clarity in the timing of the rules’ application. We do not advise using Spec Sets.
Compared to Spec Sets, BOM Logic Rules:
- Provide explicit control over execution timing
- Make rule behavior visible and easier to troubleshoot
- Reduce the need to duplicate key measures or calculations
- Allow changes to be scoped precisely to defined conditions
Designing Safe and Predictable Rules
Product Swaps vs. Container Swaps
By default, swapping a product affects every instance of that product in the house. This is appropriate when the product should change globally, but it can have unintended consequences if the product is reused in multiple assemblies.
When modifications are needed only for a particular area or context, such as a single phase or floor, swapping a container is usually safer. Container swaps enable multiple products to be changed simultaneously while restricting the scope of the change.
Scoping Changes with Conditions
Conditions specify when a rule is activated and should be as specific as possible. Common conditions include product, building phase, community, and house characteristics. Incorporating phase-based conditions is particularly crucial when products are used in various stages or sections of the estimate.
Example: Swapping Lumber Size by Community
A standard wall key measure uses 2×4×14 lumber for wall plates. Homes built in a specific community require 2×4×16 lumber instead. Because the lumber size affects material quantities, the change must occur before quantities are calculated.
A BOM Logic Rule is created with Pre-Product Assembly execution. Conditions specify the original product and the target community. The rule action swaps the lumber product and updates the associated calculation so quantities are recalculated correctly.
When a BOM is generated for that community, the lumber size is updated automatically, and quantities reflect the new dimensions. Testing confirms the change applies only under the specified conditions and does not affect unrelated assemblies.