Skip to main content

Profit Precision: Step 1

Setting Up Billing, Rates & Retainers in DataGrows

Written by Mariska

Introduction

Profit Precision is far more than a billing tool. When fully implemented, it becomes a Firm Guardianship System—a framework designed to continuously monitor and protect your firm's financial health, operational discipline, and long-term sustainability.

For firm owners and partners, guardianship is about protecting what you've worked hard to build. It requires visibility into profitability, confidence in your pricing, consistency in your processes, and the ability to identify risks before they become problems.

The reality is that most firms don't lose money because they aren't working hard. They lose money because revenue leakage goes unnoticed. Additional work is completed but never billed. Retainers slowly become unprofitable. Pricing decisions are made on instinct rather than data. Profitability is assumed instead of measured.

Profit Precision changes that.

It introduces a simple but powerful cycle:

Visibility → Accountability → Control → Profit Protection

By giving you clear insight into your services, pricing, time, and revenue, DataGrows helps transform profitability from something you hope for into something you actively manage.

Think of Profit Precision as a financial health monitor for your practice. Every service becomes measurable. Every hour can be tracked. Every client relationship can be evaluated against the value being delivered. The result is fewer surprises, better decisions, and stronger control over the future of your firm.

Perhaps most importantly, Profit Precision helps you move from a reactive approach to a proactive one. Instead of discovering issues after margins have already declined, you can identify trends, address inefficiencies, and make informed decisions before profitability is affected. And when combined with the processes, automation, and discipline built throughout DataGrows, it delivers something far more valuable than automated billing—it delivers Firm Guardianship.

It's important to understand that implementing Profit Precision requires some preparation. Many firms need to standardise their pricing structures and billing processes before they can unlock the full benefits. If you're unsure where to start, our team can help you translate your existing pricing model into a structured framework that supports long-term growth and profitability.

In this guide, we'll walk through the foundational setup of Profit Precision, including billing settings, rate groups, retainers, staff rates, and client billing structures. These building blocks are what enable the profitability insights, billing automation, and revenue visibility that follow later in the Profit Precision journey.

This blog will cover steps 2-8 in the below infographic:

If you haven’t yet integrated with Sage or Xero – click on this link for more information:

And once you have completed steps 2-8, jump to this blog for the next steps in the above diagram:


Start with Firm Billing Settings

Before setting up billing rates, ensure your firm settings are configured correctly.

Navigate to:

Setup & Integrations → Setup →Firm Settings

Key settings include:

Accounting System Integration

Configure integration with:

  • Sage

  • Xero

Invoice Settings

Set up:

  • Invoice dates

  • Payment terms

  • VAT configuration

  • Billing preferences

Time Rounding

Configure automatic time rounding where appropriate.

Many firms use this feature to ensure short pieces of work are still recovered through billing.

Travel Reimbursement Rates

Capture any standard travel recovery rates used by your firm.

Configure as many of these settings as you can, and click Save & Close.


Understanding Rate Groups

The foundation of Profit Precision is the Rate Group.

A Rate Group determines:

  • How clients are billed

  • Which services are included in a retainer

  • Which services are billed separately

  • Which tasks are charged at fixed or hourly rates

Navigate to:

Approvals & Billing → Setup Billing → Rate Groups


Creating a Retainer

For a fixed monthly retainer:

  1. Create a new Rate Group.

  2. Enter a descriptive name.

  3. Enter the invoice description.

  4. Enter the monthly retainer value.

  5. Assign the relevant invoice or item code.

Examples

  • Monthly Accounting Retainer

  • SME Growth Package

  • Compliance Retainer

  • Full-Service Package

Use names that make it easy to identify which clients belong to which pricing structure.

Rate Group Fields Explained:

Rate Group: The nickname for the retainer, it can be the package name or client name if unique to one client.

Note: For internal use – I like to describe the general services covered in the retainer

Invoice Description: the line item description raised on your monthly invoice for that retainer/package.

Retainer Amount: the monthly amount (excl VAT) charged for that retainer/package.

Default Rate Group: only one allowed per Firm. Use this for the “Standard” price list only.

Firm: Each Firm can have custom packages and retainers. Assign the firm to each.

