Nine Minds Logo

Navigation

14.3. Define Billable MSP Services with Fixed, Hourly, and Usage-Based Rates

Build the AlgaPSA service catalog with fixed, hourly, and usage-based services, multi-currency pricing, service types, and product entries for MSP billing.

14.3. Define Billable MSP Services with Fixed, Hourly, and Usage-Based Rates
Build the AlgaPSA service catalog with fixed, hourly, and usage-based services, multi-currency pricing, service types, and product entries for MSP billing.
14. Billing and ContractsUpdated: 6/26/2026

The service catalog is the master price book that every contract, invoice line, and usage charge in AlgaPSA draws from. Whether you are billing GreenLeaf for a flat managed-services bundle, charging Cascade Manufacturing hourly for after-hours engineering, or metering backup storage by the gigabyte, each of those line items begins life as a service in this catalog.

Navigate to Billing > Pricing > Services to open the catalog.

What the Service Catalog Defines

For every offering you sell, the catalog answers four questions:

  • What is this service called?
  • How is it billed (fixed fee, hourly, or usage)?
  • What is the default rate, and what does that rate mean (per month, per hour, per unit)?
  • What is the default description that flows onto invoices and contract lines?

Once a service exists, it can be attached to any contract, used as a contract line preset, and billed in any currency you have priced.

Viewing and Filtering Services

The catalog displays a paginated list of every service in the tenant. Two dropdowns at the top of the page let you narrow the list:

  • Filter by Service Type - the category the service belongs to (for example, Managed Services, Support, Hardware).
  • Filter by Billing Method - Fixed Fee, Hourly, or Usage.

Each row shows the service name, service type, billing method, primary price (with a +N indicator if additional currencies are configured), unit of measure for usage services, and the assigned tax rate.

Adding a New Service

Click the Add Service button in the upper right corner. The Add New Service dialog opens.

Fill in the service details:

  • Service Name - a clear, customer-recognisable label (for example, Remote Monitoring, On-Site Engineering, Cloud Backup).
  • Service Type - the category. Service types can be created, renamed, or removed directly from this dropdown without leaving the dialog.
  • Billing Method - choose one of the three options described below.
  • Description (optional) - notes that flow through to invoices and contract lines.
  • Pricing (Rate) - the default price, plus optional rates in additional currencies.

Click Save Service.

Billing Methods

Billing methodWhen to use itRate label shown next to PricingExtra field required
Fixed FeeFlat-rate recurring fees, bundles, retainersMonthlyNone
HourlyTime-based billing for labour and engineeringPer HourNone
UsageQuantity-based billing (devices, GB, seats, API calls)UsageUnit of Measure is required

For usage services, Alga will not let you save without a Unit of Measure. Common values are devices, GB, seats, API calls, or user.

Multi-Currency Pricing

A single service can carry an independent rate for each currency you bill in. Alga does not convert between currencies - it stores each price as-entered. If you set €45 and $50 on the same service, those are the exact prices that appear on Euro and US Dollar contracts respectively.

This matters for MSPs that bill across borders. If GreenLeaf is invoiced in USD and Cascade Manufacturing's UK division is invoiced in GBP, you price the service once for each currency rather than relying on a daily exchange rate.

Adding Currency Rates

Inside the service edit dialog, the Pricing section lists every currency you have set:

  • Click + Add Currency to add a new row, then pick the currency and enter the rate.
  • The currency picker hides any currency you have already added, so you cannot accidentally enter two rates for the same one.
  • Click Remove to drop a row. At least one rate is always required - the first row is treated as the primary rate.
  • The label next to Pricing changes to reflect the billing method - Monthly for Fixed Fee, Per Hour for Hourly, Usage for Usage.
Multi-currency ruleBehaviour
Independent ratesEach currency rate is stored as-entered; Alga performs no conversion
Primary rateThe first row in the list is the primary; removing the first row promotes the next one
Currency uniquenessThe picker prevents two rows for the same currency
Minimum ratesAt least one currency rate must remain on every service

How Alga Picks a Rate at Billing Time

Every contract has a billing currency, inherited from the client by default. When an invoice is generated, Alga selects the rate using this order:

OrderSourceNotes
1Custom rate on the specific contract lineAlways wins — lets you negotiate a one-off price for GreenLeaf without touching the catalog
2Catalog rate matching the contract's currencyThe expected path for normal invoicing

If neither a custom rate nor a currency-specific catalog rate exists for the contract's currency, Alga cannot bill the charge and raises a "Missing pricing in {currency}" error during invoice generation. There is no silent fallback to the service's default rate for non-USD contracts.

When you add a service to the hourly or usage step of the contract wizard, the rate field is pre-filled automatically if a currency-specific catalog price exists. If no matching price is found, the field stays blank and an amber warning appears — for example, "No GBP price in the catalog. Legacy default rate: £45.00. Enter an hourly rate in GBP." — prompting you to enter a rate before the contract can be created.

The safe practice is to set an explicit catalog rate for every currency you invoice in, so the wizard pre-fills correctly and invoice generation succeeds without manual intervention.

Products and Services Both Require a Currency-Specific Price

Products, hourly services, and usage-based services all follow the same strict rule: if no rate exists in the contract's currency and no custom rate is entered on the line, billing cannot proceed. For products, the wizard blocks you from adding the item to the contract until a currency-specific catalog rate is present or a custom rate is entered on the line. For hourly and usage services, the wizard shows an amber warning when no currency-specific price is found, and the billing engine raises an error at invoice generation time if no rate has been supplied.

This prevents accidental currency-mismatched billing regardless of whether you are billing for hardware, licenses, engineer time, or metered usage.

Managing Service Types Inline

You do not need to leave the Services page to manage service types. From the Service Type dropdown inside the edit dialog you can:

  • Scroll to the bottom of the dropdown and click Add New Service Type to create a new one inline.
  • Hover over an existing service type to reveal pencil (rename) and trash can (delete) icons.

These same service types can also be managed from the dedicated Settings > Service Types tab. Service types are shared across both the Services and Products catalogs — any type you create, rename, or delete is reflected in the type dropdown on both pages, so there is one unified taxonomy for the whole price book.

Editing and Deleting Services

  • Click the Actions menu (three vertical dots) on any service row, then choose Edit to modify the service or its currency rates.
  • Choose Delete to remove a service. Alga validates that the service is not in use on active contract lines before deletion; if it is in use, you are offered the option to deactivate instead, preserving billing history.

Products Tab

Navigate to Billing > Pricing > Products to manage product catalog entries. Products represent physical items (hardware), software licenses, or one-time deliverables.

Products and services share the same underlying catalog table - the Products page simply filters the catalog to entries marked as products. The same fields apply (name, type, billing method, multi-currency pricing), and the same edit and delete validations run. Service types are shared between the two pages: a type you create on the Services page appears in the Products type dropdown and vice versa, so there is one unified taxonomy for the whole price book. The key behavioural difference is the strict currency-match rule described above: both services and products require a currency-specific catalog rate or an explicit custom rate on the line.

Cross-References