From WHMCS Documentation

Revision as of 08:40, 13 April 2018 by John (talk | contribs) (Reports)

WHMCS includes a wide range of reports designed to give you in-depth reporting and analytics on the performance of your business.

Many reports also include graphs and charts to aide in interpretation of the data.

Reports are grouped into 5 primary categories: General, Billing, Income, Clients & Support


To access reports, navigate to the Reports option via the main menu within the admin area.

Affiliates Overview An overview of affiliates for the current year: Visitors referred, Pending Commissions, Available to Withdraw balance, Withdrawn Amount and Total Commissions Paid.

Aging Invoices A summary of outstanding invoices broken down into the period by which they are overdue.

Annual Income Report Shows the income received for the year broken down by month converted to the base currency using rates at the time of the transaction. It is based upon transactions recorded. The graph shows previous year's income for easy comparison.

Client Sources A summary of the answers clients have given to the 'How Did You Find Us?' or 'Where did you hear about us?' custom field signup question between a specified date range.

Client Statement Provides a statement of account for individual client accounts between a date range. Displays Type (add funds, transaction, invoice), date, description, credits, debits and a running balance

Client Added in version 7.5, this report allows you to generate a JSON export of data relating to a given client. You can choose which data points you wish to be included in the export from the following options:

  • Profile Data
  • Contacts
  • Products/Services
  • Domains
  • Billable Items
  • Invoices Quotes
  • Transactions
  • Tickets Emails
  • Notes
  • Activity Log

This report can also be accessed via the Export Client Data link on a client's Summary tab.

Clients Generate a custom export of client information by applying up to 5 filters. CSV Export is available in the Tools menu in the top-right corner of the page.

Clients by Country The total number of active services per country in map format, as well as total active unique clients per country in a table beneath the map.

Credits Reviewer Allows you to review all the credits issued to clients between two dates you specify.

Customer Retention Time Calculates and shows the average lifetime of products, services, addons and domains - that is the number of days between the registration date and the termination date. Averages are displayed by product and the associated billing cycle, and are displayed both as a number of days value and a years/months value.

Daily Performance Shows daily activity summary for a given month. Data in this report are Completed Orders, New Invoices, Paid Invoices, Opened Tickets, Ticket Replies and Cancellation Requests

Direct Debit Processing Displays all Unpaid invoices assigned to the Direct Debit payment method and the associated bank account details stored for their owners, ready for manual processing.

Disk Usage Summary When the Update Usage Statistics option is enabled, this report shows the Disk Space & Bandwidth Usage Statistics for hosting accounts. Updated once per day with the cron job, click the 'Update Now' link to get current usage statistics.

Domains Generate a custom export of domain name information by applying up to 5 filters. CSV Export is available in the Tools menu in the top-right corner of the page.

Domain Renewal Reminder Emails Part of a dedicated logging system for domain renewal notices which will keep a log of all renewal notices that are sent, along with the date and recipients, and provide an easy way to view and export that information for ICANN compliance.

Income by Product Provides a breakdown per product/service of invoices paid in a given month. This excludes overpayments & other payments made to deposit funds (credit), and includes invoices paid from credit added in previous months, and thus may not match the income total for the month.

Income Forecast Shows the projected income for each month of the year. Assumes all active services and domains are renewed on their next due date. Products with longer billing cycles (Quarterly, Semi-Annually, Annually, Biennially) are split evenly across the year. Addons and Billable Items are not included.

Invoices Generate a custom export of invoice information by applying up to 5 filters. CSV Export is available via the download link at the bottom of the page.

Monthly Orders Gives a breakdown of the number of units sold of each product per month per currency. Allows you to see your most profitable products.

Monthly Transactions Provides a summary of daily payments activity for a given month per currency. This is based upon transaction data. The Amount Out figure includes both expenditure transactions and refunds.

New Customers Shows the total number of new customers, orders and complete orders for the current year and compares each of these to the previous year on the graph.

PDF Batch This report can be used to generate a single PDF document containing multiple individual invoices (one per page). Can be filtered by date range, payment methods and status. Useful for printing invoices for record-keeping or mailing to clients.

