xmetric / Use cases

Analyze QuickBooks Expense Trends and Vendor Creep from CSV

To spot vendor price creep, duplicate software subscriptions and month-over-month expense spikes in QuickBooks, export Transaction Detail by Account or Expenses by Vendor Summary, group transactions by Name (vendor) and Distribution Account, and compare each month to the trailing 3-month average. The formulas and equivalent SQL are below; xmetric builds the view in your browser.

Chart your own CSV

Chart your export here

Drop a CSV here. xmetric reads every row in this browser and draws a first chart you can regroup or change the measure of. Nothing is uploaded.

No file loaded yet. You can also drop a CSV on this box.

How to export vendor and account expense transactions from QuickBooks

For full drill-down by both GL account and vendor, export Transaction Detail by Account (or Transaction List by Vendor).

  1. In QuickBooks Online, open Reports and select Transaction Detail by Account (or Expenses by Vendor Summary).
  2. Set Report period to Last 12 Months (or This Year-to-date) and click Run report.
  3. Click Export and export to CSV, or choose Export to Excel. Drop a .csv above for a first chart, or import the .csv or .xlsx file into the xmetric app to build the expense view.

QuickBooks Transaction Detail CSV columns used

Tableau Table Calculations, LODs, and SQL for Expense Creep

You can test each formula below in the formula playground.

1. Month-over-Month Vendor Spend Delta (Table Calculation)

In the xmetric app, place DATETRUNC('month', [Date]) on Columns, [Name] on Rows, and compute the jump against the trailing 3-month average:

// [Spend vs Trailing 3M Avg]
SUM([Amount]) - WINDOW_AVG(SUM([Amount]), -3, -1)

2. New Vendor Flag (FIXED LOD)

Isolate vendors paid for the very first time this month:

// [First Paid Month for Vendor]
{ FIXED [Name] : MIN(DATETRUNC('month', [Date])) }

// [Is New Vendor This Month]
DATETRUNC('month', [Date]) = [First Paid Month for Vendor]

Equivalent SQL

WITH vendor_monthly AS (
  SELECT
    COALESCE(NULLIF(TRIM("Name"), ''), '(Unassigned Vendor)') AS vendor_name,
    TRIM("Account") AS gl_account,
    DATE_TRUNC('month', CAST("Date" AS DATE)) AS spend_month,
    SUM(CAST(REPLACE(REPLACE("Amount", ',', ''), '$', '') AS DOUBLE)) AS monthly_spend,
    COUNT(*) AS tx_count
  FROM quickbooks_transactions
  WHERE "Date" IS NOT NULL
    AND TRIM("Date") <> ''
    AND "Transaction Type" IN ('Expense', 'Bill', 'Credit Card Expense', 'Check', 'Vendor Credit', 'Journal Entry')
  GROUP BY 1, 2, 3
),
with_window AS (
  SELECT
    *,
    AVG(monthly_spend) OVER (
      PARTITION BY vendor_name, gl_account
      ORDER BY spend_month
      ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
    ) AS trailing_3m_avg,
    MIN(spend_month) OVER (PARTITION BY vendor_name) AS first_vendor_month
  FROM vendor_monthly
)
SELECT
  spend_month,
  vendor_name,
  gl_account,
  tx_count,
  ROUND(monthly_spend, 2) AS monthly_spend,
  ROUND(trailing_3m_avg, 2) AS prior_3m_avg_spend,
  ROUND(monthly_spend - COALESCE(trailing_3m_avg, 0), 2) AS spend_spike_dollars,
  CASE WHEN spend_month = first_vendor_month THEN 'New Vendor' ELSE 'Existing Vendor' END AS vendor_status
FROM with_window
ORDER BY spend_month DESC, spend_spike_dollars DESC;

Common QuickBooks expense export traps

Audit opex and SaaS sprawl with AI agents

Every filter and formula in xmetric is a command. An MCP server for Claude and ChatGPT is in development, so your assistant will be able to scan a QuickBooks export and list every vendor whose monthly bill jumped by more than 20%. Live connections to Postgres and BigQuery are also coming.

Questions people ask

How do I spot duplicate charges in a QuickBooks CSV?

Group transactions by [Name], [Date], and [Amount] where COUNT(*) > 1 to flag double-billed SaaS subscriptions or twice-entered vendor bills.

Does xmetric upload my QuickBooks general ledger to a server?

No. Your QuickBooks export is read inside your browser tab and is never uploaded, unless you sign in and choose to save a workbook online.

Can I open `.xlsx` exports from QuickBooks as well as `.csv`?

Yes, in the xmetric app, which imports CSV, Excel (.xlsx) and Parquet files. The drop zone on this page reads .csv files, so save an .xlsx export as .csv first if you want to use it here.

Drop your QuickBooks Transaction Detail by Account or Expenses by Vendor CSV above for a first chart, then build the expense trend view in the xmetric app.