--- title: "Set up Dynamic Pricing for Roofing" slug: "set-up-dynamic-pricing-for-roofing" updated: 2026-10-16T02:44:09Z published: 2026-10-16T02:44:09Z canonical: "help.servicetitan.com/set-up-dynamic-pricing-for-roofing" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.servicetitan.com/llms.txt > Use this file to discover all available pages before exploring further. # Set up Dynamic Pricing for Roofing ## Overview [Dynamic Pricing](/roofing/docs/dynamic-pricing-overview) helps you control profitability at scale by automatically marking up material and labor costs. It also standardizes pricing across your entire Pricebook. This process ensures your profit margins are intentional and your pricing stays competitive in the market. Instead of relying on fixed prices, Dynamic Pricing calculates based on actual costs. --- ### #### Who uses this feature - Administrators and managers - Primarily benefits Residential Construction and Commercial Construction business types - Primarily benefits Roofing and Exterior trades #### Feature configuration - To use this feature, enable *Dynamic Pricing* in [Feature Configurations](/roofing/docs/manage-feature-configurations#enable-feature-configurations). For more, see [Manage feature configurations](/roofing/docs/manage-feature-configurations). If you're a customer with multiple ServiceTitan accounts, contact [Technical Support](http://go.servicetitan.com/ask) for details. - The *Manage Pricebook* permission is required to use this feature. Please contact the account administrator on your team. ## Things to know - Dynamic Pricing applies only to materials linked to services and calculates pricing at the service level. Ensure to have your materials linked to services before setting up dynamic pricing, see [Link materials to services for Roofing](/roofing/docs/link-materials-to-services-for-roofing). - Each category can only have one Dynamic Pricing rule at a time, so plan your category structure before creating rules. - If you use roofing supplier integrations such as SRS Distribution, ABC Supply, or QXO, you can apply markup to supplier-provided material costs when using Dynamic Pricing. - Before creating a Dynamic Pricing rule, ensure you capture actual costs through materials and labor setup in the Pricebook. - All new estimates automatically reflect updated pricing when you edit a Dynamic Pricing rule. - Dynamic Pricing requires Equipment to be included in the rule, even if you don't mark up or use equipment. - If a service shows no dollar amount in the Dynamic Price column, the linked material doesn't yet have a cost assigned or the Service is not part of a category included in the rule. ## Use cases - You're using roofing supplier integrations such as ABC Supply, QXO or SRS Distribution and want pricing to automatically update based on real-time vendor costs, ensuring your estimates always reflect current market pricing. - You're using Spec-Based Estimate Templates and need consistent pricing across all estimates. - You regularly adjust pricing based on installation capacity and want a structured way to increase or decrease margins across roofing estimates. ## Create a Dynamic Pricing rule After you've linked materials to services and set costs in your pricebook, create a Dynamic Pricing rule: 1. Go to the navigation bar and click **Pricebook** **>** **Pricing Builder.** 2. On the *Client Specific Pricing* screen, click **Dynamic Pricing.** > [!NOTE] > **Note:** You can also create a dynamic pricing rule directly from the *Client Specific Pricing* screen using the *Create Rule* dropdown. ![User selects 'Dynamic Pricing' option under 'Client Specific Pricing' settings.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-lznctiun.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 3. To create a Dynamic Pricing rule, click **Create Rule > Dynamic Pricing.** ![User selects 'Dynamic Pricing' option from the settings menu in the application interface.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-z61bdrrk.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) The *Dynamic Pricing Rule* screen guides you through six setup stages. Each stage is explained in the steps below: ![Dynamic pricing rule setup with category selection options for pricing adjustments.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-hlf40j76.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. Assign categories 2. Set billable rate 3. Configure markup 4. (Optional) Add surcharge 5. (Optional) Select business units 6. Review and name the rule ## Step 1: Assign categories The first step is choosing which categories in your pricebook this rule should apply to. 1. Select the categories you want to apply the rule to. ![User selects the 'Service' category in a pricebook rule setup interface.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-lxnhr37a.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) > [!NOTE] > **Note:** Only one Dynamic Pricing rule can apply to a category at a time. 2. When finished, click **Continue.** ## Step 2: Set billable rate The billable rate represents the hourly labor cost applied to services. For roofing contractors, the setup depends on how you pay your installers. 1. In the **Billable Rate** field, enter a billable rate: ![ServiceTitan interface displaying billable rate input and service categories for pricing.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-xqsxe1y3.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. **If you use subcontractors or piecework payment:** Enter $0.01 as a placeholder value. This is required to proceed with the setup, but the actual labor costs come from your linked materials, which represent piecework rates. 2. **If you use hourly employees:** Enter the average hourly rate for your installers. Some contractors use an average of all wages, while others use the highest wage on the crew. This rate is multiplied by the hours field on each service to calculate labor costs. 2. Click **Continue**. ## Step 3: Configure markup The markup section determines how Dynamic Pricing calculates the selling price from your costs. For roofing contractors, industry best practices suggest specific markup strategies. 1. Select **Individual** to mark up items individually, or select **Aggregate** to apply markup to the total. > [!NOTE] > **Note:** We recommend selecting *Individual*, as it provides more consistent pricing behavior across estimates. ![Select markup type for service pricing: Individual or Aggregate options available.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-qtbaxjbr.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 2. Select how costs are marked up for *Materials*. You can select the following: > [!NOTE] > **Note:** We recommend using *Gross Margin*. Gross Margin integrates seamlessly with other ServiceTitan tools and is a widely used, easy-to-understand pricing method. ![Input fields for Gross Margin, Markup percentages, and multipliers in a materials calculator.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-s1b2pb79.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. Gross margin 2. Percentage markup 3. Dollar value markup 4. Multiplier > [!TIP] > **Tip:** Configure gross margin tiers based on material cost ranges to maintain consistent and profitable pricing. Roofing contractors commonly use a single tier structure of $0 - $1,000,000. But you may choose to stagger your margins based on materials costs as seen below. 1. Items costing **$0–$200 → 40% gross margin** 2. Items costing **$200.01–$1,000,000** → **45% gross margin** 3. Adjust these percentages based on your market conditions and profitability goals. To ensure all items are included in the rule, set a high maximum cost value (for example, **$1,000,000**) so the pricing rule applies to every item. 4. Enable **Equipment** and set it to use the same markup rule as materials. ![Toggle switch for using same rules as materials in equipment settings.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-ms4oxouy.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) > [!NOTE] > **Note:** Dynamic Pricing requires Equipment to also be included in the rule. Even if you don't mark up or use equipment, it must still be set up to proceed. 5. Set *Configurable Services Price Rule* to **Exact Cost Variation**. This ensures accurate pricing when customers select specific material colors or brands from your configurable materials. ![Select the calculation method for service pricing: Generic Cost or Exact Cost Variation.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-g50mwxyk.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 6. When finished, click **Continue**. ## (Optional) Step 4: Add surcharge Surcharges add overhead and profit to your total project cost. Some roofing contractors use a percentage-based surcharge to account for business expenses such as fuel, insurance, and administrative costs while others include those expenses in their material markup percentage. To add a surcharge: ![Prompt asking if a surcharge should be included with options for amount or percentage.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-1qwy1m32.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. Add a surcharge to the rule: 1. Enter a **flat dollar amount** to add a fixed fee to every project. 2. Enter a **percentage** to add a proportional surcharge based on the total project cost. > [!NOTE] > **Note:** If you don't want to add a surcharge, leave the field empty. 2. Click **Continue**. ## (Optional) Step 5: Select business units Dynamic Pricing rules can be applied to specific business units. This is useful if different locations or divisions use different markup strategies. For example, one business unit may use a 40 percent markup, while another uses 20 percent. 1. If you need business unit-specific pricing, select the business units and configure the rule for the specific business unit. This overrides the default Billable rate. ![User interface for creating a new business unit rule with billable rate settings.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-etwv9yma.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 2. Otherwise, do not select any business unit and click **Continue**. ## Step 6: Review and name the rule Review the Dynamic Pricing rule settings. You can scroll down to add modifications if needed. > [!NOTE] > **Note:** The Modifications section is not typically used for roofing, you can skip it. ![Dynamic pricing setup with base rules, billable rates, and modification options displayed.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-i0ateh30.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. Click **Continue** to save the rule. 2. Enter detail for your Dynamic Rule: ![Form fields for naming a rule and adding a description in a web application.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-6el7j2k7.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 1. In the **Name** field, enter a name for the rule. > [!NOTE] > **Note:** This name is for internal use only. 2. (Optional) In the **Description** field, enter a description for the rule. 3. When finished, click **Finish**. Your rule now appears in the *Dynamic Pricing* section of the *Pricing Builder* tab. ## Edit a Dynamic Pricing rule After creating a Dynamic Pricing rule, you can edit it to adjust your pricing strategy based on market demand. 1. Go to the navigation bar and click **Pricebook** > **Pricing Builder**. 2. Click **Dynamic Pricing**. 3. Locate your rule in the list, and click **Actions >** **Edit**. 4. To adjust the markup rules, click **Markup** from the top bar. ![A cursor points to the 'Markup' option in a navigation menu with checkmarks.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/set-up-dynamic-pricing-for-roofing-image-p7xe2nsn.png?sv=2026-02-06&spr=https&st=2026-11-01T20%3A56%3A07Z&se=2026-11-01T21%3A56%3A07Z&sr=c&sp=r&sig=%2FzXY3qZst53cOv9m8WQjrtW0cGfm96EHanZTRWC7zj4%3D) 5. Make your changes. For example: 1. If you're winning too many jobs and your installation schedule is full, increase your markup to slow demand while improving profitability. For example, you might increase the margin by 0.25 percent. 2. If you're not winning enough jobs, lower the markup value to stay competitive. 6. Click **Continue** to move to the next step, skipping any you don't want to change. On the final step, click **Finish**. All new estimates automatically reflect the updated pricing. ## Want to learn more? - Visit ServiceTitan Academy and enroll in [Roofing Materials and Markups](https://servicetitan.docebosaas.com/learn/courses/1001/roofing-materials-and-markups) - See [Dynamic Pricing overview](/roofing/docs/dynamic-pricing-overview) - See [Link materials to services for Roofing](/roofing/docs/link-materials-to-services-for-roofing) - See [Add modifiers to Dynamic Pricing rule](/roofing/docs/add-modifiers-to-dynamic-pricing-rule) - See [Review Dynamic Pricing calculation](/roofing/docs/review-dynamic-pricing-calculation) - See [Set up spec-based estimate templates](/roofing/docs/set-up-spec-based-estimate-templates) - See [Manage supplier catalog material variations](/roofing/docs/manage-supplier-catalog-material-variations-in-servicetitan)