Flat-rate pricing task records
What this means in HVAC
Flat-rate pricing means the customer sees a price per repair, not an hourly rate plus parts. It lives in a price book: a code, a description the customer can read, a price, and for replacements a good, better and best version of the same job. Flat-rate pricing software is mostly a question of whether the field service product can hold that book and put it in front of the technician. We test the narrowest version of that in T-02: import the 30-item book of Ridgeline, our fictional HVAC company, from a CSV, including three replacement packages with option tiers, and check what survived.
What survived the import
Codes and prices survived in both products, with workarounds. Descriptions survived in one. Option tiers survived in neither. Jobber’s template has name, description, category, unit price, unit cost and duration, but no item code and no options: 30 rows imported cleanly with the code carried as a prefix in the description. TestedT-02 ServiceM8 maps item number, name, price and purchase cost, cannot import the description, and treats imported prices as tax inclusive unless a column says otherwise. TestedT-02 Both runs ended as partial: the book is usable in each, but a customer-readable description is lost on one side and the code field on the other.
Before you import your own book
Three things caught us. Jobber pre-loads eight sample HVAC services during onboarding, so the list is not empty when your file arrives. ServiceM8 imports in the background; count the items a minute later rather than trusting the confirmation. ServiceM8’s tax-inclusive default did not change our amounts because the account’s US tax rate was zero, but a contractor with a configured sales tax should map the “price includes taxes” column or expect to edit prices afterwards.
The price book tool on this site exports Ridgeline’s book in each product’s import format, so you can see the columns each one expects before you build your own file. It ships no “standard” prices: every amount is yours.
- Housecall Pro · Not tested UnverifiedT-02
- Jobber · partial TestedT-02
- Kickserv · Not tested UnverifiedT-02
- ServiceM8 · partial TestedT-02
- ServiceTitan · Not tested UnverifiedT-02
- Workiz · Not tested UnverifiedT-02
What the tasks require
Rubric: Setup & onboarding
- T-02: Import the 30-item price book from CSV, including options
Codes, descriptions and good/better/best options preserved
Products and task evidence
Housecall Pro advertises a 14-day free trial, but its terms say the service is offered to users who reside in the US or Canada, and when we signed up on September 28, 2026 the onboarding form did not accept our Spanish phone number. Our lab is in Spain, so we have not run our tasks on it. What this page shows comes from public sources and is marked as documented, not tested.
Housecall Pro: insufficient evidence for these tasks.
Kickserv: insufficient evidence for these tasks.
ServiceTitan: insufficient evidence for these tasks.
Workiz: insufficient evidence for these tasks.
- Price checked
- Not verified
- Last tested
- Last edited
Pinned: Housecall Pro · Jobber · Kickserv. All tasks are shown on desktop; narrow screens start with differences. These selected results are available without JavaScript.
| Task | Housecall Pro | Jobber | Kickserv | ServiceM8 | ServiceTitan | Workiz |
|---|---|---|---|---|---|---|
Price book import | Housecall Pro Not tested UnverifiedT-02 | Jobber Partial TestedT-02 | Kickserv Not tested UnverifiedT-02 | ServiceM8 Partial TestedT-02 | ServiceTitan Not tested UnverifiedT-02 | Workiz Not tested UnverifiedT-02 |
Profile verdicts
Owner-operator
View this operation profileSmall residential shop
View this operation profileMixed service + projects
View this operation profileCommercial-leaning
View this operation profileRecorded limitations
- Your payer is often not the owner of the service location: in our trial Jobber billed the client that owns the property, so a property manager's unit needed a workaround that either duplicates the location or demotes the tenant to a contact (T-03).
- You track individual units by serial number: Jobber had no equipment record in our trial, and history lives on the property, not the unit (T-04).
- Your customer list already has property managers or landlords: the importer takes one row per property and cannot link the payer, so that structure is rebuilt by hand after import (T-01, T-03).
- You expect the app's search to find a job by its number: in our test it returned the customer and the address, not the job (T-09).
- You want the displaced customer told automatically when an emergency bumps their slot: the reschedule notice is a manual send (T-07).
- You need card payments working on day one: in our trial only cash, check and manual payment records were available, because Jobber Payments was not set up on the account (T-10).
- You are counting on the lowest plan: the features we tested put a contractor on Grow, $199 a month for one person at the time of our check (T-16).
- You need per-unit history right away: the register showed our condenser with its serial, but nothing can be recorded against it until a ServiceM8 QR label is scanned on the unit (T-04).
- You expect the payer and site structure out of the box: as the product comes, billing another address is set per job and every unit address is retyped; the Client Sites add-on support described is untested by us (T-03).
- You expect offline work to sync on its own: in our test nothing uploaded after reconnecting until the app was closed and reopened, so a technician who waits for the sync may not see offline work (T-09).
- You bill replacements as percentages: the deposit is a hand-priced line that needs an item code, not a share of the job (T-08).
- Your customer list has several rows per customer: the importer merged same-name rows without warning and kept only the last address (T-01).
- You want equipment history without labels: each unit needs a ServiceM8 QR label scanned on site before any service can be recorded against it (T-04).
- Your office forces emergencies into full slots: in our run the displaced job dropped out of the day view, with no conflict marker on the board (T-07).
- You want card payments without extra setup: with no gateway active, the phone only recorded a card or cash amount by hand (T-10).
- You work from an Android phone: the full app is iOS, and the Android app is a separate "Lite" version we have not tested (T-16).