Four apps document distinct flat-rate update paths, from saved price books to dynamic pricing rules and one-job bundle edits.
Key takeaways
- Service duration fields manage scheduling, not billing. Housecall Pro defines a "Service Duration" field where owners adjust hours (0-8) and minutes (0, 15, 30, 45) to manage availability, according to Housecall Pro . This documentation describes a setup attribute for time management; it does not define a labor cost or a billable rate. Do not use this field to calculate gross margin.
- One job does not automatically update the saved bundle. ServiceM8 states that changing an item within a bundle already added to a job will not update the saved bundle, Materials & Services, or other jobs, according to ServiceM8 . This behavior allows for one-off changes on a specific job card without affecting the central materials database.
- Flat-rate jobs can exist in multiple lists. FieldPulse notes that a flat-rate job can appear in more than one options list, according to FieldPulse . This structural detail indicates how items are organized within the pricebook setup.
- Verify the scope of every edit before saving. Because shared items and job-specific items behave differently, check the official help pages for your chosen software to see if an edit applies to the saved service or just the current job.
Which of these 4 apps fits how you maintain flat-rate prices?
The right fit depends on whether you need a static price book, dynamic rules, or bundle management. Housecall Pro provides a Flat Rate Pricing Overview that includes navigating to the My Apps section by clicking the 3x3 square icon in the left navigation bar, according to Housecall Pro . FieldPulse documents setting up your pricebook, ServiceTitan explains creating dynamic pricing rules and adding modifiers, and ServiceM8 describes using the Bundles Add-on. These four products offer different mechanisms for maintaining flat-rate prices. Your shop's specific workflow for updating labor inputs and margins determines which documented approach aligns with your needs. Check if you prefer editing a central list or adjusting individual job parameters. The documentation for each tool specifies its own setup requirements and change behaviors. Read the official help pages for each product to see how they handle shared items and one-job changes. This comparison focuses on documented functionality rather than performance metrics.
How we compared official update, setup and bundle help pages
We reviewed specific help center articles to document how each platform handles price book configuration and updates. The scope excludes hands-on testing, plan entitlement checks, or confirmation of current commercial terms. Reading a help page is not a substitute for verifying your specific account setup.
For Housecall Pro, we examined the "Price Book: Import or Export Services and Materials" page. This source notes that typically no more than 3-4 levels are recommended if you will be integration with QuickBooks, according to Housecall Pro . This recommendation applies specifically to their integration context and is not a universal industry limit.
We did not perform live testing or access product accounts. Read each cited help page against the edit you plan to make. This approach ensures that comparisons rely strictly on published guidance rather than inferred capabilities.
Filled reference table: 4 publishers and their update behavior
The table below summarizes the documented update behaviors and setup requirements for the four products, based strictly on their official help pages. Each row cites the specific fact IDs that support the entry.
| Publisher | Documented Function | Setup Requirement | Stated Limit | Fact IDs |
|---|---|---|---|---|
| Housecall Pro | Material markup updates adjust material prices | Turn material markups off on the web Price Book | Typically no more than 3-4 levels with QuickBooks | MY203, MY204, MY205 |
| FieldPulse | A flat-rate job can appear in more than one options list | Set a default markup percent for labor, supplies, and equipment | A single-item list allows only one item | MY206, MY207, MY208 |
| ServiceTitan | Five steps complete dynamic pricing setup | Uncheck Use Static Price on the item | Enter 999 as the final range upper limit | MY210, MY211, MY213 |
| ServiceM8 | Preset bundle with a fixed price and a single description | Two-way updates with Materials & Services | A job-card edit does not change the saved bundle or other jobs | MY215, MY216, MY217, MY218 |
For Housecall Pro, the documentation states that if you update any material markups, the system will adjust the prices for materials accordingly according to Housecall Pro . The same source notes that if you want to turn off material markups for a material, this action must be performed from your Price Book on the web according to Housecall Pro .
For FieldPulse, the setup process includes entering an options list title and choosing whether the list is single-item select or multiple-item select according to FieldPulse . The documentation also instructs users to set their default Markup Percent for all labor, supplies, and equipment according to FieldPulse .
For ServiceTitan, the help page states that there are five steps to complete your dynamic pricing setup according to ServiceTitan . A specific configuration instruction advises entering 999 as the upper limit for the final range to cover all additional billable hours according to ServiceTitan . This 999 entry is a documented configuration instruction, not an industry limit or a recommended labor rate.
Use this table to verify which documented behaviors align with your shop's needs. Check each row against your specific workflow to identify where the documentation supports your requirements and where further investigation is needed.
Shared material edits, default markup and category rules
When you adjust a price in one place, the behavior of that change depends entirely on whether the item is a standalone entry or part of a linked structure. Understanding these propagation rules is critical for maintaining a consistent flat-rate price book without accidentally overwriting job-specific adjustments or creating duplicate data entries.
In ServiceTitan, the system distinguishes between static and dynamic pricing at the item level. To switch an item from static to dynamic pricing, you must edit the item in the Pricebook and uncheck the "Use Static Price" option, according to ServiceTitan . Once an item is dynamic, its pricing behavior is governed by the rules assigned to its category. If the item’s category is already assigned to a dynamic pricing rule, that rule will apply automatically, according to ServiceTitan .
Within the dynamic pricing structure, you can apply specific adjustments based on service levels. In the Level 2 field, you enter the amount to adjust your base price for that level, according to ServiceTitan . This setup allows for tiered pricing where the base price remains the anchor, but specific modifiers apply based on the selected level.
ServiceM8 handles shared items through a different mechanism using its Bundles Add-on. With this add-on, you can roll several items of labour, materials or services into a preset ‘bundle’, with a fixed price and a single description for clients to see on your quotes & invoices, according to ServiceM8 . The critical aspect of this structure is the connection between the bundle and the central database. Individual items in your bundles have a two-way connection to your main Materials & Services database, according to ServiceM8 .
This two-way connection dictates how edits propagate. If you update the details of an item in a bundle, it will update that same item in Materials & Services (and whichever other bundles contain that same item), according to ServiceM8 . Conversely, if you update an item’s details in Materials & Services, that change will flow through to update whichever bundles contain that same item, according to ServiceM8 .
One-job bundle edits on a job card
ServiceM8 documentation distinguishes between permanent library items and temporary job-card adjustments. When you modify an item within a bundle that has already been added to a specific job, the system isolates that change to the current job card.
This isolation mechanism addresses a common concern for shop owners: whether a price adjustment for a single customer’s unique situation will inadvertently rewrite the standard price book for future estimates. The documentation confirms that the saved bundle remains static while the job card reflects the specific modification. You can treat the job card as a sandbox for that particular transaction. If you change the quantity or swap a component for a specific client, the master record in your materials database stays intact.
For shops managing flat-rate services, this feature supports flexible pricing without manual cleanup. You do not need to create a duplicate bundle for every variation in a job. Instead, you apply the standard bundle from your library and adjust it directly on the job card when the scope changes.
Check your current bundle configurations to ensure they align with your pricing strategy. If you frequently adjust bundles on the fly, confirm that your team understands the distinction between editing the saved bundle and editing the job-specific instance. This prevents accidental updates to your standard price book while allowing the flexibility needed for complex repairs.
Illustrative example: a shared material and one job card
Picture one material listed at 80 in two bundles. You change that shared price to 90. Both bundles move to 90 because the shared item is linked. On one job card you change that line to 65. The saved bundle and the other job stay at 90. The one-job edit does not rewrite the saved price.
Trace one service through the documentation before choosing
Pick one service you run often, such as a standard drain clearing or thermostat replacement. Write down three required features for that specific service. For example, note whether you need to edit a shared material price that appears in multiple bundles, or if you only need to adjust the labor time for a single job. These notes become your checklist for verifying the software against your actual workflow.
Next, open the official help pages for the products you are considering.
This approach keeps your evaluation grounded in what the vendors actually publish. It prevents you from relying on assumptions or hearsay about how a tool handles shared items and job-specific changes. By tying each requirement to a specific page, you create a clear record of what you have verified.
FAQ: maintaining a flat-rate price book
Does a price book calculate from costs or store a fixed bundle price?
Some apps store a fixed bundle price and others adjust prices from markups or dynamic rules. You must verify which model your specific software uses before setting up your price book.
Does editing a bundle on one job change the saved bundle or other jobs?
No, the saved bundle remains unchanged when you edit items on a specific job card.
What happens when a material or shared bundle item changes?
In ServiceM8, updating a bundle item updates that item in Materials & Services and in other bundles, and a Materials & Services update flows back to those bundles.
Which setup fields and restrictions should I check before choosing?
Check the specific configuration fields available in your selected platform. According to Housecall Pro , you can adjust the service duration in hours (0-8) and minutes (0, 15, 30, 45) to manage scheduling and availability. According to FieldPulse , a flat-rate job can appear in more than one options list. Review these specific fields to ensure they match your shop's operational needs.
Does a documented markup or margin feature guarantee profit?
No, documented markup or margin features are configuration tools, not profit guarantees. They allow you to set prices based on your inputs, but they do not account for all business costs or market conditions. You are responsible for calculating your actual margins and ensuring your pricing strategy is viable for your specific shop.