Maintenance Plans
Build flexible multi-year maintenance plans with per-service schedules, commercial sites, pricing summaries, and editable occurrences.
Maintenance Plans
The Maintenance Plans module lets teams build residential and commercial service agreements that run for months or years. Each plan can contain many services, and each service can have its own schedule, year scope, site assignment, and pricing.
The legacy residential estimate maintenance builder still works for older proposals. New robust plans are managed from Admin > Maintenance Plans.
When a robust plan is started from a residential estimate, CE Pro saves the estimate draft first and opens the plan builder in a separate tab. The original estimate stays open, and the new plan is linked back to that source estimate. If the plan page opens before the server-side prefill finishes, the builder reloads the saved estimate context before saving so the customer, source estimate, and tax rate are still carried forward.
What's New
The new module supports:
- Residential and commercial plan types
- Fixed-date and open-ended plans
- Multiple services per plan
- Different schedules per service
- Services that run only in specific plan years
- Commercial multi-site plans
- Generated visit occurrences
- Editable occurrence dates and statuses
- Dispatch job creation when a plan is activated
- Fixed, per-service, and hybrid pricing
- Monthly, quarterly, annual, per-visit, and one-time billing previews
- System templates for common residential and commercial plans
- Pause, resume, cancel, duplicate, renew, and extend actions
Creating A Plan
Go to Admin > Maintenance Plans and click New Plan.
Choose the customer, optional saved property, plan type, start date, and either a fixed end date or open-ended duration.
From a residential estimate, use Build robust plan in new tab in the Maintenance Plan section. This preserves the estimate you were building and preloads the robust plan with the saved estimate's customer context. The estimate's displayed tax percentage is normalized into the maintenance plan's decimal tax rate automatically.
From commercial building, fleet, and holiday-lights proposal pages, use Add Maintenance Plan. CE Pro routes the proposal through its synced shared estimate first, so the maintenance builder receives the same customer and estimate context a normal estimate launch would provide.
For commercial plans, add each building or service site in the Commercial Sites section before assigning services.
Adding Services
Each service has its own schedule. Supported schedule types are:
- One-time
- Weekly
- Biweekly
- Monthly
- Quarterly
- Semiannual
- Annual
- Seasonal
- Specific dates
- Custom RRULE
You can scope each service to every year, selected years, or a year range. For example, a three-year residential plan can include quarterly HVAC inspections every year, pressure washing only in Year 2, and roof inspection in Years 1 and 3.
Commercial Sites
Commercial plans can contain multiple sites. A service can be assigned to one site, no specific site, or all sites.
When a service applies to all sites, CE Pro generates occurrences per site so dispatch can track each visit separately.
Pricing
Maintenance plans support three pricing modes:
- Per service — totals come from generated visits and service unit prices.
- Fixed total — the contract uses a fixed amount while service lines remain visible for scope.
- Hybrid — an annual baseline plus per-service add-ons.
Pricing supports markup, discount, tax, and annual escalators. The builder shows estimated annual value, total contract value, per-year breakdowns, and the first billing preview.
When a plan is saved, CE Pro also refreshes the persisted estimated annual value and total contract value from the same service schedules shown in the builder. List views, linked estimate records, and reports can therefore read the saved plan totals without recalculating them in the browser.
Commercial building proposals sync their shared estimate total from the proposal review math: initial line items, scheduled maintenance visits, tax, and portfolio discounts. That review total wins over older stored aggregate fields, and commercial-building estimate detail views preserve the synced annual contract value instead of recalculating the display from only the first-clean line items.
Timeline
The timeline groups generated visits by plan year and month. Activated plans show saved occurrences. Draft plans show a preview based on the current service rules.
Click an occurrence to update its date or status. Drag a saved occurrence to another month to reschedule it and lock that occurrence so future rule edits do not overwrite it.
Plan Lifecycle
Plans start as Draft. Activating a plan materializes occurrences and creates linked dispatch jobs.
Available actions:
- Activate — generate occurrences and jobs.
- Pause — keep dates but remove the plan from active scheduling views.
- Resume — return a paused plan to active.
- Cancel — cancel active linked jobs that have not reached a terminal state.
- Duplicate — copy a plan into a new draft.
- Renew — copy a plan into a new draft that starts after the original end date.
- Extend — move a fixed plan end date forward and generate the new future visits.
Templates
System templates include:
- Residential Basic Annual
- Residential Seasonal
- Residential Premium Multi-Year
- Commercial Quarterly Maintenance
- Commercial Multi-Site Maintenance
Templates create draft plans. Review the dates, prices, sites, and schedules before activating.
Troubleshooting
If the builder shows a warning that templates are unavailable, apply the maintenance plan database migrations before relying on template-based starts. The builder still loads customers, saved properties, and active services so teams can continue creating plans manually.
If the plan list or Save action reports a database relation or column error, the production database is missing part of the maintenance-plan migration set. Apply the latest app migrations before creating live plans.
Maintenance plans started from residential, generic quote, asphalt, commercial building, fleet, and holiday-lights estimate records can prefill from the shared estimate source. If an older link passes a raw module proposal id, CE Pro resolves it to the synced shared estimate before loading the maintenance builder.
Legacy Plans
Existing maintenance plans stored on residential estimates continue to render through the legacy proposal path. Use the Open robust plan module link in the old residential maintenance builder to start a new-style maintenance plan.
Related articles
Was this article helpful?
Still need help? Contact support