Skip to main content

Revenue Production Planning

The Revenue Production Planning report shows how much revenue your schedule is expected to generate and how well your team capacity is being used. It helps you spot gaps — periods where your cleaners have open time — and periods where you may be overbooked. You can group the data by day, week, or month and view it as a chart, a table, or a visual capacity grid.

This report is Powered by MaidSense, MaidCentral's AI-assisted analytics engine.

Navigate to Reports → Revenue Production Planning to open this report.

Who Can Access This​

RoleAccess
AdministratorFull access
SalesFull access
OfficeNot available
HR AdminNot available
Payroll AdminNot available
Field TechnicianNot available

This report is limited to Administrators and Sales.

Page Overview​

The page is organized into four sections that appear after data loads:

  1. Toolbar — date range, grouping, and export controls
  2. KPI summary cards — four totals for the selected period
  3. Charts — Revenue Trend and Capacity Utilization
  4. Production Data table — detailed, filterable grid with one row per period

Step 1 — Set the Date Range​

The report defaults to the current calendar month, giving you a complete monthly planning view.

  1. Click the date range picker in the toolbar
  2. Choose a start and end date
  3. The page refreshes automatically

You can look backward (historical) or forward (forecasting) — just set the range accordingly.

Date range limits depend on grouping:

GroupingMaximum range
Day365 days
Week5 years
Month5 years

Day grouping stays capped at 365 days because it calculates a detailed row for every single day. If you need to look at a range longer than a year, switch to Week or Month grouping first — this now supports multi-year trend analysis. If you pick a range longer than the limit, the report shows a message telling you the maximum allowed and suggests switching grouping.

Step 2 — Choose a Grouping​

Use the Day / Week / Month tabs in the toolbar to control how periods are grouped:

TabWhat It Shows
DayOne row and data point per calendar day
WeekRows summarized by week
MonthRows summarized by calendar month

Monthly grouping is best for high-level business reviews. Daily grouping gives the most detail for operational planning.

KPI Summary Cards​

Four cards appear at the top of the results:

CardWhat It Shows
Total RevenueSum of all scheduled revenue, with the average per period below
Capacity UtilizationOverall utilization percentage with a status badge
Unused HoursTotal unused team hours (yellow = hours available, green = fully booked)
Total JobsTotal scheduled jobs, with total allowed hours below

Utilization status badges:

BadgeWhat It Means
OptimalCapacity is well-utilized — enough work without overload
Under-utilizedAvailable team hours that are not yet scheduled
OverbookedMore jobs scheduled than allowed hours can support

Capacity Analysis Summary​

Below the KPI cards, a row of three badges shows a count of periods by status for the full date range:

  • N Optimal (green) — periods where capacity use is on target
  • N Under-utilized (yellow) — periods with open capacity
  • N Overbooked (red) — periods with more scheduled work than capacity allows

Use this summary to quickly gauge overall scheduling health before reviewing the detail.

Charts​

Two charts appear side by side:

Revenue Trend​

A bar chart showing revenue per period. The x-axis shows period labels and the y-axis shows revenue in dollar amounts. Hover over any bar to see the exact revenue for that period.

Capacity Utilization​

An area chart showing utilization percentage per period. A dashed red line marks the 100% threshold. Periods above this line are overbooked. Hover over the chart to see the exact utilization for each period.

Production Data Table​

The Production Data section below the charts contains a filterable grid with one row per period.

ColumnDescription
PeriodThe period label (date, week, or month depending on grouping)
JobsNumber of scheduled jobs in the period
RevenueTotal scheduled revenue
Allowed HoursThe hours the period's jobs are budgeted for
Scheduled HoursThe working hours your employees are scheduled for (your capacity)
Unused HoursScheduled Hours minus Allowed Hours. Positive is spare capacity and negative means overbooked (yellow if > 0, green if = 0)
UtilizationAllowed Hours divided by Scheduled Hours, with a color-coded status badge

If Work Days is turned on for your company, the table also shows:

ColumnDescription
Work DaysHow much of the period counts as a working day — a full week is 5, a week with a full-day holiday is 4
$/Work DayRevenue divided by Work Days. Grouping by week or month, or totaling across rows, sums revenue and Work Days first so the figure is never an average of averages

A period with 0 Work Days (every date in it closed) shows $/Work Day as blank rather than dividing by zero.

How is $/Work Day calculated?​

