Skip to main content

Report Metric Definitions

This article explains where report numbers come from in MaidCentral Pulse. It covers how quickly numbers update, why a metric may not match a hand calculation, and the difference between billed, collected, and projected revenue.

Do report numbers update live, or only after payroll or invoicing closes?​

Most reports read live data. They do not wait for payroll or invoicing to close. When you open a report like Sales KPIs, Revenue Production Planning, or Employee Stats, the system calculates the numbers from your current jobs, quotes, timesheets, and invoices at that moment. If someone books a quote or closes a job, the change shows up the next time the report loads.

Two things can make a number look slightly behind:

  • Short-term caching. Some busy reports keep results for a very short time so the page loads fast. Sales KPIs, for example, reuses results for about one minute. Click Refresh on the report toolbar to force a fresh calculation.
  • Your browser's cached view. Returning to a tab does not reload report data, and a page reload can restore recently viewed numbers instead of fetching new ones. When you need certainty, use the report's own Refresh button — it always fetches fresh data.

Analytics reports update on a schedule, not instantly. Each report is tagged with its data source, and you can see the tag in the report catalog: Real-time reports read your live data, while Data Warehouse reports show an "up to 24h delay" note. Warehouse-backed pages include Revenue Analytics, Profitability, Operations, Job Metrics, Stats by Week, Dispatch Summary, and the Franchise KPI reports. In practice the warehouse syncs from your live data several times a day — roughly every four hours, with a deeper sweep overnight — so the delay is usually a few hours, and up to a day at worst. A job you closed ten minutes ago will appear in real-time reports right away, but not yet on these analytics pages.

Most reports do not wait for payroll or invoicing to close. They show whatever data exists for the date range you pick. The exception is Core KPIs, which are built from closed payroll weeks. See How are the Core KPIs calculated?. This means a report you run mid-week can change by the end of the week as more jobs close and more payments post.

What do the hours and staffing terms mean?​

TermWhat it meansWhere you see it
Allowed HoursThe hours a job is budgeted for, from the service's estimate. It is the time the job should take, not the time it took.Revenue Production Planning, job and technician pages
Scheduled HoursThe working hours your employees are scheduled for on their team schedules. It is your available capacity.Revenue Production Planning
UtilizationAllowed Hours divided by Scheduled Hours. Over 100% means more work is booked than your staff can cover.Revenue Production Planning
Unused HoursScheduled Hours minus Allowed Hours. A positive number is spare capacity. A negative number means you are overbooked. Scheduled Hours is adjusted first by each scope's Efficiency Factor (set under the scope's Pay Settings).Revenue Production Planning
Actual HoursThe time technicians really clocked on the job.Job and technician pages, Employee Stats
ProductivityAllowed Hours divided by Actual Hours. Over 100% means the job took less time than budgeted.Technician Jobs tab
Clock HoursTotal time clocked in for the day, including drive time and breaks.Employee Stats
EfficiencyJob Hours divided by Clock Hours, capped at 100%. It shows how much of a person's clocked time was spent on jobs.Employee Stats
NPT (non-productive time)Clock time minus job time: paid time not spent cleaning, such as driving and waiting.Employee Stats, Team Mileage
NPT FactorHow your actual NPT compares to the NPT you planned for. 100% means you used exactly the planned NPT. Above 100% means less NPT than planned. Below 100% means more. It is green at 100% or more, yellow from 80% to 99%, and red under 80%.Employee Stats
NPT DiffActual NPT minus planned NPT, in hours and minutes. Red means over plan and green means under plan.Employee Stats
Attendance100% minus days absent (unexcused, excused and time off) plus half a point for each day late, divided by days worked. It never goes below 0% or above 100%.Employee Stats, technician Time & Attendance tab

Example: a team is scheduled for 40 hours and has 32 allowed hours booked. Utilization is 80% and Unused Hours is 8. A technician who clocks 8 hours and spends 6 on jobs has an Efficiency of 75% and 2 hours of NPT.

Some employees show no NPT Factor. Office staff, for example, have scheduled hours but no planned job time, so there is nothing to score.

How are the Core KPIs calculated?​

The Core KPIs tab on Office > Reports is built from your closed payroll weeks, not live data. A week only shows up after payroll for that week is closed, and the numbers are totals or averages over the weeks you choose with the week count and Weeks Ending On controls.

