How Margn works

Margn turns your financial transaction data into benchmarked insights — showing you how your margins, cost mix, and unit-level profitability compare to other businesses in your industry.

Three steps to insights

1

Export your data

Pull a transaction-level export from your accounting system (QuickBooks, Xero, FreshBooks, Wave, etc.). Margn auto-detects common column names so you rarely need to rename anything.

2

Upload your CSV

Drop your file on the Upload page. Margn validates every row, maps categories to the standard taxonomy, and loads it in seconds.

3

Read your dashboard

See gross and net margins, cost mix, per-unit profitability, and how you stack up against the portfolio benchmark — all in one view.

Exporting from your accounting tool

Margn works alongside QuickBooks, Xero, FreshBooks, Wave, and similar tools. Export a transaction report as a CSV — Margn will auto-detect most column names so you rarely need to rename anything.

Margn fieldAuto-detected column names
operating_unitJob, Project, Site, Customer, Client, Class, Location, Property, Department, Contract, Store, Route
transaction_dateDate, Invoice Date, Bill Date, Payment Date, Posting Date
transaction_amountAmount, Net Amount, Total, Value, Net, Subtotal
transaction_typeType, Txn Type — or auto-derived from amount sign
transaction_idNum, Reference, Invoice Number, Check Number — or auto-generated
categoryAccount, Account Name, Expense Category — must match your industry template

The one thing you always need to check

Your accounting tool's account or category names won't automatically match Margn's industry categories. Before uploading, replace your account names in the category column with the exact category names for your industry (see the Industry templates section below). Download a sample file to see working examples.

CSV format reference

Every upload must be a .csv file with the following columns in any order:

ColumnDescription
transaction_idA unique identifier for each row (e.g. TXN001) — auto-generated if missing
operating_unitThe name of the project, site, contract, or store
transaction_dateDate in YYYY-MM-DD format (e.g. 2026-01-15)
categoryMust match your industry template exactly (see below)
transaction_amountPositive for revenue, negative for costs (e.g. -4500)
transaction_type"revenue" or "cost" — auto-detected from amount sign if missing

Amount rules

  • Revenue amounts must be positive
  • Cost amounts must be negative
  • Zero amounts are rejected
  • If transaction_type is missing, it is auto-derived from the amount sign

Industry templates

The category column must exactly match one of the values for your industry. Download a sample file to see a working example.

General Contractor

Operating unit = Project

Download sample
Contract RevenueLaborSubcontractorMaterialsEquipmentPermitsOverhead

Janitorial

Operating unit = Contract

Download sample
Service RevenueLaborCleaning SuppliesEquipmentOverhead

Landscaping

Operating unit = Site

Download sample
Service RevenueLaborPlants & MaterialsEquipmentOverhead

Restaurant

Operating unit = Location

Download sample
SalesLaborFood IngredientsDelivery FeesUtilitiesOverhead

Retail

Operating unit = Store

Download sample
SalesLaborInventoryRentUtilitiesOverhead

Transportation & Logistics

Operating unit = Route

Download sample
Delivery RevenueDriver LaborFuelVehicle MaintenanceVehicle LeaseContracted DriversOverhead

IT & Technology Consulting

Operating unit = Project

Download sample
Consulting FeeMonthly RetainerProject Milestone PaymentEmployee SalarySubcontractor ExpenseSoftware SubscriptionCloud Hosting FeesTravel & MealsMarketingOffice Supplies

Other

Operating unit = Unit

Download sample
RevenueLaborMaterialsEquipmentFacilitiesOther Direct CostOverhead

Tips for clean data

Use one row per line item

Each transaction should be its own row. Do not summarize multiple invoices into a single row — the more granular, the better.

Be consistent with operating unit names

Use the exact same name each time you reference a project, site, or contract. "Main St." and "Main Street" will be treated as two different units.

Map your account names to Margn categories

Your accounting tool uses its own account names (e.g. "Payroll Expense", "Cost of Goods Sold"). Before uploading, replace those with the exact Margn category names for your industry. This is the most common cause of rejected rows.

Include a date range, not just snapshots

Uploading a full period (e.g. one quarter) gives you the most meaningful benchmark comparisons.

Importing from your CRM

Step-by-step guides for exporting from common field service and accounting tools.

Ready to get started?

Create your account and upload your first file in minutes.

Get started free