Pricing
Dynamic pricing rules and property-based pricing
The pricing system lets you build dynamic pricing for your services based on customer inputs, property attributes, and configurable rules. Instead of quoting every job manually, you define a pricing module once and let the system calculate prices consistently.
Core concepts
The pricing system is built around three layers:
- Input Library -- a shared collection of reusable input definitions (questions and measurements).
- Pricing Modules -- configurations that combine inputs from the library and define how they affect the price.
- Evaluation -- the process of taking customer answers and calculating a final price.
Input library
The input library is a workspace-level collection of reusable input definitions. Each input represents a question or measurement that can affect pricing.
Creating an input
Navigate to Settings > Pricing > Input Library and click New Input. Configure the following:
| Field | Description |
|---|---|
| Label | The question or field label shown to the user. |
| Type | The input type (e.g., number, select, text, boolean). |
| Pricing Role | How the input affects pricing (e.g., multiplier, area, fixed). |
| Group Name | Optional grouping for organising related inputs. |
| Unit | The unit of measurement (e.g., "sqm", "metres", "hours"). |
| Options | For select-type inputs, the list of available choices. |
| Placeholder | Optional placeholder text for the input field. |
| Validation | Optional validation rules (min, max, required). |
| Required | Whether the input must be answered before evaluation. |
| Public | Whether the input is visible on the client-facing portal. |
| Profile Enabled | Whether answers are saved to the property profile for reuse. |
| Help Content | Optional rich content to guide the user (text, images, links). |
Inputs in the library can be added to multiple pricing modules, ensuring consistency across services.
Pricing modules
A pricing module groups a set of inputs together and defines how they combine to produce a price. Each module is scoped to your workspace and can be linked to one or more catalog services.
Creating a module
Navigate to Settings > Pricing > Modules and click New Module. Provide a name, optional description, and access level:
| Access | Description |
|---|---|
| Private | Only visible within your workspace. |
| Public | Available for use on the client-facing portal. |
Adding inputs to a module
After creating a module, add inputs from your library. For each input added to a module, you can configure:
| Setting | Description |
|---|---|
| Position | The display order of the input within the module. |
| Group Name | Override the library-level group for this module. |
| Required | Override whether this input is required in this module. |
| Public | Override whether this input is visible on the portal. |
| Profile Enabled | Override whether answers are saved to property profiles. |
| Show When | Conditional visibility rules (show this input only when another input has a specific value). |
| Pricing Role | Override how this input affects the price calculation. |
Linking to services
To use a pricing module with a catalog service, edit the service and select the module in the Pricing Module field. When the service is added to a job or proposal, the module's inputs are presented for the user to answer, and the price is calculated dynamically.
Price evaluation
When a pricing module is evaluated, the system processes the inputs and produces a detailed result:
- Total -- the calculated total price.
- Breakdown -- a line-by-line breakdown showing how each input contributed to the total.
- Adjustments -- any adjustments applied (e.g., minimum charges, rounding).
- Requires in-person -- a flag indicating whether an on-site visit is needed to finalise pricing.
Variant-aware evaluation
If the linked service has variants, evaluation takes variant-specific pricing rules into account. You can evaluate all variants at once to compare prices side by side. The resolution priority is:
- Direct pricing config (for preview and testing).
- The specified variant's pricing rules.
- The default variant's pricing rules.
- The service's base rate as a fallback.
Property profile prefill
When evaluating pricing for a property that has been quoted before, saved input values from the property profile are loaded as defaults. Customer answers override these prefilled values. After evaluation, profile-enabled inputs are automatically saved back to the property profile for future use.
What's Next
- Manage your catalog of products and services.
- Define service areas to add geographic pricing.
- Create proposals using dynamic pricing.