Invoice Code: the item code on Sage/Xero used to invoice this package.

Accounting System Account: the account GL code on Sage/Xero used to invoice this package.

Adding Rate Groups to DataGrows

Every unique retainer (i.e. custom amount/ custom services) or package or price list, is a Rate Group in DataGrows. You can add as many as you need - one per client if you require, to automate your billing in DataGrows.

Pro Tip: Create all your retainers and standard rate group. You can upload from a CSV template by completing these steps:

1. Go to the Rate Groups table, click on Menu – Download

2. Open the CSV file that downloaded. If the data loads as one column – click on Data – Text to Columns, and click Next

3. Select “Comma” as your Delimiter (column separator in Excel) and click finish. This will create separate columns for you in the spreadsheet.

4. You can delete the “ID” and “Firm - Rate Group” columns from the excel spreadsheet.

5. CSV Upload Rate Group Fields Explained:

Rate Group: The nickname for the retainer, it can be the package name or client name if unique to one client.

Note: For internal use – I like to describe the general services covered in the retainer

Invoice Description: the line item description raised on your monthly invoice for that retainer/package.

Retainer Amount: the monthly amount (excl VAT) charged for that retainer/package.

Default Rate Group: only one allowed per Firm. Use this for the “Standard” price list only.

Firm: Each Firm can have custom packages and retainers. Assign the firm to each.

Invoice Code: the item code on Sage/Xero used to invoice this package

Accounting System Account: the account GL code on Sage/Xero used to invoice this package

6. Make sure to enter your Firm’s full name as it is in your Firm Settings table in the “Firm” column.

7. If you feel confident, you can enter your Invoice Code or Accounting System Account as displayed in the integration tables. Or you can leave these blank and insert them after uploading the file.

NB: if you have integrated to Sage or Xero, and have more than 50 retainers, please reach out to [email protected] so we can help you in creating this template using your invoice codes/account codes as a dropdown. It will save you a few hours and upload failures.

8. Save the CSV file as a .csv comma delimited file. .xlsx files will not upload in this method.

9. On the Rate Groups table, use the Menu – Upload option.

10. Choose the CSV file and Separator as “Comma” and click save.

11. Your rate groups will upload, and rates will automatically generate to be allocated as explained in the next step


Setting Up Service Rates

Once Rate Groups have been created, the next step is to decide how each task is billed.

DataGrows contains approximately 190 task types.

Each task can be billed as:

Retainer

Included in the client's monthly fee.

Hourly

Charged according to time spent.

Fixed Fee

Charged a predefined amount.

Staff Rate

Charged according to the billing rate of the team member performing the work.


Your Most Important Pricing Exercise

One of the strongest recommendations we make is this:

Create a Standard Price List covering every service your firm performs.

Set this as your Default Rate Group, as a “catch-all” for any service not covered by a retainer, to automatically calculate the additional billing for a client.

Many firms lose significant revenue because they perform work they have never assigned a value to.

Examples include:

  • Client emails

  • SARS queries

  • CIPC changes

  • Data corrections

  • Follow-up calls

  • Administrative work

These services consume valuable time but often never get billed.

The exercise of assigning a standard value to every service forces you to think critically about:

  • What you do

  • What it costs to deliver

  • What clients should be paying for

Even if you choose charge a different rate to the customer, or to write something off later, it is better to have visibility and make an informed decision than to never see the value at all.


Configure your Rates

A rate in DataGrows refers to the invoice value assigned to a task. There are nearly 200 tasks you can assign a preset rate to, to automate your billing. Each Rate Group saved in DataGrows is given this list of tasks for you to configure. If you open a rate group, you will see the tasks and fields available.

Rates Fields Explained:

Rate Group: The retainers, price lists and packages you created in the previous step.

Task: These are predefined tasks created by DataGrows. Do not edit these names or add your own to the spreadsheet or the upload will fail. DataGrows has nearly 200 predefined tasks in the system that you can automate a billing rate to, and we are constantly adding to this list. Email [email protected] if you need us to add a task not yet covered. We can add them same day and you can still automate your billing.

Rate Type: Retainer, Hourly, Fixed Fee, Staff Rate (see this point for an explanation of each)

