Skip to main content

Best Practices for Financial Reporting Structures

Written by Uliana Tokerava
Updated today

This guide will help you choose the best financial reporting structure for your business. We'll explain how Uptick uses account codes and tracking categories to give you detailed, automated reports in your accounting software.

How It Works: Financial "Tags"

Every line item on an invoice or bill can carry two financial "tags" that determine where it ends up in your accounting software:

  1. An Account Code: The nominal code that assigns the transaction to a financial bucket (e.g., "Sales - Fire Products").

  2. A Tracking Category: A label that adds a second dimension for reporting (e.g., "Discipline: Fire Alarm"). This is known as Tracking Categories, Categories, Classes, Dimensions or Departments depending on your accounting software.

Uptick applies these tags using a hierarchy. For account codes, it checks the Product, then the Cost Centre, then a Default setting. For most accounting partners (excluding QuickBooks), if both the product and Cost Centre have a code, they will combine (e.g., Cost Centre 200 + Product 10 = final code 210).

For tracking categories, the hierarchy is a simple override: the Product's category is used first. If it's empty, the Cost Centre's category is used. They do not combine.

Do You Need Cost Centres?

You don't have to use Cost Centres. If you only need to report by product or discipline, you can manage everything on the product record. However, Cost Centres are powerful when you want to report on work type (e.g., Service vs. Install vs. Repair) across all disciplines. For a full guide, see Set up Cost Centres.


Choosing Your Setup

Here are the most common reporting structures:

Option

Best For

Notes

Tracking Category (Product)

Reporting on one dimension (e.g., discipline) without Cost Centres.

No ability to report on work type (e.g., Service vs. Repair).

Nominal Code (Product)

QuickBooks users, or those who prefer managing all account codes on products.

Can be rigid; requires every product to be perfectly configured.

Nominal Code (Product) + Tracking Category (Product)

Two-dimensional reporting without using Cost Centres.

High admin burden; every product needs two fields managed.

Nominal Code (Cost Centre) + Tracking Category (Product)

Two-dimensional reporting across work type and discipline.

Every product must have a tracking category assigned.

Tracking Category (Cost Centre) + Nominal Code (Product)

Businesses that prefer managing disciplines at the product account level.

High admin burden; every product needs a specific nominal code.

Nominal Code (Cost Centre) + Nominal Code (Product)

Advanced users (excluding QuickBooks) wanting highly specific, automated account codes.

Can be complex to set up and manage your Chart of Accounts.

Nominal Code (Cost Centre) + Nominal Code (Labour Rate)

Simple setups where the Cost Centre account code covers materials, and labour products have their own more specific code

Less detailed; can fail if materials are sold without a labour item.


Tracking Category (Product)

The simplest way to get reporting on a single dimension, like discipline.

  • How to set it up:

    1. In your accounting software, create a tracking category (e.g., "Discipline") with values like "Fire Alarm" and "CCTV".

    2. In Uptick's Product Catalogue, assign the correct tracking category to each product.

    3. Leave account codes blank on products (they will use the default).

  • Example: You sell a Material Product (Smoke Detector) which has the "Fire Alarm" tracking category. The invoice line in your accounting software is tagged as "Fire Alarm", allowing you to see all Fire Alarm-related sales.


Nominal Code (Product)

This is the required method for QuickBooks Online and Desktop, but can be used by any business that prefers to manage all account codes directly on products.

  • How to set it up:

    1. In the Product Catalogue, edit every product and assign the specific income/expense account code it should post to.

  • Example: You sell a Material Product (Smoke Detector) assigned to account 4100 - Fire Sales and a Material Product (Camera) assigned to 4200 - CCTV Sales. Your P&L will show revenue separated into these two accounts.


Nominal Code (Product) + Tracking Category (Product)

Gives you two-dimensional reporting without needing Cost Centres.

  • How to set it up:

    1. In the Product Catalogue, assign both an account code and a tracking category to every product.

  • Example: Your Material Product (Smoke Detector) has account code 4100 and tracking category "Fire Alarm". Your Material Product (Camera) has account code 4200 and tracking category "CCTV". You can report on sales by account code, by tracking category, or both.


Nominal Code (Cost Centre) + Tracking Category (Product)

The most flexible and automated structure, providing a two-dimensional view of profitability: by work type (from the Cost Centre) and by discipline (from the product).

  • How to set it up:

    1. Create Cost Centres for each work type (e.g., Repair, Service) and assign a base account code (e.g., 4000 - Service Revenue).

    2. Assign a tracking category to each product (e.g., "Smoke Detector" gets "Fire Alarm").

  • Example: A Repair Task uses the "Repair" Cost Centre (account 4000). The invoice has two lines:

    • A Repair Task (Cost Centre account 4000) includes a Product (Smoke Detector) (tracking category "Fire Alarm") β†’ Posts to 4000, tagged "Fire Alarm"

    • A Service Task (Cost Centre account 5000) includes a Labour Product (CCTV Annual Maintenance) (tracking category "CCTV") β†’ Posts to

      5000, tagged "CCTV"


Tracking Category (Cost Centre) + Nominal Code (Product)

This structure uses the Cost Centre to set the tracking category for the whole task, while the product's account code defines the income stream.

  • How to set it up:

    1. Create Cost Centres and assign a tracking category to each (e.g., "Repair Task" Cost Centre gets tracking category "Repair").

    2. Assign a specific account code to each product (e.g., "Smoke Detector" gets 4100 - Fire Sales).

  • Example: A Repair Task uses the "Repair" Cost Centre. The invoice line for a Material Product (Smoke Detector) gets its tracking category "Repair" from the Cost Centre and its account code 4100 from the product itself.


Nominal Code (Cost Centre) + Nominal Code (Product)

An advanced structure (excluding QuickBooks) that uses code-combining to create highly specific account codes automatically.

  • How to set it up:

    1. Assign a base nominal code to each Cost Centre (e.g., 1000 for "Repair Task").

    2. Assign a suffix nominal code to each product (e.g., 10 for Fire Alarm products, 20 for CCTV products).

  • Example: A Repair Task uses the "Repair" Cost Centre (base code 1000).

    • Selling a Fire Alarm product (suffix 10) results in a final account code of 1010.

    • Selling a CCTV product (suffix 20) on the same task type results in a final account code of 1020.


Nominal Code (Cost Centre) + Nominal Code (Labour Rate)

A simplified model where material products fall back to the Cost Centre's account code, while labour products can have a more specific code.

  • How to set it up:

    1. Create a Cost Centre (e.g., "Service") with a base account code (e.g., 4000).

    2. Set a specific account code on your labour products (e.g., 100 on "Labour - Fire Alarm Service").

    3. Leave the account code field blank on all material products.

  • Example: A Service task uses the "Service" Cost Centre. The invoice has two lines:

    • Labour Product: Posts to its own specific account, 4100.

    • Material Product (Smoke Detector): Has no code, so it falls back and posts to the Cost Centre's account, 4000.

Did this answer your question?