Nine Minds Logo

Navigation

14.8. Schedule Time-Bound Rate Changes on MSP Client Contracts

Use AlgaPSA pricing schedules to apply scheduled rate increases, promotional rates, or fixed-window pricing on MSP fixed-fee contract lines without editing the base contract.

14.8. Schedule Time-Bound Rate Changes on MSP Client Contracts
Use AlgaPSA pricing schedules to apply scheduled rate increases, promotional rates, or fixed-window pricing on MSP fixed-fee contract lines without editing the base contract.
14. Billing and ContractsUpdated: 5/12/2026

Pricing schedules let you define time-bound rate overrides on a fixed-fee contract. Use them to lock in a future price increase, run a promotional rate for a fixed window, or build an auditable history of rate changes — all without editing the contract's base configuration or its underlying lines.

Navigate to Billing > Contracts > Client Contracts > [contract] > Pricing Schedules.


What a Pricing Schedule Does

By default, a fixed-fee contract line bills at the rate defined on the contract. A pricing schedule overrides that rate for a specific date window. During invoice generation, the billing engine identifies the service period for each fixed-fee line, looks for a pricing schedule whose window overlaps that period, and uses the schedule's custom rate instead of the contract-level rate.

Precedence, highest to lowest:

  1. Active pricing schedule with a custom rate (for the overlapping service period)
  2. Contract line custom_rate (the rate set when the line was added or via Edit Pricing)
  3. Service / plan configuration (the underlying fixed-fee pricing on the contract line's services)

If a schedule applies but is set to Use default rate, the schedule itself does not impose a rate — billing falls through to the contract line's underlying fixed-fee pricing for that window. This is the right way to explicitly document a "back to normal" period between two custom-rate windows.

Pricing schedules apply to fixed-fee contract lines only. Hourly and usage-based lines are not affected.


Viewing Pricing Schedules

The Pricing Schedules tab on the contract detail page shows two views of the same data:

  • A Pricing Timeline — a visual representation of all scheduled rate changes, with each window's date range (or "Ongoing" when there is no end date), the custom rate or "Default rate," and any notes.
  • A data table with columns: Effective Date, End Date (or "Ongoing"), Custom Rate (or "Use default rate"), Notes, Actions.

Each row in the table has a kebab menu with two actions: Edit Schedule and Delete Schedule. Clicking a row also opens the editor.

If no schedules exist, the tab shows: "No pricing schedules yet. Add pricing schedules to define time-based rate changes for this contract."


Adding a Pricing Schedule

Click Add Schedule to open the Add Pricing Schedule dialog.

  1. Effective Date (required) — the date this rate window starts.
  2. Choose how to define the duration:
    • Toggle Use duration on to enter a Duration (a positive number) and Unit (Days, Weeks, Months, or Years). The end date is computed for you from the effective date plus the duration.
    • Leave Use duration off and you'll see a Has end date toggle. Turn it on to pick an explicit End Date. Leave it off to make the schedule ongoing — it stays in force indefinitely until you edit it or add an end date.
  3. Choose the rate:
    • Toggle Use default rate on to mark the window as using the contract line's underlying fixed-fee pricing. Useful for documenting a "back to normal" period between two custom-rate windows.
    • Leave it off and enter a Custom Rate in dollars — this overrides the contract line's underlying pricing during the window.
  4. Add Notes (optional) — for example, "2026 annual rate increase" or "Q1 promotional rate."
  5. Click Add Schedule to save.

No-overlap rule. Pricing schedules on the same contract cannot overlap. If you try to add a schedule whose window touches an existing one, Alga returns "This schedule overlaps with an existing pricing schedule" and refuses to save it. A later schedule will not silently supersede an open-ended one — you must first close out the prior schedule by setting its end date.


Editing and Deleting Schedules

  • Edit Schedule lets you modify the dates, rate, or notes. The same overlap and date-order checks apply on save.
  • Delete Schedule removes the schedule. Already-generated invoices are unaffected. For service periods previously covered by the deleted schedule, future runs fall back to the contract line's underlying fixed-fee pricing (its custom_rate, or the service/plan configuration if no line-level rate is set).

How Pricing Schedules Affect Invoices

When an automatic invoice is generated for a fixed-fee contract line:

  1. The billing engine determines the service period for the line.
  2. It queries for a pricing schedule on the contract whose effective date is before the service period's end and whose end date is either null or after the service period's start — that is, [start, end) semantics. A schedule starting exactly on the service period's end date does not apply to that period; it applies to the next one.
  3. If a matching schedule has a custom_rate, that rate is used for the charge calculation for the period.
  4. If no matching schedule has a custom rate, billing falls back to the contract line's custom_rate, and then to the line's service/plan configuration.

Already-generated invoices are not retroactively recalculated when schedules change.


Constraints

  • Per-contract scope. Schedules are configured on the contract, not on individual services or contract lines. When a schedule applies, it affects fixed-fee pricing for the contract's recurring fixed-fee lines during that window.
  • Fixed-fee only. Hourly and usage-based contract lines are unaffected by pricing schedules.
  • System-managed defaults are read-only. The auto-created attribution contracts that capture uncontracted work are system-managed defaults; pricing schedule authoring is disabled on them. The tab displays "This system-managed default contract is attribution-only. Pricing schedule authoring is disabled."
  • No overlap. Two schedules on the same contract cannot share any time. Close out an open-ended schedule before opening a new one.

Example: Annual Rate Increase

A managed services contract for an MSP client has a base rate of $2,000/month. You've negotiated a $2,200/month rate effective January 1.

  1. Click Add Schedule.
  2. Effective Date: January 1.
  3. Use duration: off. Has end date: off (this is an ongoing increase).
  4. Use default rate: off. Custom Rate: 2200.00.
  5. Notes: "2026 annual rate increase."
  6. Click Add Schedule.

From January 1 forward, every invoice generated for this contract's fixed-fee lines will bill at $2,200. The change appears in the Pricing Timeline alongside any prior schedule history, giving you a clear audit trail of how the contract's effective rate has evolved. The base contract configuration remains untouched, so renewals, exports, and contract templates still reflect the negotiated baseline.


Related Topics