KPIHow it is calculated
Avg Bill Per CleaningTotal revenue divided by total jobs
Avg Quotes Per WeekTotal quotes divided by the number of weeks
Avg Close Rate Per WeekRecurring sales divided by quotes, over all the weeks. It counts recurring sales only.
Cleanings Per Home Per MonthJobs per week, times 4.333, divided by the average number of recurring homes
Revenue Per Technician Per DayTotal revenue divided by total days technicians worked
Direct Payroll % to RevenueTotal payroll divided by total revenue
Monthly Cost Less Direct PayrollAverage of the Monthly Cost you enter on the card, over the weeks in your range that have one entered. Weeks with nothing entered are skipped, not counted as zero.
Home Churn RateRecurring homes lost per week, times the months in the range, divided by recurring homes at the start
Avg Skipped Cleanings Per Day(Skipped jobs + lockout jobs) divided by (completed + skipped + lockout jobs). It is a share of jobs, not a count per day.
Absentee Rate Per Day(Excused + unexcused + time-off days) divided by (days worked + those absent days)
Avg Technician Turnover Per YearTechnicians lost per week, times 4.333, divided by current technicians, times 12
Avg Technicians Hired Per MonthTechnicians hired per week, times 4.333
Avg # of FTE Cleaning TechniciansTotal days worked, divided by the number of weeks, divided by 5
Recurring Homes at StartRecurring homes in the first week of the range

Hover over a KPI card to see its formula with your own numbers filled in.

How do I enter the Monthly Cost for Core KPIs?​

The Monthly Cost Less Direct Payroll card has a pencil icon if your role is allowed to enter it. Click the pencil, type an amount for the week selected in Weeks Ending On, and save. The value is saved for that payroll week only, but each later payroll close carries the most recent entry forward automatically, so you only need to update it when the cost changes. Clear the field and save to remove a week's value.

Why don't the Core KPI and Sales KPI close rates match?​

They measure different things:

  • Core KPIs close rate is recurring sales divided by quotes, added up over your closed payroll weeks.
  • Sales KPIs follows the leads created in your date range and counts how many of the quoted ones booked recurring service. See Find Your Recurring Close Rate.

A lead created in one week that books in the next is counted differently by each report. Pick one report and use it consistently to track trends.

Why doesn't a metric match my hand calculation?​

Almost every mismatch comes down to inclusion rules — the report counts a slightly different set of records than you did, or measures them a different way. Here are the rules for the metrics people check by hand most often.

Average actual hours (Rate Increases)​

The Rate Increases tool shows an Avg Actual Hours value for each service set. Three rules make it hard to match by hand:

  1. Only closed jobs count. Pending, cancelled, and skipped jobs are never included. If you set a Job History Date Range in the wizard, only closed jobs inside that window count.
  2. Hours are the whole team's time, added together. If two cleaners each spent 1.5 hours on a job, that job contributes 3 hours — not 1.5. The report measures total labor on the job, not one person's time.
  3. Jobs with no completed clock time still count in the average. A closed job where no one clocked out contributes zero hours but still adds one to the job count. This pulls the average down compared to a hand calculation that skips those jobs.

The wizard also has Include in Calculations checkboxes for first-time jobs, redo jobs, trainee jobs, and time-rate-mod jobs. Unchecking any of these removes those jobs from the average. There is also a Normalized Avg Actual Hours value: it weights each cleaner's time by their productivity score, and it skips any job where a team member has no productivity history for that service type. The normalized value and the plain average can differ for the same service set — that is expected. A row with no productivity history for one of its team members shows an Estimated tag next to the normalized value — read it with care, since it rests on an assumed productivity score rather than a measured one.

The same normalized-hours idea also appears as Team Productivity, Norm. Act. Hrs and similar columns on the Dispatch tab and the Service Set Pricing report, if your company has team productivity reporting turned on. See Service Set Pricing and Profitability for what those columns mean.

Why did a Rate Increase value change since I last looked?​

Rate Increase previews are recalculated from job history every time you run the wizard. They are not saved snapshots. As new jobs close, the average hours shift, and any rate that is calculated from hours shifts with them. Changing the Job History Date Range or the include/exclude checkboxes also changes the result.

The History tab records each executed rate change, but its revenue figure is also live: the actual additional revenue for a change is the rate difference multiplied by the number of jobs that have closed under the new rate so far. That number grows over time as more jobs close, and its window ends when a newer rate change starts. So it is normal to see a different value today than last week — nothing was edited; more jobs simply closed.

Why doesn't Dashboard revenue match Revenue Production Planning?​

They count different jobs over different dates. Both price a job the same way: the base rate in effect on the job date plus one-time and recurring add-ons.

Dashboard Revenue cardRevenue Production Planning report
Jobs includedClosed jobs, plus Pending jobs someone has clocked out of. Pending jobs nobody has worked yet are left out.Every Closed and Pending job, including future jobs nobody has worked yet
Date windowThe last 4 complete Monday–Sunday weeks, ending last Sunday, for the branch you have selected. Today is never included.The dates you pick (the current calendar month by default). With more than one branch, the report shows each branch plus a Total.
What it meansRevenue from work your teams actually didRevenue on the books: done plus still scheduled

