Service Plans
Configure plan types (recurring, one-time, addon), service frequencies, and pricing including per-bin pricing.
Service Plans
A service plan defines what you offer, how often, and at what price. Plans are assigned to properties and drive both scheduling frequency and invoice line items.

Plan Types
| Type | Description |
|---|---|
recurring | Ongoing service at a set frequency (weekly, biweekly, monthly, etc.) |
one_time | Single service visit — no recurring schedule |
addon | Extra service added on top of a recurring plan (e.g., extra deep clean) |
Plan Fields
| Field | Description |
|---|---|
name | Display name (e.g., "Weekly Bin Cleaning") |
description | Detailed description shown to customers |
service_type | Category label for your vertical |
frequency | weekly, biweekly, monthly, quarterly, annually, seasonal, one_time |
price_cents | Base price in cents (e.g., 3500 = $35.00) |
setup_fee_cents | One-time setup fee charged on the first invoice |
additional_bin_price_cents | Per-bin surcharge for properties with more than one bin |
estimated_duration_min | Expected time per stop for this plan |
per_unit_duration_min | Additional time per extra bin/unit |
visibility | public (shown everywhere), portal (customer portal only), or internal (staff only) |
tax_rate | Plan-specific tax rate (overrides tenant default if set) |
sort_order | Display ordering in plan lists and widgets |
Service Frequencies
| Frequency | Schedule |
|---|---|
| Weekly | Every occurrence of the route template's day |
| Biweekly | Every other week, using A/B parity (Week A or Week B) |
| Monthly | One specific week per month: 1st, 2nd, 3rd, 4th, or last |
| Quarterly | First month of each quarter (Jan, Apr, Jul, Oct) |
| Annually | Once per year |
| Seasonal | Active only during configured months (e.g., Apr–Oct) |
| One-time | Single occurrence, then removed from the template |
Biweekly Parity
Biweekly plans use Week A / Week B parity. Each template stop specifies its week_parity:
A— serviced on A-weeksB— serviced on B-weeksevery— serviced every week (effectively weekly)
This ensures even distribution of biweekly customers across alternating weeks.
Monthly Week Selection
Monthly plans specify which week of the month via month_week:
1st— first occurrence of the day in the month2nd— second occurrence3rd— third occurrence4th— fourth occurrencelast— last occurrence of the day in the month
Pricing
Base Price
The price_cents is charged per service period. For recurring plans, this is the per-occurrence price that rolls into the monthly invoice.
Per-Bin Pricing
If additional_bin_price_cents is set, properties with more than one bin are charged:
Total = price_cents + (additional_bin_price_cents × (bin_count - 1))For example, with a $35 base price and $10 per additional bin:
- 1 bin: $35
- 2 bins: $45
- 3 bins: $55
Setup Fees
The setup_fee_cents is a one-time charge added to the customer's first invoice. Use it for initial cleanings, equipment setup, or onboarding costs.
Tax Rates
Each plan can override the tenant-level default tax rate. If tax_rate is null, the tenant's default_tax_rate applies. Tax is calculated on the subtotal and added as a separate line item.
Plan Visibility
| Visibility | Where it appears |
|---|---|
public | Pricing widget, customer portal, enrollment forms, and internal dashboard |
portal | Customer portal and enrollment forms only |
internal | Only visible to dispatchers and admins in the dashboard |
Use internal for special pricing, custom arrangements, or legacy plans you no longer offer publicly.
Stripe Integration
Plans can be linked to Stripe prices via stripe_price_id for online payment processing. When connected, invoice payments flow through your Stripe Connect account.
Related
- Customers & Properties — how plans are assigned to properties
- Invoices — how plan pricing appears on invoices
- Promos — discounts applied to plan pricing