Product Suspensions Allows you to review all services currently in suspended status and the reasons specified for their suspensions.

Promotions Usage Shows usage statistics for each promotional code to see how often each promo code has been used. Click the Drill Down link to see exactly which orders used the code.

Sales Tax Liability Shows sales tax liability for the selected period (invoice sub-total before tax, tax amount and total after tax).
Note: Partial refunds that may have included sales tax refunds are not taken into account.

Server Revenue Forecasts Shows income broken down by billing cycle for each of your servers in the base currency. It then uses the monthly cost entered for each server to estimate the annual gross profit for each server.

Services Generate a custom export of service information (domain, username, server ID etc.) by applying up to 5 filters. CCSV Export is available in the Tools menu in the top-right corner of the page.

Support Ticket Replies Shows a breakdown of support tickets dealt with per admin for a given month. The 'Ticket' value is the number of unique tickets replied to, whilst 'Replies' is the total number of replies made across all tickets.

Ticket Feedback Comments When the Ticket Closure Feedback option is enabled, this report displays general feedback comments submitted by customers. Can be filtered by date range and staff member.

Ticket Feedback Scores When the Ticket Closure Feedback option is enabled, this report displays the ratings on a scale of 1-10 given to individual admins by clients. Can be filtered by date range. Click the admin's name to see comments left specifically about that member of staff.

Ticket Ratings Reviewer When the Support Ticket Rating option is enabled, this report displays the score on a scale of 1-10 given to individual support ticket replies by clients. Can be filtered by date range and score.

Ticket Tags Provides an overview of ticket tags assigned to tickets for a given date range. Tickets are tagged via the "Tag Cloud" field when viewing a support ticket.

Top 10 Clients By Income Shows the 10 clients with the highest net income according to the transactions entered in WHMCS. If the client does not use your default currency, their income will be converted for ease of comparison.

Transactions Generate a custom export of transaction information by applying up to 5 filters. CSV Export is available in the Tools menu in the top-right corner of the page

VAT MOSS This report provides the information EU businesses need to be able to complete the VATMOSS return in whatever specific format(s) your local VAT tax authority will accept. More Information >>

Access Control

Access can be granted to reports on a per admin role group basis.

By default an admin role group is permitted to access all reports in the system providing they have the View Reports permission.

To restrict access to individual reports, follow the steps below:

  1. Navigate to Setup > Staff Management > Administrator Roles
  2. Edit the admin role group you wish to modify
  3. Scroll to the "Reports Access Controls" setting and select the Restrict Access' radio option
  4. A list of reports will be revealed, check the boxes next to all you wish to allow access to
  5. Click Save Changes for the restrictions to take effect
This functionality requires WHMCS 7.2 or later.


All reports can be exported in CSV format for further analysis and manipulation in a spreadsheet package.

Reports can also be shown in a printer friendly format for printing.

Customising Reports

All reports are located within the /modules/reports/ directory and are provided without encoding. This allows you to modify them if required.

Creating your own Reports

With the modular reporting system WHMCS uses, it is easy to add your own reports into the system to generate the statistical information you need.

To create your own report, you can look at the format of one of the current files from one of the stock reports. These can be found in "/modules/reports". The WHMCS included reports are open source so you can copy the format from them for use in your custom report.

The report name you choose must be unique, and should be all lowercase, containing only letters & numbers (a-z, 0-9), always starting with a letter.

The format with some descriptions is as follows:


# The title of your report
$reportdata["title"] = "";

# The description of your report
$reportdata["description"] = "";

# Header text - this gets displayed above the report table of data
$reportdata["headertext"] = "";

# Report Table of Data Column Headings - should be an array of values
$reportdata["tableheadings"] = array("Column 1","Column 2","Column 3");

# Report Table Values - one of these lines for each row you want in the table
# should be an array of values to match the column headings
$reportdata["tablevalues"][] = array("Data 1","Data 2","Data 3");
$reportdata["tablevalues"][] = array("Data 1","Data 2","Data 3");
$reportdata["tablevalues"][] = array("Data 1","Data 2","Data 3");

# Report Footer Text - this gets displayed below the report table of data
$data["footertext"] = "";