Invoice Description: You can set your own description for each task if the DataGrows task name is not to your liking. Or, leave it blank where the task name is sufficient.

Invoice Code: the item code on Sage/Xero used to invoice this task. Choose from the dropdown generated in the excel spreadsheet. If this is empty – first integrate with Sage or Xero and then regenerate the rates excel template.

Accounting System Account: the account GL code on Sage/Xero used to invoice this task. Choose from the dropdown generated in the excel spreadsheet. If this is empty – first integrate with Sage or Xero and then regenerate the rates excel template.

Budgeted Hours: Number of hours accepted for a retainer or fixed fee task. Useful to track profitability.

Pro Tip: If your Rate Type is “Retainer”, but you don’t want an itemised (broken down) invoice on DataGrows for every included task, you do not need to complete any columns after Rate Type for those tasks marked as Retainer. DataGrows will then accordingly, invoice a “one-liner” invoice from the Rate Group table only.


Using the Rates Upload Template

Rather than configuring rates manually, DataGrows provides an Excel-based setup process.

Navigate to:

Setup & Integrations → Setup → Data Upload

Generate the: Rates Excel Template by checking the checkbox next to the Rates record and using the action “Generate Excel”. The document will generate and you can download it under the Documents column


Open the excel spreadsheet and complete the fields

Best Practice

Start with your:

Standard Rate Group

Work through as many task types as possible and assign:

  • Rate Type

  • Values

  • Codes

Do not worry if you do not offer every service.

For services you rarely provide, use Staff Rates so that DataGrows can still calculate a value when the work is performed.

Next, work through each retainer/package and focus ONLY on the tasks INCLUDED in the rate group as a Retainer (rate type) OR a different Rate is billed to your Standard price list.

Example: the Full Service Package Retainer, includes Accounting, VAT Returns, EMP201 returns, EMP501 returns, Financials, Income Tax & CIPC Annual Returns as retainer tasks. Meaning, regardless of time taken to complete a task, those services are not billed as variable.

However,

· Payslips are charged at R70 per employee instead your standard R50 per employee,

· CIPC Annual Return Fees are fixed as per each year’s turnover

· Provisional Tax returns are charged at an hourly rate instead of a fixed fee due to generally complex clients accepting this package.

· And any other services not specified here, must default to the Standard price list when the work is done for the client

So, my Full Service rate group would look like this:

And if I say, complete a VAT Return verification for a client on this package, or complete a Beneficial Ownership Declaration, or new tax type application – they will be automatically charged under my Standard Rate Group according to those settings:

Once you have completed your Standard Rate Group and individual retainers/packages on the excel, save the file as it is and then upload under

Setup & Integrations → Setup → Data Upload

Open the Rates record, delete the template you downloaded before by clicking on the dustbin on the file.

Upload the completed file (likely in your Downloads folder on your PC)

Change the Status to “Submit”

And click Save & Close.

DataGrows will process the file and notify you once your changes have been successfully uploaded.



Managing Staff Rates

Staff Rates allow firms to bill according to the person performing the work.

Navigate to: Approvals & Billing → Billing Setup → Staff Rates

And Click “Add Record” to capture a new rate, or edit an existing record to make a change.

Staff Rates Fields Explained:

Accountant: This is a dropdown of your licenced users in DataGrows. Choose their names from the dropdown for each applicable period and rate change you want in DataGrows.

From Date: Beginning date applicable to that team member’s rate.

To Date: End date applicable to that team member’s rate.

Pro Tip: You do not need to delete historical periods, as DataGrows will exclusively bill time worked set as Staff Rate according to the From and To Date for each team member. From and To dates cannot overlap for one single team member, DataGrows will give an error if you attempt to upload dates that overlap across records for the same team member.

Hourly Billing Rate: The charge out rate (excl VAT) per team member that needs to be applied to tasks marked as Rate Type: Staff Rate.

Fixed Salary: Their basic or total cost to company – however you choose to view their costs. This displays on the Accounting Hours report as part of the Profit/Loss calculation per team member.

Hourly Rate: The staff member’s salary in an hourly rate. This is used in profitability calculations to compare the invoiced value of a task to the hourly cost of the team member who performed the work. This is critical information especially for junior staff or costly clients.

