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.
The Service Catalog is the master price book that every contract, invoice line, and usage charge in Alga PSA 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 > Service Catalog 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 method | When to use it | Rate label shown next to Pricing | Extra field required |
|---|---|---|---|
| Fixed Fee | Flat-rate recurring fees, bundles, retainers | Monthly | None |
| Hourly | Time-based billing for labour and engineering | Per Hour | None |
| Usage | Quantity-based billing (devices, GB, seats, API calls) | Usage | Unit 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 rule | Behaviour |
|---|---|
| Independent rates | Each currency rate is stored as-entered; Alga performs no conversion |
| Primary rate | The first row in the list is the primary; removing the first row promotes the next one |
| Currency uniqueness | The picker prevents two rows for the same currency |
| Minimum rates | At 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 fallback order:
| Order | Source | Notes |
|---|---|---|
| 1 | Custom rate on the specific contract line | Always wins - lets you negotiate a one-off price for GreenLeaf without touching the catalog |
| 2 | Catalog rate matching the contract's currency | The expected path for normal invoicing |
| 3 | The service's default rate | Last-resort fallback; not tagged with a currency |
Because the default rate is not currency-tagged, if it is used on a non-USD contract Alga bills it as-is in that contract's currency, with no conversion. The safe practice is to set an explicit rate for every currency you actually invoice in.
Products Are Stricter
Catalog items flagged as products (rather than services) follow a stricter rule: if no rate exists in the contract's currency, Alga blocks you from adding the product to the contract until either a catalog rate is added or a custom rate is entered on the line. This prevents accidental currency-mismatched billing on hardware, licenses, and other one-time deliverables where margins are sensitive.
Managing Service Types Inline
You do not need to leave the Service Catalog 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 Settings > Billing, but the inline editor is faster when you are mid-flow and realise the right category does not yet exist.
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. The key behavioural difference is the strict currency-match rule described above: a product cannot be added to a contract unless its catalog has a rate in the contract's currency, or you enter a custom rate on the line.
Cross-References
- 14.2. Tenant Billing Settings - sets the tenant's default currency, which in turn drives the default currency on new service rates.
- 14.4. Tax Rate Configuration - defines the tax rates you can attach to a service.
- 14.6. Creating Client Contracts - explains where catalog services are attached to clients.
- 14.7. Contract Lines, Presets, and Examples - shows how custom rates on a contract line override the catalog.
- 14.12. Generating Invoices - the moment when the catalog rate fallback order is applied.
- 14.15. Usage Tracking - covers how Unit of Measure values feed into metered billing.
