ServiceCortex
Catalog

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:

  1. Input Library -- a shared collection of reusable input definitions (questions and measurements).
  2. Pricing Modules -- configurations that combine inputs from the library and define how they affect the price.
  3. 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:

FieldDescription
LabelThe question or field label shown to the user.
TypeThe input type (e.g., number, select, text, boolean).
Pricing RoleHow the input affects pricing (e.g., multiplier, area, fixed).
Group NameOptional grouping for organising related inputs.
UnitThe unit of measurement (e.g., "sqm", "metres", "hours").
OptionsFor select-type inputs, the list of available choices.
PlaceholderOptional placeholder text for the input field.
ValidationOptional validation rules (min, max, required).
RequiredWhether the input must be answered before evaluation.
PublicWhether the input is visible on the client-facing portal.
Profile EnabledWhether answers are saved to the property profile for reuse.
Help ContentOptional 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:

AccessDescription
PrivateOnly visible within your workspace.
PublicAvailable 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:

SettingDescription
PositionThe display order of the input within the module.
Group NameOverride the library-level group for this module.
RequiredOverride whether this input is required in this module.
PublicOverride whether this input is visible on the portal.
Profile EnabledOverride whether answers are saved to property profiles.
Show WhenConditional visibility rules (show this input only when another input has a specific value).
Pricing RoleOverride 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:

  1. Direct pricing config (for preview and testing).
  2. The specified variant's pricing rules.
  3. The default variant's pricing rules.
  4. 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

On this page