Pro Tip: if you’re unsure what their hourly rate is – most payroll programmes show you in the payslip setup, or work off 160-175 working hours per month for an average and divide their salary by that.

Daily Hours: Used to determine the baseline for overtime and timesheet completeness.

Overtime Rate: Add an hourly overtime rate if different from the normal hourly rate.

Examples:

Staff Member

Billing Rate

Junior Accountant

Lower Rate

Senior Accountant

Higher Rate

Manager

Premium Rate

Staff Rates are also the foundation of profitability reporting within DataGrows.

Using the Staff Rates Upload Template

You can also upload in bulk from our Excel Templates.

Navigate to:

Setup & Integrations → Setup → Data Upload

Generate the: Staff Rates Excel Template by checking the checkbox next to the Staff Rates record and using the action “Generate Excel”. The document will generate and you can download it under the Documents column

Open the excel spreadsheet and complete the fields

Once you have completed your Staff rates for the year/years you want to capture, save the file as it is and then upload under

Setup & Integrations → Setup → Data Upload

Open the Staff Rates record, delete the template you downloaded before by clicking on the dustbin on the file.

Upload the completed file (likely in your Downloads folder on your PC)

Change the Status to “Submit”

And click Save & Close.

DataGrows will process the file and notify you once your changes have been successfully uploaded.


Understanding Staff Profitability

When salary information is captured:

DataGrows can help you analyse:

  • Staff profitability

  • Recovery rates

  • Utilisation

  • Efficiency

This provides valuable insight into whether:

  • Clients are paying enough

  • Staff need additional support

  • Work is being priced correctly

Pro Tip: View these reports in the Billing Department for quick and insightful stats!

· Accountant Hours

· Profitability – Retainers

· Revenue & Profit (From Invoice table)


Recoverable Expenses

Many firms pay costs on behalf of clients and forget to recover them.

Examples include:

  • Software subscriptions

  • Compliance subscriptions

  • Other recurring costs

These can be loaded into: Recoverable Expenses

Once configured, DataGrows automatically includes them in the billing process.

This ensures expenses are consistently recovered without relying on memory.

To set this up, navigate to:

Approvals & Billing → Setup – Billing → Recoverable Expenses

Click “Add Record” and capture the subscription or expense you want to recover monthly from your client.

Note: this appears as a separate line item on their invoice, even if the client has a fixed retainer with you, so decide first if you want the expense invoiced separately before adding them to DataGrows.

Recoverable Expenses fields explained:

Invoice Description: the line item description for the expense recovered on your invoice

Client: The client to recover the expense from. Note: each client needs their own record here, to recover and maintain their subscriptions. Use the excel template explained below to load in bulk for large numbers of clients.

Billing Frequency: DataGrows currently only supports Monthly recoveries. We are in the process of automating the other options, but please be advised they will by default bill each month when you run the invoice process.

Amount: the amount (excl VAT) that you want to charge the client for this expense.

Pro Tip: Charge the client the full selling price, even if you receive a rebate from your accounting system – it helps even out any overs/unders, bank fees incurred and can count as part of your system maintenance fee for hosting their subscription. And the rebate becomes a source of income for your firm.

Start Month & End Month: Useful to track the subscription’s increase date and when to maintain these changes. Note: this is not included in the automation, and billing will not cease or commence according to these selections.

Invoice Code: the item code on Sage/Xero used to invoice this expense. Choose from the dropdown generated in the field. If this is empty – first integrate with Sage or Xero and then re-select in the records created.

Accounting System Account: the account GL code on Sage/Xero used to invoice this expense. Choose from the dropdown generated in the field. If this is empty – first integrate with Sage or Xero and then re-select in the records created.

Using the Recoverable Expenses Upload Template

You can also upload in bulk from our Excel Templates.

Navigate to:

Setup & Integrations → Setup → Data Upload

Generate the: Recoverable Expenses Excel Template by checking the checkbox next to the Recoverable Expenses record and using the action “Generate Excel”. The document will generate and you can download it under the Documents column.

Open the excel file and complete the fields.

Once you have completed your recoverable expenses on the excel, save the file as it is and then upload under

Setup & Integrations → Setup → Data Upload

