Skip to main content
All CollectionsEcommercePromo Codes
Promo Code Accounting & Tracking
Promo Code Accounting & Tracking

Learn how promo codes affect accounting transactions and the best ways to track usage.

Pete Zimek, CAE avatar
Written by Pete Zimek, CAE
Updated over a week ago

Accounting Setup & Implications

If it is important to your organization to track and report on specific uses, you will want to take an extra step when setting up your promo codes in the first place.

Promo Code Setup

When creating a promo code, admins are asked how the accounting for that promo code should be tracked.  The fastest way to set up a promo code is to set the code to "Use the Ticket/Product's Item & Class."  Any discounts will directly offset the item and therefore income account in QuickBooks.  

The tradeoff to taking this faster approach is that it will be much harder to pull detailed usage data into a report.

To set up your promo codes so that financial reports are more detailed and easily accessed, you will want to assign promo codes to a "Custom Item & Class." This will allow an association's accounting department to quickly see and issue reports that show the promo code as an offset to the income that the association would have received.

Custom Item & Class

When mapping a promo code to a "Custom Item & Class," an association's bookkeeper or accountant will need to do some prep work.

  • A unique item should be created inside of QuickBooks. How that item is mapped to a GL account is a decision that a qualified accounting expert should make. For the purpose of generating this report, it the unique item could be mapped to the same exact GL account to which the original revenue item is linked, or it could be mapped elsewhere.

  • If applicable, a class should be created or identified.


  • However this is set up, it is important for staff to have good communication between operational departments and accounting.

  • An association should have a policy for how promo codes and other accounting is set up inside of Novi and QuickBooks to ensure that reporting will be consistent and correct.


Novi Reporting

To get a general sense of how many times a promo code has been used, visit the promo code list. This can be found by clicking on Ecommerce and then Promo Codes in the left-hand navigation.  

All admin users are able to see the name of the promo code, the code itself, the discount type & amount as well as any specific products or tickets to which promo codes are tied. Any limitations in quantity, start date, or end date are also shown. This view will show the total number of uses for that particular promo code.

The Promo Code page defaults to only showing active promo codes. Use the filter to find inactive promo codes:

Detailed Reporting of Promo Code Usage

If promo codes are mapped to custom items, then you can access more detailed reporting.

Within QuickBooks

The Sales by Product/Service Report inside of QuickBooks can be an extremely powerful tool for finding and reporting on specific uses of promo codes. The key to using this report is having unique items (also known as Products or Services) on which to base reports.

Within Novi

The Item Sales report within Novi can be used to access detailed promo code usage, including customer/member names, the dollar amount discounted, the date the discount was applied, and roughly 85 other data fields (accessible behind the small gear icon). This report is filtered down to specific members (or their family trees) on each member record under the Accounting > Sales tab.


In the case where promo codes were set up to "Use the Ticket/Product's Item & Class," it is possible to see or count individual uses of those promo codes.  This could be accomplished by manually reviewing the line items on invoices. The Sales by Product/Service Item Report can help point you in the right direction, but the query will take much more time given than it would had the promo code been tied to a unique item since you will have to sift through many transactions that were never tied to a promo code.

Did this answer your question?