Skip to content

Selections & Options

A buyer rarely buys a base plan as-is — they pick Options (“upgrade to granite, add a fireplace, choose paint color X”). Options are organized into Selections (categories the buyer must complete to ratify the contract).

At a glance

  • Three layers: Selection (category) → Option (choice) → Resource (material/labor).
  • Buyers think in Selections. Sales sells Options. Trades quote Resources. The system keeps all three reconciled.
  • A buyer’s picks land in ChosenOption (~595k rows). Ratify moves quantities into the Estimate; PO Generate cuts the matching POs.
  • “Late selections” (picked after POs are out) need a Variance to apply.
Selection (category) "Kitchen Countertops"
└── Option (choice) "Level 3 Granite – Santa Cecilia"
└── Resource(s) "Granite slab 10ft", "Edge profile bullnose", "Install labor"

Why three? Buyers think in Selections. Sales sells Options. Trades quote Resources. The system has to keep all three reconciled.

ChosenOption is the workhorse — that’s where a contract’s actual picks live. The Selection and Option tables are the catalog; vwLoadPriceBook* joins them to a sale price.

Full Selection / Option / ChosenOption table reference
LayerTables
SelectionSelection (~5,800 rows), LotSelectionActivity, ProjectSelectionActivity
OptionOption, vwLookupOptions, LoadCatalogTemplateOptions
Chosen on a contractChosenOption (~595k rows), vwChosenOption, vwChosenOptionTotalQuantity
PricingvwLoadPriceBookSellableOption, vwLoadPriceBookSellablePlanOption
Hard costvwChosenOptionHardCosts
1Buyer picks an Option in a Selection (in SMART or via a selection sheet).
2ChosenOption row is written for the Contract.
3Estimate runs — the Option's Resources are added to the Lot's Estimate.
4POs adjust — affected POs are regenerated when the Lot ratifies.
5Buyer is charged the Option's sale price (from the Price Book).

The four problems CSRs run into most often:

Late selections, ghosted options, compares, and selection cleanup
  • Late selections. If a buyer picks an Option after their POs have been released, the system flags SelectionsAcceptedAfterPOReleased. The CSR/PM has to issue a Variance to make the change.
  • Ghosted options. When a sub-option has no parent or vice versa. Tracked by the GhostedOptionsEmail utility.
  • Compares. When two lots should have the same selections but differ — see Compares_* views and the ComparesUpdateSchedules.sql scripts.
  • Selections delete. Cleaning up an in‑flight contract’s chosen options: Selections Delete.sql.
  • SMART → Sales → Selections — quote and accept selections.
  • SMART → Project Management → Compares — verify lots match.
  • Home Owner Portal → Selections.aspx — buyer reviews their picks.
  • Trade Portal → order.aspx — trade sees the resulting Resources on their PO.