Open the Recoverable Expenses record, delete the template you downloaded before by clicking on the dustbin on the file.

Upload the completed file (likely in your Downloads folder on your PC)

Change the Status to “Submit”

And click Save & Close.

DataGrows will process the file and notify you once your changes have been successfully uploaded.


Assigning Rate Groups to Clients

Once your Rate Groups are configured:

You can apply a rate group to a client by navigating to Clients - opening the client record, clicking on the Billing & Services tab and choosing the Rate Group.

Click Save & Close

Or, to upload allocations in Bulk,

Navigate to: Setup & Integrations → Data Upload → Rate Group Excel Template

Generate the: Rate Group Excel Template by checking the checkbox next to the Rate Group record and using the action “Generate Excel”. The document will generate and you can download it under the Documents column.

Use the provided Excel template to assign clients in bulk.

Open the excel file and complete the fields:

Excel Rate Group Fields Explained:

Client Name: The list of clients for your firm that you generated. Note: This is not an onboarding template. Please do not add or edit names on this sheet or the upload will fail.

Rate Group: The field will have a dropdown of your firm’s rate groups that you can choose from. Assign each client where applicable.

Important:

Clients on retainers should always be assigned to a Rate Group.

For purely ad hoc clients, assignment is optional if your Standard Rate Group is configured correctly.

In those cases, DataGrows will automatically fall back to the default pricing structure.

Once you have completed your Rate Group assignments to clients on the excel, save the file as it is and then upload under

Setup & Integrations → Setup → Data Upload

Open the Rate Group record, delete the template you downloaded before by clicking on the dustbin on the file.

Upload the completed file (likely in your Downloads folder on your PC)

Change the Status to “Submit”

And click Save & Close.

DataGrows will process the file and notify you once your changes have been successfully uploaded.


Billing Related Entities

Some firms invoice one company for work performed on another.

For example:

  • Holding companies

  • Management companies

  • Group structures

Use the: “Bill To” field on the client record.

This allows:

  • Work to remain tracked against the correct client.

  • Invoices to be raised to the paying entity.

Navigate to

Clients → Filter or open the client you want to edit.

Pro Tip: Use the Group column to highlight related entities and save them as filters for quick access

Click on the Billing & Services Tab

Choose from the "Bill To" Dropdown, the client responsible for the invoices for the client whose record you opened.

Example: Andrew, a director of Bdc (Pty) Ltd – is a client of ours, and we submit his personal taxes. However, Bdc (Pty) Ltd pays for our services rendered to him. So, Bill to for Andrew, is Bdc (Pty) Ltd. When the invoice is raised for work done for Andrew in the DataGrows automated invoice process, it is raised to Bdc (Pty) Ltd and the invoice reference is complete with Andrew’s name.

Note: You do not need to complete this field for the client that pays their own invoices – i.e. Bdc (Pty) Ltd’s Bill to will be blank because we invoice them directly.


Reviewing Prices Regularly

One of the most common causes of declining profitability is failing to review pricing.

We strongly recommend reviewing retainers:

  • Quarterly

  • Six-monthly

  • Annually at minimum

DataGrows provides reports that help identify:

✅ Increasing workloads

✅ Underpriced clients

✅ Scope creep

✅ Services consistently exceeding retainer values

Do not allow resentment to build because clients require more work than their fees justify.

Use the data to have informed pricing conversations.


Key Takeaways

✅ Profit Precision starts with accurate billing setup.

✅ Rate Groups define how clients are billed.

✅ Every service should have a billing strategy.

✅ A Standard Price List helps eliminate revenue leakage.

✅ Staff Rates support profitability reporting.

✅ Recoverable Expenses ensure subscription costs are recovered.

✅ Retainer clients should always be allocated to a Rate Group.

✅ Regular pricing reviews are essential for long-term profitability.

✅ Visibility leads to accountability, accountability leads to control, and control leads to profit protection.

Remember: Profit Precision isn't just a billing tool. It's a profitability management framework that helps your firm understand exactly where revenue is earned, where time is spent, and where money may be leaking.

Please reach out to [email protected] or book a session here if you need any assistance in setting up your billing automation in DataGrows.

Did this answer your question?