How do I Amortize Service Agreement Income?


This article will explain how to handle the amortization of service agreement income with QuickBooks or Sage 50 accounting. If you are using ESC Accounting, you'll want to view our article on Service Agreement Reserves instead.  The purpose of amortizing is to make sure that income is declared when work is performed.

In a typical service agreement, payment is made upfront for work that will be performed over a period of time. If you were to receive the payment directly as income, your profit and loss statements would not be entirely accurate. You would show an initial income spike when the payment was received followed by cost spikes as the work was subsequently performed. This could lead you to believe that either your costs or income were higher in given months than they should be.

Amortization corrects this error by first accepting the payment into a liability account, because at this point you have yet to do anything to earn it. Then as work is performed on the agreement, the money is transferred out of the liability account and into an income account. This ensures that the income is declared at the same time as the cost required to generate it.


First you will need to setup an account that will be used to store the revenue collected until you declare it.

Setup an SA Reserve account in ESC by going to Company → Enter Chart of Accounts. Select the Other Current Liabilities category when doing this.

Run the QuickBooks or Peachtree Connection Wizard, for whichever program you are integrated with.

During the Match Chart of Accounts phase of the wizard, use the Add Account to QuickBooks/Peachtree button to add the new account to your accounting program. Exit the wizard after that has been accomplished.

In ESC, go to Company → Enter Departments and create or modify your agreement department. Set the Income Account on the department to the Sales Income account of your choice.

Create Billing Codes

Next, you will create billing codes in ESC that can be used to transfer money to and from the reserve account. You will need to create three billing codes. One will be responsible for the amount we charge customer (in this example $150.00). This will affect the Service Agreement Reserve account. The second will remove money from the SA Reserve account while the third will transfer it to the Sales Income account as work is performed.

Go to Sales → Enter Billing Codes and create the following codes.

Setting up the Service Agreement

Now that the setup is complete, it's time to setup the invoices in your Service Agreements.

Go to the Agreement List and search for the customer/agreement you wish to edit.  If you're adding a new agreement, click the Add Agreement button on the toolbar, then fill out all the necessary fields on the General tab like normal.  On the Schedule tab, setup when you want to perform the preventative maintenance tasks. In this example, we will be going out twice during the course of the year.  On Invoice tab, add the three billing codes that we just created.  Assign the SA code to the month that you want to bill the customer for their contact renewal. Set the price for the total contract.

Beneath that, select On Dispatch as the Month to Post and add the SASALES code as the item. Set the price to the amount of money you want to remove from the reserve account and declare as income each time you go out to do perform preventative maintenance for the customer. Make the value of this line item positive and uncheck the Print box.

Create another On Dispatch line, this time using the SARES code and set the amount to be the same as the previous line but make it negative instead. Uncheck the Print box and select a date to Begin Invoicing On before saving the agreement.

How to Use it

When doing your normal Post Schedule to Dispatch function the SARES and SASALES billing codes will be on the dispatch that is generated (in the Parts tab). After service has been performed the dispatch should be completed and invoiced. The invoice will be a zero amount to the customer and does not need to be printed. It will, however, contain your labor costs from technicians, any material costs listed or added, as well as the two billing codes transferring the funds. The invoice can then be saved and posted to your accounting software as usual.

Technician Reporting

One of the challenges of amortizing is that the invoices created when the work is performed are for a zero amount. This makes it is hard to see how much revenue the technician that did the work actually earned with a normal sales report. Follow this procedure though and you'll be able to see the income, cost and gross profit easily.

  1. Go to the Sales pull down menu and select Reports → Technician Sales Analysis.
  2. Click the Add Filter button on the toolbar and select the Sales: Sales Department line.  Also, select SalesLed: Sales Credit.
    Note: These filters only need to be added the first time this report is run.
  3. Select the Invoice Date range you want to see, select the agreement Sales Department and set the Sales Credit to income account you associated with that department in the setup section.
  4. Click Preview and you'll see the full profitability of all agreement invoices during that period.

Additional Notes

This method will work beautifully with both QuickBooks and Peachtree. The entire method is handled in ESC only.

A Note About Warranty Reserve

Warranty Reserve is accomplished in much the same manner. Billing codes are set up to initially charge the Warranty Reserve account, then others are created to subtract the money from the account and declare it as income. This can be done manually or through a service agreement as described above.

0 people found this helpful



Please sign in to leave a comment.