What Determines an Estimate's Price
Every price on an estimate comes from the same formula: Pulse first calculates how much cleaning time the job needs, then multiplies that time by an hourly rate, and finally applies minimums, rounding, and any rate adjustments. Once you know the order of those steps, any price on the Pricing step of the Full-Page Estimate can be traced back to its inputs.
What determines the price and hours on an estimate?
Six things, applied in this order:
- The scope of work's pricing model — how base time is calculated (by room, by square footage, or simplified)
- The property details — room counts or square footage
- Factors — a scope factor, a frequency factor, and any pricing question answers, each of which scales the time up or down
- The hourly rate — set on the scope, with an optional override per frequency
- Minimums and rounding — a floor price, then your company's price-rounding rules
- Rate adjustments — add-ons, fees, and discounts added on top of the rounded base
All of these are configured under Settings → Quoting & Scopes. The estimate itself only supplies the property details, the answers, and the selections — the math comes from that configuration.
How does Pulse calculate the cleaning time?
Each scope of work uses one of three pricing models, chosen on the scope in Settings → Quoting & Scopes → Scopes of Work:
By Room — Every room type has an allowed time in minutes (a bathroom might be 13.5 minutes, a bedroom 10). Pulse multiplies each room's minutes by its quantity and adds them up. Quantities come from the Room Master on the Pricing step. The bedroom, bathroom, and stories counts you enter feed the Room Master automatically: the first bedroom counts as the primary bedroom, the rest as regular bedrooms, and each story above the first adds a set of stairs. Rooms marked as defaults on the scope start with a quantity even before you type anything.
Square Foot Based — Pulse divides the home's square footage by a production rate (square feet cleaned per hour) to get hours. Production rates live in square-footage bands, and each band can have a different rate per frequency — so weekly and monthly service can produce different hours for the same home. If the scope is set to pick square footage from a list, or to use the top of the band, every home inside a band is priced at that band's maximum — in that setup you enter the band values directly as hours instead of a rate. A home below your smallest band or between bands, or a band with no rate for a frequency, gets no base time and is priced at the minimum (see below).
Simplified — You calibrate two example homes (a small one and a large one, each with square footage and hours). Pulse draws a straight line between them and reads the hours for any square footage off that line, including homes smaller or larger than your two examples. Until you set them, a scope uses 1,000 sq ft at 2 hours and 4,000 sq ft at 5 hours.
Why is my quote exactly the minimum on a square-foot scope?
Because no band covers the home's square footage (it is below your smallest band or between two bands), or the band has no rate entered for that frequency. A home larger than your largest band is the exception: it is priced at the largest band's rate when that band has one for the frequency. Pulse then gives that frequency no base time, so it is priced at the scope's minimum cost (or the frequency's own minimum). A new scope starts with no bands, so every quote on it is the minimum until you add them. Add or fill in the bands under Settings → Quoting & Scopes → Scopes of Work → Square Footage Pricing Bands, with a rate for every frequency you quote.
What adjusts the time after the base calculation?
Two adjustments, applied in a set order:
- Frequency factor — each frequency on the scope has a factor (for example, 0.8 for weekly service because the home stays cleaner, or 1.2 for monthly).
- Pricing questions — each answer can raise or lower the time by a percentage, by a fixed number of minutes, or by minutes per unit (for example, per window). When a question allows multiple selections, each selected answer is applied in turn using the question's adjustment type: percentages compound, and fixed minutes add up.
By default the frequency factor is applied before the question adjustments. A scope-level setting can move it to the end instead — and because percentages compound, the order changes the result. The breakdown popover (below) always lists the steps in the order they were actually applied.
You may also see a Scope Factor line in the breakdown. In Pulse it is always ×1.0 — a deep clean isn't priced by multiplying a standard clean; it's a separate scope of work with its own room times, rates, and questions.
Pricing questions with a default answer apply even when nobody answers them on the estimate. If a price includes an adjustment you don't remember choosing, check the question defaults on the scope.
How does time become a price?
- The final minutes are converted to hours (rounded to two decimal places) and multiplied by the hourly rate. The rate comes from the scope; a frequency can override it with its own rate.
- If the result is below the minimum cost, the minimum wins. A frequency-level minimum overrides the scope-level minimum when one is set.
- If Quote Rounding is turned on for your company, the base price is rounded per your settings — for example, rounding to the nearest ten dollars and ending in a 9 turns $147.32 into $149. This happens before rate adjustments, so it applies to the base price only.
- Rate adjustments (extras, discounts and fees) are added last: each one is either a flat amount or a percentage of the rounded base price, multiplied by its quantity, and it can also add cleaning time (multiplied the same way). A 40% extra added twice charges 80% of the base price. Some adjustments apply themselves: ones marked required or default on the scope, and ones your company auto-matches by service zone, ZIP code, or billing terms. A valid promo code is applied the same way.
Rate adjustments come in two flavors that explain the two prices you see on the estimate:
- Every-visit adjustments are part of the recurring price.
- One-time adjustments (like a first-time-in fee) apply to the first visit only. That's why the first job price is usually higher than the recurring price — the recurring price is the rounded base, and the first job price adds the one-time fees.
Why did the price change when I changed the frequency?
Because a frequency is more than a schedule — it can carry its own pricing. Any of these four things can differ between frequencies:
- Frequency factor — weekly service typically has a lower factor than monthly.
- Hourly rate override — a frequency can have its own rate.
- Minimum cost — a frequency minimum overrides the scope minimum.
- Production rate (square-foot scopes) — each square-footage band stores a rate per frequency.
All four are on the scope's Frequencies card in Settings → Quoting & Scopes → Scopes of Work.
Does changing the team size change the price?
No. The hours on an estimate are labor hours — total cleaning time across the whole team. The planned team size on a scope divides those labor hours into an on-site duration for scheduling — a 4-hour job with a team of 2 books a 2-hour visit — but the price is always the total labor hours times the hourly rate. Change the team size and the visit gets shorter or longer; the price stays the same.
My estimate calculated a number I can't reproduce — how do I break it down? Does the minimum still apply to my own hourly rate?
Use the calculation popover: on the Pricing step, every frequency price tile has a small ⓘ info button. Click it to see the exact steps behind that price:
- Base time, with the detail behind it — a line per room (quantity × minutes) for room-based scopes, or the square footage ÷ production rate formula
- Each factor that changed the time (frequency, scope, question adjustments), in the order applied
- Final time, then the hourly rate multiplication
- Whether the minimum kicked in, whether rounding changed the price
- The recurring price per visit
The summary panel beside the estimate also shows the running price per scope, total hours, and any first-time-in fee. (These breakdowns appear for office users only — customer-facing quoting hides them.) The first visit's total, with extras, first-time fees and discounts, is shown in the summary panel, not in the ⓘ popover.
When a number looks wrong, the usual suspects, in order:
| Check | Where |
|---|---|
| Room quantities — a stale or huge quantity multiplies that room's minutes | Room Master on the Pricing step |
| Allowed minutes per room on the scope | Settings → Quoting & Scopes → Scopes of Work → Rooms card |
| Default question answers applying silently | Questions on the scope |
| Auto-applied rate adjustments (required, default, or zone/ZIP/billing-term matched) | Rate Modifications settings |
| Frequency-level rate override or minimum | The scope's Frequencies card |
| Band snapping — square footage priced at the top of its band | The scope's square-foot bands |
| Price is exactly the minimum on a square-foot scope — no band covers the footage, or the band has no rate for that frequency | The scope's square-foot bands |
| A number question multiplying minutes per unit — a large answer (like a square footage typed into a per-unit question) multiplies directly into time | Questions on the scope |
| Manual bill-rate override — the rep can type an hourly rate on the scope's card; it re-prices the selected frequency only, and the minimum and your rounding rules still apply; after you reopen a saved quote the card shows the configured rate, and booking it with nothing changed on Pricing books the saved price, hours and add-ons | The scope's card on the Pricing step |
This matters most after changing a scope's pricing model. Switching from square-foot to room-based pricing means the price now comes entirely from room quantities × per-room minutes — the square footage is ignored completely. If a room's allowed time still holds a square-foot-scale number, or a default quantity is set wrong, the total can land far from anything reasonable. The popover's per-room lines show exactly which room contributed what.
Can I set fixed prices by home size and frequency?
Yes, for size tiers defined by square footage. Set the scope to Square Foot Based pricing, define a band per size tier (for example 0–600, 601–900, 901–1,200 square feet), and set the scope's square foot input to Select List so every home inside a band is priced at the band, not at its exact footage. You then enter the time directly as hours per band, per frequency — weekly, biweekly, and monthly each get their own column. With the hourly rate (or per-frequency rate overrides), that produces a fixed time and a fixed price for each size-and-frequency combination. A home larger than your largest band is priced at that band's production rate applied to the home's actual square footage, so it is never cheaper than the largest band; if the largest band has no rate for a frequency, that frequency is priced at the minimum instead.
There is no flat-rate option and no direct "price per tier" field. A fixed price is always fixed hours × hourly rate, so pick the hours that land on your target price. And note that Pulse's size tiers are square-footage ranges, not bedroom-count labels. If you want pricing driven by bedroom count instead, use room-based pricing — the bedroom and bathroom counts on the estimate translate directly into room quantities.
Can I add a discount code to a quote?
Yes. On the estimate's Pricing step, each scope that has discount codes shows a Discount Code list under its add-ons. Pick a code to apply it to that scope, or pick - Select - to take it off. Each code shows its amount and whether it applies to the first visit only (One Time) or every visit (Recurring). You can pick one discount code per scope.
The list shows the discounts in Settings > Quoting & Scopes > Discounts that are turned on and marked Displayed For Office. A discount applied automatically (by a zone, ZIP code or billing-term rule) shows at the top of the scope's add-ons instead of in this list, and can't be removed there. If you reopen a saved quote that has a discount code, the code is already picked and shows as its own line in the price summary.
To lower the price of a booked service, add a rate adjustment to the service set or the job instead — see How do I change the price of a booked service?.
Why did the price on a saved quote change?
The price isn't locked when you save. Each time you open Step 2 of the quote, Pulse recalculates it from your current scope settings. If someone changed the scope's rates, minimums or times after the quote was first built, the quote shows the new price once Step 2 loads. To find the cause, check what changed on the scope, and see Quoting and Scope Configuration.
Does the scope of work affect technician pay too?
Yes. The same scope that prices the quote also drives what technicians earn on its jobs. Each scope carries a pay type (fee split, hourly, team hourly, or allowed hours) on its Pay card, and each technician has pay rates set per scope in their pay structure. If a scope can be assigned to jobs but a technician has no pay rates set for it, their split percentage for that scope is zero — so fee-split pay on those jobs calculates to $0. If techs report $0 pay on one service type only, check that scope's Pay settings and each technician's pay rates for that scope.
Why is a large home priced differently in Pulse than in MaidCentral V2?
A big house is priced differently in Pulse than in V2. A home larger than your largest square-foot band is priced at the largest band's rate for that frequency, applied to the home's actual square footage. MaidCentral V2 finds no band for that home and charges the scope minimum, which under-prices large homes. If your largest band has no rate for a frequency, Pulse charges the minimum for that frequency, the same as V2. (Pulse reference D-12)