For this week’s Technical Tuesday, I will be showing how to bill recurring charges using an Acumatica project. Two scenarios are presented – a fixed recurring charge and a fixed recurring charge with additional usage.
Environment: 5.10.0600
Data: use SalesDemo demo data from partner portal
Scenario Overview
Business Problem
Each month, you receive an invoice from a vendor who provides support services for your company. This support is provided for different customers (detailed by line item on the invoice). The support fees from the vendor need to be re-billed to your customers. The cost of the support needs to be tracked against a project.
There are different customer billing scenarios that need to be addressed. Some customers pay a fixed hourly rate, other customers pay a recurring fee for unlimited support, and some pay a fixed recurring fee for some included hours and pay an additional hourly fee on top of that.
Demonstration Scenario
In this document, we will demonstrate the following scenario:
Vendor Payments
- Vendor 1: $40 / hour for support provided to our customers
Customer Invoicing
- Customer 1: $50 / hour for support
- Customer 2: $200 / month includes 5 hours, $50 / hour for each additional hour
- Customer 3: $600 / month for unlimited support
Expected Result
The software will highlight the fact that our unlimited support plan is not profitable.
Acumatica Implementation
We will implement this by using the recurring billing feature in project. We will use allocation rules to apply the appropriate rate to the SUPPHOURS non-stock item. The rate for support hours can vary by project, so we need to decide on a strategy to define that rate:
- Rate Strategy 1: Different rate tables (optimal when there are only a few rates)
- Rate Strategy 2: Define rates in attributes (optimal with different rates for each project/customer)
- Rate Strategy 3: Different inventory items (optimal when rates can be linked to inventory items)
In this example, we will utilize rate strategy 2. Information about implementing the three strategies is provided in the next section.
Step 1: Implement Allocation Rates and Rules
- Strategy 1: Different rate tables. This is optimal if there are a limited number of different customer prices. This involves creating different rate tables in the billing settings area of the project.
- Strategy 2: Attributes. This is optimal if the billing rate is non-standard and is negotiated for each project. This involves (a) creating an attribute, (b) linking the attribute to projects, and (c) setting up allocation rules to include the attribute in your allocation rules (replaces the @rate construct). An example allocation rule for using an attribute is illustrated below.
- Create the attribute:
- Link attribute to projects:
- Modify allocation rule:
Note: since I defined the attribute as a text field, I used the CDec() function to convert it to a number before using it in my calculation.
- Strategy 3: Different inventory items. This is optimal if you want to use different inventory non-stock items to drive expenses and revenues. This involves (a) creating different non-stock items for different rates you want to charge, (b) Creating rate lookup rules driven by inventory (see below), and (c) assigning rates in the rate tables, (d) selecting the proper inventory item when paying/billing.
Step 2: Project Implementation
For this implementation, we create 3 customers as well as a project for each customer. The project setup will vary slightly depending on our contract arrangement with the customer.
Pay as you Go
Customer 1 pays for all the support hours consumed during each billing period. This project is setup by selecting the appropriate allocation rules and assigning the proper rate to the attribute.
Fixed recurring charge with included hours and overage
Customer 2 pays a fixed recurring charge for included support hours and pays an overage rate for additional hours. This project is setup by selecting the same allocation rule as pay-as-you-go, assigning the overage rate to the project attribute, and adding the non-stock item SUPPHOURS to the Recurring Billing tab of the Project Task as illustrated below.
When the bill is created there will be two lines. One for the fixed recurring fee with 5 hours, a zero charge, and the ‘bill complete’ flag set. A second line with 5 additional hours charged at $50 per hour.
Fixed monthly Fee
Customer 3 pays a fixed monthly fee. This is accomplished by adding a line for the fixed recurring fee to the Recurring Billing tab of the Project Task as illustrated below. The allocation rules and attribute are not needed.
Step 3: Monthly Processing
Input Vendor Invoice
The vendor invoice that includes hours for each project is illustrated below.
After releasing the bill, the projects have costs $400, $400, $800 associated with them, project 3 is shown below.
Run Project Allocations
After running project allocations, the appropriate rate is applied to the support hours that have been received on the vendor invoice.
Note that charges for customer 2 are fully allocated ($50/hour x 10 hour = $500) even though at billing time only $200 + $250 will be billed.
Run Project Billing
At the end of the month, run project billing. The results of the three bills are provided below.
Project 1 Invoice:
Project 2 invoice:
Project 3 invoice:
- Create the attribute: