Design questions and steps
On this page
A good estimator asks for the information needed to calculate and explain its price. Start with the pricing inputs, then arrange questions in the order customers can answer them. The builder separates question design from price rules; a question does not charge money until a rule uses it.
Choose fields by answer type
| Need | Field types | Pricing considerations |
|---|---|---|
| A quantity | Number, quantity, slider | Numeric answers can drive per-unit prices, tiers or formulas |
| A monetary input | Currency | Numeric major-unit input; an explicit formula must convert it when returning minor units |
| One option | Dropdown, radio, image choice | Conditions compare stable choice IDs, not displayed labels |
| Several options | Multi-select | A rule can test membership with selected or contains |
| Yes or no | Yes/no, checkbox | Conditions use actual booleans; false is a valid answer |
| Customer text | Short/long text, email, phone, address | Text stays text; it is not coerced into a numeric price |
| A calendar input | Date, time | Weekend rules use a date field and business-calendar semantics |
| Explanatory content | Information, divider | Present context without requesting a pricing answer |
| An authored value | Hidden | Requires a default; customer-supplied overrides are ignored |
File uploads and customer document storage are not supported. An address field is a text input, not a mapping service. An image choice displays an authored HTTP(S) image URL; choose a destination you control and review the browser data flow.
Separate labels from identifiers
The label is what a customer reads. The internal key is what conditions and rules reference. A bedroom question can have the label “How many bedrooms?” and key bedrooms.
Keys must be unique within an estimator. Use short, meaningful identifiers. Changing a label does not require changing the key. The builder updates references when renaming a field key, but external code sending answers must be updated separately before using the new published definition.
Keep choice IDs equally stable. Changing “Every two weeks” to “Fortnightly” should preserve the biweekly choice ID if its meaning is unchanged.
Set validation before adding prices
For a bedroom count, use minimum 0, a realistic maximum and integer validation. For distance, allow the decimals your business uses and state the unit in the label/help text. A slider requires both minimum and maximum.
Required booleans accept No; required does not mean the value must be true. Required choice fields need a valid choice ID. Multi-select answers cannot contain duplicate IDs.
Defaults should be valid answers, not placeholders. Do not preselect a paid extra solely to increase the total. A placeholder explains format; it does not supply a price-bearing value.
Group questions into steps
Use a step for a coherent task: route, property, extras or project scope. Put easily answered questions first. Avoid one large step containing every input, but do not split a simple three-question calculator into five screens.
In Questions, add, rename and reorder steps. Move fields with their drag handles or the move controls. Keyboard dragging starts with Space, uses arrow keys and finishes with Space.
Visibility conditions can reference preceding fields only across the estimator's field order. Place a yes/no question before the quantity it reveals. If reordering creates a forward reference, correct the order or condition before saving.
Test the paths customers can take
For each conditional branch, test both visible and hidden states. A hidden field does not remain a secret pricing input: it is removed from effective answers and validation. A hidden required field should not block the customer.
Also test back navigation. Change an earlier answer, proceed again and inspect the final breakdown. Prices should follow the answers currently visible, not an old value from a branch the customer no longer selected.
Keep contact capture separate
Collecting an email as an ordinary question does not automatically create a lead. Use the estimator's contact-capture settings when you want a contact attached to the stored estimate. Avoid asking for the same name or email twice.
Next: conditional question flows and lead follow-up.