Technical Tuesday: Recurring Billing Using Projects

Doug Johnson | May 9, 2016

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

Acumatica's Technical Tuesday

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

Recurring Billing Using Projects

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.

Implement Allocation Rates and Rules

  • 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:

      Create the attribute

    • Link attribute to projects:

      Link attribute to projects

    • Modify allocation rule:

      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.
    Different inventory items

    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.

    Pay as you Go

    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.

    Fixed recurring charge with included hours and overage

    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.

    Fixed monthly Fee

    Step 3: Monthly Processing

    Input Vendor Invoice

    The vendor invoice that includes hours for each project is illustrated below.

    Input Vendor Invoice

    After releasing the bill, the projects have costs $400, $400, $800 associated with them, project 3 is shown below.

    Input Vendor Invoice

    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

    Run Project Billing

    Project 2 invoice

    Run Project Billing

    Project 3 invoice

    Run Project Billing

    Doug Johnson

    Director of Partner Programs and Enablement at Acumatica. Doug is in charge of showing people the specifics about what makes Acumatica’s Cloud ERP software awesome for our customers and partners. For other tips and technical training, stay tuned on Tuesdays.

Subscribe to our bi-weekly newsletter

Subscribe