Use the Dashboard to see how recent weeks went. Use Revenue Production Planning to plan ahead. To compare them, set the report to the same four weeks shown on the Dashboard and look at the same branch; the report will still be higher by any Pending jobs in those weeks that nobody worked. See Revenue Production Planning and Overview Dashboard.

Revenue Production Planning​

  • Only jobs with a Closed or Pending status count. Cancelled and skipped jobs never appear in the job counts or revenue.
  • Revenue per job is the base rate plus any one-time and recurring add-ons for that job's date. It is the scheduled amount, not what was invoiced or paid.
  • Zero-dollar jobs are included. A job priced at $0 still counts as a job; it just adds nothing to revenue. If you divide revenue by jobs to get an average, your average will include those jobs.

Employee Stats​

  • Efficiency is capped at 100%. Job hours divided by clock hours never shows above 100%, even when raw math would.
  • Only completed time records count toward hours. A shift or job time entry with no clock-out contributes no hours. Job counts do not apply that same filter, so an employee's jobs and job hours can come from slightly different record sets.
  • Paid time can start later than the clock-in. When a scheduled work start time is later than the actual clock-in, hours are measured from the work start time. Raw clock-in to clock-out math will overstate the hours.
  • Unscored employees are left out of footer averages. Someone with no planned clock time or no planned job time (office staff, for example) shows no score, and the totals row averages only the scored rows. A hand average across all rows will not match.

Average hours on analytics pages​

Analytics-suite averages are often per time entry, not per job. An "Avg Actual Hours" figure there averages one row per person per job. A job cleaned by three technicians contributes three entries. If you averaged per job by hand, you will get a different — usually higher — number than the per-person average.

Percentage metrics with zero in the denominator​

Reports skip percentage math when the base number is zero. Week In Review, for example, only computes revenue-percentage figures for weeks that have both revenue and payroll. A blank or dash is deliberate — it means "cannot be calculated," not "zero."

If a number still looks wrong after checking these rules, click into the detail. Many reports let you drill into the records behind a figure — Sales KPIs opens a record list when you click a summary number. Comparing that list to your own list usually reveals which records the report included or excluded.

Billed vs collected vs projected revenue — what's the difference?​

These are three different measurements, and they can legitimately show three different amounts for the same period.

TermWhat it countsWhere you see it
BilledThe total of invoices issued during the periodBilled vs Collected widget on the Dashboard
CollectedPayments actually received during the period (voided payments excluded)Billed vs Collected widget on the Dashboard
ProjectedRevenue from booked jobs that have not happened yetProjected Revenue on the Franchise KPI report; scheduled revenue in Revenue Production Planning

Billed answers "how much did we invoice?" It sums invoice totals by their issue date. Collected answers "how much cash came in?" It sums payments by their payment date, skipping voided payments. These rarely match for the same window, because a payment often lands days or weeks after its invoice — a strong January can be billed in January and collected in February. The widget also shows a collection rate (collected divided by billed) and the gap between the two. Both figures count invoices issued and payments recorded in Pulse.

One important habit to build: on most report pages, "revenue" means the job's bill rate — the base rate plus add-ons, less discounts — measured by the job's service date. It is not the invoiced amount and not the collected amount. Revenue Analytics, Stats by Week, Revenue Production Planning, and the Franchise KPI revenue columns all work this way. If you compare a revenue report against your accounting totals, expect differences: the report counts what jobs were worth, while accounting counts what was invoiced or paid.

Projected looks forward. On the Franchise KPI report, Projected Revenue is the value of pending jobs with dates still in the future — the book as it is scheduled today, not a statistical forecast. Total Projected Revenue adds what has already been earned in the period to that future book: "if every scheduled job completes, this is your period revenue." Revenue from cancelled, skipped, and lock-out jobs is excluded, since it is already lost. Revenue Production Planning shows the same idea for planning: the scheduled revenue of Closed and Pending jobs in your date range. Goal tracking uses the same family of forecast metrics — Scheduled Revenue (all non-cancelled, non-skipped jobs in the period), Remaining Scheduled Revenue (pending jobs not yet worked), and Projected End-of-Period Revenue (actual revenue so far plus the remaining schedule).

So for one month you might see: $80,000 projected at the start, $78,500 billed by the end (a few jobs cancelled), and $71,000 collected (some invoices unpaid). All three numbers are correct — they measure different things at different points in the money's journey.

Tips​

  • Run reports after the day's work settles if you compare them day to day. A mid-morning run and an end-of-day run can differ simply because more jobs closed.
  • Use the Refresh button before trusting a number in a meeting. It clears the short-term cache and recalculates.
  • Drill into totals when a figure looks off. The record list behind the number is the fastest way to spot an inclusion-rule difference.
  • Expect analytics pages to lag a few hours. For up-to-the-minute answers, use the live report pages instead.