This article provides a complete reference of the predefined measures used across our Connectorly templates.
Each measure includes the original DAX formula along with a clear explanation of its purpose and calculation logic.
Use this guide to better understand how key financial, revenue, customer, and SaaS KPIs are structured within the model.
Table name | Measure name | Measure DAX | Description |
Xero bank transactions | Balance Amount (Currency) RT | Balance Amount (Currency) RT = CALCULATE(sum('xero bank_transactions'[Amount (Currency)]),filter(all('xero dates'), 'xero dates'[Date] <= max('xero dates'[Date])))
| This measure calculates a running total (balance) of bank transaction amounts in transaction currency. It removes existing date filters and then sums all transactions up to the current date in the visual. As a result, it shows the bank balance as of each date, rather than just the activity on that day. |
Xero bank transactions | Balance Amount (RC) RT | Balance Amount (RC) RT = CALCULATE(sum('xero bank_transactions'[Amount (RC)]),filter(all('xero dates'), 'xero dates'[Date] <= max('xero dates'[Date])))
| This measure calculates a running balance in reporting currency (RC) based on bank transactions. |
Xero bank transactions | Balance Amount RT | Balance Amount RT = CALCULATE(sum('xero bank_transactions'[Amount]),filter(all('xero dates'), 'xero dates'[Date] <= max('xero dates'[Date])))
| This measure calculates a running balance using the raw bank transaction amount. |
Xero became customer | Customer Acquisition Cost in Period | Customer Acquisition Cost in Period = 'xero journals'[Marketing Spend (RC)] / 'xero contacts'[Customers Won]
| This measure calculates Customer Acquisition Cost (CAC) for the current filter context by dividing Marketing Spend (Reporting Currency) by the number of Customers Won. |
Xero became customer | LTV / CAC | LTV / CAC = 'xero invoices'[Customer LTV] / 'xero became customer'[Customer Acquisition Cost in Period]
| This measure calculates the LTV / CAC ratio by dividing Customer Lifetime Value (LTV) by Customer Acquisition Cost (CAC). |
Xero budgets | Budget Variance (RC) | Budget Variance (RC) = sum('xero journals'[Net Amount (RC)]) - sum('xero budgets'[Net Amount (RC)])
| This measure calculates the budget variance in reporting currency (RC) by subtracting the budgeted amount from the actual net amount. |
Xero budgets | Budget Variance % | Budget Variance % = (sum('xero journals'[Net Amount (RC)]) - sum('xero budgets'[Net Amount (RC)])) / sum('xero budgets'[Net Amount (RC)])
| This measure calculates the budget variance percentage by comparing actual net amounts to the budgeted amounts in reporting currency. |
Xero budgets | Budget Variance Colour | Budget Variance Colour = "RED"
| This measure returns a constant value of “RED”, typically used to control conditional formatting in visuals. |
Xero budgets | Budget Variance Is Good | Budget Variance Is Good = (sumx(filter('xero journals', RELATED('xero accounts'[Class]) = "REVENUE"), 'xero journals'[Net Amount (RC)]) - sumx(filter('xero budgets', RELATED('xero accounts'[Class]) = "REVENUE"), 'xero budgets'[Net Amount (RC)])) + (sumx(filter('xero journals', RELATED('xero accounts'[Class]) = "EXPENSE"), 'xero journals'[Net Amount (RC)]) - sumx(filter('xero budgets', RELATED('xero accounts'[Class]) = "EXPENSE"), 'xero budgets'[Net Amount (RC)]))
| This measure calculates the overall budget variance by adding revenue variance (actual revenue minus budgeted revenue) and expense variance (actual expenses minus budgeted expenses), using the account Class to split rows into REVENUE and EXPENSE. |
Xero budgets | Budgeted FY Revenue | Budgeted FY Revenue =
| This measure returns the total budgeted revenue (RC) for the current fiscal year, based on the fiscal year start/end dates that contain TODAY(). |
Xero budgets | Budgeted FY YTD Revenue | Budgeted FY YTD Revenue =
| This measure calculates year-to-date (YTD) budgeted revenue in reporting currency (RC) from the start of the current fiscal year up to TODAY(). |
Xero budgets | Budgeted Revenue | Budgeted Revenue = calculate(SUM('xero budgets'[Net Amount (RC)]), FILTER ('xero accounts', 'xero accounts'[Class] = "Revenue"))
| This measure calculates the total budgeted revenue in reporting currency (RC). |
Xero budgets | Budgets Net Amount (RC) ABS | Budgets Net Amount (RC) ABS = (CALCULATE(sum('xero budgets'[Net Amount (RC)]),KEEPFILTERS('xero accounts'[Class] = "Expense")) * -1) + (CALCULATE(sum('xero budgets'[Net Amount (RC)]),KEEPFILTERS('xero accounts'[Class] = "Revenue")))
| This measure returns a budget total where expenses are converted to positive values (by multiplying Expense budgets by -1) while Revenue budgets remain unchanged. |
Xero budgets | This Month Budget Revenue | This Month Budget Revenue =
| This measure returns the budgeted revenue (RC) for the current fiscal month, using the fiscal month start and end dates that contain TODAY(). |
Xero contacts | Customer Churn | Customer Churn =
| This measure calculates annualised customer churn by identifying customers “lost” in the selected period (based on Last Sales Activity) and dividing by the net customers at the start of the period. |
Xero contacts | Customer Lifetime | Customer Lifetime = VAR lifetime_in_months = 1/[Customer Churn] * 12
| This measure estimates customer lifetime in months by inverting the annualised Customer Churn rate. |
Xero contacts | Customers | Customers = [Customers Won RT] - [Customers Lost RT]
| This measure calculates the net number of customers by subtracting Customers Lost (running total) from Customers Won (running total). |
Xero contacts | Customers Active | Customers Active =
| This measure returns the number of active customers in the selected period by counting the distinct invoice contact names that have Revenue invoices dated within the period. |
Xero contacts | Customers Lost | Customers Lost =
| This measure counts customers lost in the selected period by checking contacts whose Last Sales Activity falls within a calculated “loss window”. |
Xero contacts | Customers Lost RT | Customers Lost RT =
| This measure calculates the running total of customers lost up to the selected period by counting contacts whose Last Sales Activity indicates they are lost, based on the inactivity threshold (Customer lost after months) in Report Settings. |
Xero contacts | Customers Won | Customers Won =
| This measure counts the number of customers won in the selected period based on the Became Customer date. |
Xero contacts | Customers Won RT | Customers Won RT =
| This measure calculates the running total of customers won by counting all contacts whose Became Customer date is between 01/01/1900 and the end of the currently selected month. |
Xero dates | Balance Sheet Report Title | Balance Sheet Report Title = "| Balance Sheet " & FIRSTNONBLANK('xero dates'[Fiscal Year Long Name],'xero dates'[Fiscal Year Long Name])
| This measure generates a dynamic Balance Sheet title by appending the current fiscal year name to the text “| Balance Sheet”. |
Xero dates | Profit and Loss Report Title | Profit and Loss Report Title = "| Profit and Loss " & FIRSTNONBLANK('xero dates'[Fiscal Year Long Name],'xero dates'[Fiscal Year Long Name])
| This measure generates a dynamic Profit and Loss report title by appending the current fiscal year name to the text “| Profit and Loss”. |
Xero invoices | % Sales by Country | % Sales by Country =
| This measure calculates the percentage of total sales by country in reporting currency (RC). |
Xero invoices | ARPU | ARPU =
| This measure calculates ARPU (Average Revenue Per User) by taking the total monthly revenue (RC) in the selected period and dividing it by the number of distinct customers with revenue invoices in that same period. |
Xero invoices | Average Spend | Average Spend =
| This measure calculates average spend per customer by dividing total revenue (RC) in the selected period by the number of distinct customers with revenue invoices in that period. |
Xero invoices | Customer LTV | Customer LTV = 'xero invoices'[ARPU] * 'xero contacts'[Customer Lifetime] / 12
| This measure calculates Customer Lifetime Value (LTV) by multiplying ARPU by Customer Lifetime, then normalising it to a monthly basis. |
Xero invoices | Customer MRR | Customer MRR =
| This measure calculates Customer MRR (Monthly Recurring Revenue per customer) by dividing total monthly revenue (RC) in the selected period by the count of unique customer-month combinations. |
Xero invoices | DSO | DSO =
| This measure calculates DSO (Days Sales Outstanding) for the selected period by estimating average outstanding receivables and dividing by invoicing activity. |
Xero invoices | Export Revenue (RC) | Export Revenue (RC) = CALCULATE(sum('xero invoices'[Net Amount (RC)]),filter('xero contacts', 'xero contacts'[Is Export] = True))
| This measure calculates export revenue in reporting currency (RC) by summing invoice net amounts for customers marked as Export. |
Xero invoices | Export Revenue % | Export Revenue % = CALCULATE(sum('xero invoices'[Net Amount (RC)]),filter('xero contacts', 'xero contacts'[Is Export] = True)) / (sum('xero invoices'[Net Amount (RC)]))
| This measure calculates the percentage of total revenue that comes from export customers. |
Xero invoices | Months in Period | Months in Period =
| This measure calculates the number of months in the selected period, capped so it does not extend into future months. |
Xero invoices | This Period Existing Business | This Period Existing Business =
| This measure calculates existing business revenue (RC) for the selected period by subtracting new customer revenue from total revenue. |
Xero invoices | This Period MRR | This Period MRR = calculate(SUMX(
| This measure calculates MRR (RC) for the current month by summing revenue invoice amounts within the latest month in the current date context. |
Xero invoices | This Period New Business | This Period New Business =
| This measure calculates new business revenue (RC) for the selected period by summing invoice net amounts for customers whose Became Customer date falls within the period. |
Xero invoices | This Period New Business % | This Period New Business % =
| This measure calculates the percentage of revenue from new customers in the selected period by dividing new customer revenue (RC) by total revenue (RC). |
Xero journals | Direct Costs | Direct Costs = calculate(SUM('xero journals'[Net Amount (RC)]), FILTER ('xero accounts', 'xero accounts'[Type] = "Directcosts"))
| This measure calculates direct costs in reporting currency (RC) by summing journal net amounts for accounts classified as Directcosts. |
Xero journals | Expenses | Expenses = calculate(SUM('xero journals'[Net Amount (RC)]), FILTER ('xero accounts', 'xero accounts'[Class] = "Expense"))
| This measure calculates total expenses in reporting currency (RC) by summing journal net amounts for accounts classified as Expense. |
Xero journals | FY Revenue | FY Revenue =
| This measure calculates total revenue (RC) for the current fiscal year, using the fiscal year start and end dates that contain TODAY(). |
Xero journals | FY YTD Revenue | FY YTD Revenue =
| This measure calculates fiscal year-to-date (YTD) revenue in reporting currency (RC) from the start of the current fiscal year up to TODAY(). |
Xero journals | Gross Profit | Gross Profit = [Revenue] + [Direct Costs]
| This measure calculates Gross Profit by combining Revenue with Direct Costs. |
Xero journals | Gross Profit % | Gross Profit % = [Gross Profit]/[Revenue]
| This measure calculates Gross Profit % by dividing Gross Profit by Revenue. |
Xero journals | Journals Net Amount (RC) ABS | Journals Net Amount (RC) ABS = (CALCULATE(sum('xero journals'[Net Amount (RC)]),KEEPFILTERS('xero accounts'[Class] = "Expense")) * -1) + (CALCULATE(sum('xero journals'[Net Amount (RC)]),KEEPFILTERS('xero accounts'[Class] = "Revenue")))
| This measure returns a combined absolute value for journals, where Expense amounts are flipped to positive values and Revenue amounts remain positive. |
Xero journals | Journals Net Amount (RC) RT | Journals Net Amount (RC) RT = CALCULATE(sum('xero journals'[Net Amount (RC)]),filter(all('xero dates'), 'xero dates'[Date] <= max('xero dates'[Date])))
| This measure calculates a running total of journal net amounts in reporting currency (RC). |
Xero journals | Marketing Spend (RC) | Marketing Spend (RC) =
| This measure calculates marketing spend (RC) for the selected period by summing journal net amounts where the account name contains “Marketing”, excluding FORECAST INVOICE journals. |
Xero journals | Net Profit | Net Profit = [Revenue] + [Expenses]
| This measure calculates Net Profit by combining Revenue with Expenses. |
Xero journals | Net Profit % | Net Profit % = [Net Profit]/[Revenue]
| This measure calculates Net Profit % by dividing Net Profit by Revenue. |
Xero journals | Previous FY Revenue | Previous FY Revenue =
| This measure calculates total revenue (RC) for the previous fiscal year by shifting the current fiscal year start and end dates back 12 months. |
Xero journals | Previous FY TD Revenue | Previous FY TD Revenue =
| This measure calculates previous fiscal year-to-date revenue (RC) by summing revenue journals from the start of the prior fiscal year up to the same date one year ago. |
Xero journals | Revenue | Revenue = calculate(SUM('xero journals'[Net Amount (RC)]), FILTER ('xero accounts', 'xero accounts'[Class] = "Revenue"))
| This measure calculates total revenue in reporting currency (RC) by summing journal net amounts for accounts classified as Revenue. |
Xero journals | This Month Revenue | This Month Revenue =
| This measure calculates revenue (RC) for the current fiscal month, using the fiscal month start and end dates that contain TODAY(). |
Xero journals | This Month Revenue Last Year | This Month Revenue Last Year =
| This measure calculates revenue (RC) for the same fiscal month last year by shifting the current fiscal month start and end dates back 12 months. |
Xero payments | Bank Amount (RC) RT | Bank Amount (RC) RT = CALCULATE(sum('xero payments'[Bank Amount (RC)]),filter(all('xero dates'), 'xero dates'[Date] <= max('xero payments'[Payment Date])))
| This measure calculates a running total of bank payments in reporting currency (RC). |
Xero quotes | This Period New Business Quotes % | This Period New Business Quotes % =
| This measure calculates the percentage of quote value from new business in the selected period. |
Xero quotes | Won % | Won % =
| This measure calculates the win rate by value for the selected period by dividing the total Won quote value (RC) by the total quoted value (RC). |