$/Work Day is the period's Revenue divided by its Work Days. Work Days comes from Work Days settings: a normal day counts as 1, a day off counts as 0, and a holiday counts as whatever is left after the holiday's hours are taken out of a full day. Grouping by week or month, or totaling the grid, always sums Revenue and Work Days separately and then divides — it never averages the per-day $/Work Day figures — so the total is accurate even when some days in the period are holidays or closed.

Hidden columns (available through the column panel):

  • Skill Set — filter by job skill set
  • Tag — filter by employee or job tag

The grid paginates at 20 rows per page. You can switch to 10, 50, or 100 rows per page using the pagination controls at the bottom.

Saved Grid Views​

The Production Data section has a Grid View selector above the table. This lets you save and recall different column, filter, and sort configurations.

System default views:

  • Standard View — pre-filtered to a standard skill set and employee tag, matching the legacy report behavior
  • All Data — no filters applied; shows everything in the selected date range

To save your own view:

  1. Set up the columns and filters you want
  2. Click the grid view selector
  3. Choose Save View
  4. Give the view a name and confirm

Saved views appear in the selector for quick recall later. A saved view remembers scope-group and scope-of-work filters, branch visibility, search, grouping, column visibility, column order, sorting, and grid filters. Users with the required grid-view permissions can make a view the default for themselves, their branch, or every location in the company.

Scope Filters​

Use Filters in the toolbar to select one or more Scope Groups and Scopes of Work. Scope choices are narrowed by the selected scope groups. The report recalculates jobs, revenue, allowed hours, utilization, charts, totals, and exports from the filtered jobs.

RPP does not use the kiosk-report setting to decide which scopes are included, so it never hides valid jobs. Use RPP's explicit Scope Group and Scope of Work filters whenever you need to narrow the report.

Grid View Drawer​

Click Grid View in the toolbar to open a full-panel visual layout of the capacity data.

The drawer offers three view modes:

ModeDescription
TimelineA horizontal timeline showing capacity fill across periods (dates as columns)
DailyA vertical list with dates as rows and a single capacity column
DetailedDates as rows with multiple metric columns — Open, Labor, Scheduled, Utilization %, and Revenue

You can also switch the Dimension between:

  • Total — aggregate capacity across all teams
  • By Team — capacity broken down per team

The drawer includes Refresh and Download buttons that reload or export the same data shown in the main report.

Export to CSV or Excel​

Click Export in the toolbar and choose CSV or Excel to download the current grid.

The export reflects the current column visibility, grouping, sorting, scope filters, and displayed branches.

The file is named revenue-production-planning-YYYY-MM-DD.csv (or .xlsx) using today's date. The drawer's Download button always saves the Excel workbook.

Tips​

  • Start with Monthly view to get the big picture, then switch to Daily for a specific week that needs attention.
  • The current-month default is a planning view — the jobs and revenue shown are scheduled, not completed. Use a past date range to review what actually ran.
  • Under-utilized periods are opportunities — if you see yellow Unused Hours for next week, that's open capacity you can fill with new bookings.
  • Overbooked periods need attention — check the daily view to find which specific days have more jobs than your team can handle.
  • Use "By Team" in the Grid View to see which teams have open capacity and which are overloaded, so you can reassign work.
  • Multi-year historical views can understate capacity. For older periods that include employees who have since left the company, Scheduled Hours and Utilization for those periods may read lower than what actually happened, because past schedule data for terminated employees isn't counted. Revenue, Allowed Hours, and job counts aren't affected. Keep this in mind when reviewing several years of Week or Month data at once.
  • Save a custom view with your most-used skill set and tag filters so you don't have to set them up every time.
  • Export before a planning meeting to share a snapshot of upcoming schedule health with your leadership team.

Troubleshooting​

IssueWhat to Check
No data appearsConfirm there are jobs scheduled in the selected date range. Try switching from Month to Day to see if any individual days have data.
All periods show "Under-utilized"Your allowed hours may be set higher than your scheduled jobs. Check staffing levels and job scheduling for those dates.
All periods show "Overbooked"More jobs are scheduled than team capacity allows. Review job assignments and consider spreading demand across more days.
Utilization % looks incorrectMake sure the active grid view is not filtering to a narrow skill set or tag. Try switching to "All Data" view.
Revenue seems lowThe report reflects scheduled revenue only. Completed jobs are not recalculated. Verify job pricing is set correctly.