Metrics reference

Every number Haruno computes for a company and for the portfolio: the formula in words, what it needs, the thresholds that color it, and what you see when it cannot be computed.

How to read this page

Every number on the Portfolio and on a company's page is computed on your Mac from that company's books — the ledger each close fills from the exports you added or the months a QuickBooks sync filed — through its approved mapping. Nothing is typed in by hand, and nothing is converted between currencies; inputs such as a headcount or a budget are used as the company stated them. Files you add, and months a sync files, move no figure until the next close reads them (When the figures update). Haruno for Windows works the figures out the same way on your PC; where it differs, see Haruno on Windows. Most cards have an Ask Haruno button that stages a question about their figures in the chat box; nothing is sent until you send it (Asking Haruno from a company's page).

Two checks for a company set up from QuickBooks Online exports
Before you quote its figures, check that its Cash tile shows what its bank accounts hold, because Burn and Runway depend on it, and that its Operating expenses by category card shows categories, because Category detail, the Variance watchlist, OpEx per employee and the acquisition-cost card depend on them. Which accounts count as cash and When no categories appear, below, say what to do.

Conventions that hold everywhere

ConventionWhat it means
A dash is not a zero“—” means the figure cannot be stated: an input is missing, or a percentage would mislead. A card with nothing to say is not drawn; one that cannot answer states its reason in grey italics.
One currency per companyAmounts are in the company's reporting currency, never converted. “$” means US dollars; other currencies show their code.
Fixed thresholdsThe same for every company, and not changeable in the app. A dollar threshold applies in the company's own currency ($1,000 means 1,000 euros for a euro reporter), and materiality does not move the $1,000 floors on the Variance watchlist and Budget vs actual.
Rounding and signsTiles round (“$3.95M”, “$268k”) and write a negative with a minus sign (“−$268k”), as do the Cash and Burn/mo columns of the Portfolio table; other tables are exact, negatives in parentheses. A change carries a sign (“+14.2%”); a level such as a margin does not (“34.5%”).
ColorsOnly where a threshold on this page applies, on Monthly burn bars for months when cash grew, and on the arrows that show a change against the month before. A large move Haruno cannot call good or bad is bold or uncolored, as in Period over period and Budget vs actual.
The close and the range pickerMost tiles are stated at the close: the latest month-end with balance-sheet figures. In the app, All · 6M · 3M trims only the Cash and Monthly burn charts, Operating expenses by category with its detail, and the Variance watchlist.

Every figure at a glance

Find a figure here; its section below, in the same order, gives the formula, thresholds and edge cases. Which cards a company's Overview draws, and in what order: Which cards appear, and when.

Figure (as shown)Where it appearsWhat it needs
Cash, Burn (3-mo avg), Monthly burn, RunwayOverview, Portfolio, investor reportCash accounts, by number or named in the mapping; an earlier month-end within three months for burn
Gross profit, MarginOverview, statement package, investor reportA revenue line and a cost-of-revenue line
Operating expenses by category, Category detailOverview, investor reportAn operating-expense subtotal
Operating expense by departmentOverview, investor reportA Profit and Loss by Class export per month, or a QuickBooks sync
Variance watchlistOverviewCategories and two or more profit-and-loss months
Budget vs actual, Worst vs budgetOverview, Portfolio tableA budget whose lines match profit-and-loss lines
Period over periodOverview, investor reportTwo complete periods
MRR, ARR, Customers, New, Churned, Net new MRR, ChurnOverview, investor reportA Stripe invoice export or a revenue-by-customer sheet
CAC, PaybackOverview, investor reportAcquisition spend lines in the mapping and a new-customer count
Collected, Gap; deferred revenue roll-forwardOverview, statement package, investor reportA revenue line (collections) or deferred revenue accounts (roll-forward), and balance sheets at consecutive month-ends
Headcount, OpEx per employee, Revenue per employeeOverview, investor reportA headcount: a row on an operating inputs sheet or the Headcount in Company details
Working capital, Current ratio, solvency runway, indicatorsOverview, statement package, investor report, PortfolioA classified balance sheet; an imported statement of cash flows for an operating runway
Tie gap, Recon exceptions, findings counts, health dotOverview, PortfolioA check row; a reconciliation workbook or QuickBooks reconciliation report; a close
Statement of cash flows, Trial balanceStatements tab, statement packageBalance sheets and a profit and loss for the months they cover

Cash, burn and runway

Runway is cash at the close divided by the average monthly fall in cash over the last three months, to one decimal: red under 6 months, amber under 12, green at 12 or more. Burn here is the change in cash, so raising money, borrowing and repaying all move it. For a runway measured from operations, import a statement of cash flows and read the one on the Solvency and going concern card.

The formulas

FigureHow it is computed
CashThe month-end balances of every cash account, added up: each account whose number begins with one of the company's cash prefixes, and each account the mapping names as cash.
Monthly burnThe previous month-end's cash minus this month-end's. Above zero means cash went down; months when cash grew show green, below zero. Across a month the books lack, the change is divided by the months between the two month-ends.
Burn (3-mo avg)Cash at the earliest month-end that falls one to three calendar months before the close, less cash at the close, divided by the calendar months between them: the average monthly fall over the last three months, or over fewer when the books start later. Below zero reads “cash grew on average”. When no earlier month-end is within three months of the close, the tile reads “—” with “no burn history yet”.
RunwayCash ÷ Burn (3-mo avg), such as “14.1 mo”, only when the average burn is above zero. The line under the tile reads “under 12 months, at 3-mo average burn” below 12 months, otherwise “at 3-mo average burn”. With no runway: “—” with “no burn history yet” (no burn), “cash held level” (burn of exactly zero) or “cash growing” (burn below zero). Growing cash is never flagged on its own.

Example: $1,440,000 at the close, after cash fell $98,000, $104,000 and $104,000 over three months. Burn (3-mo avg) is $102,000; Runway is 1,440,000 ÷ 102,000 = 14.1 months, green.

Which accounts count as cash

Haruno reads cash from accounts, not from the balance sheet's cash line. When it drafts the mapping from QuickBooks Online exports, it takes the full number of each numbered asset account under a balance-sheet line whose name mentions cash or bank, savings and money market included, as a cash prefix, so 1010 Checking does not make 1050 Trade Receivables cash; where a number would also begin another account that sits under a line that is not cash, or that is not an asset, the draft names the account instead. A mapping drafted from a practice's own reporting package takes the first two digits of each numbered account under a line whose name mentions cash, or the account's full number where those digits would also begin an account on another line. A chart with no account numbers gets an empty prefix list, meaning no numbered cash; a mapping with no prefix entry at all uses 10 (accounts 1000 to 1099, or 10000 to 10999). Any account whose number begins with a cash prefix counts, whatever section it sits in, except as the next paragraph says; restricted cash counts only if its number begins with one or the mapping names it. Haruno does not yet let you change the prefixes in the app, except in the Cash account number or prefix row that the review of a draft from a practice's own reporting package asks when the first two digits of a cash account would also begin an account on another line. An account with no number counts only when the mapping names it. On a chart with no account numbers, which is QuickBooks Online's default, the draft names the asset accounts under a line whose name mentions cash or bank (Checking and Savings under Bank Accounts, for example), and the mapping review asks about them in a Cash account name row. Add another account there, such as petty cash under Other Current Assets, or take one out. Write the name exactly as the balance sheet does: a partial name matches nothing at all. A Bank Loans line is a liability, so none of its accounts is offered as cash and its account numbers do not become a cash prefix. Where the mapping names no cash account (taking every entry out leaves it naming none) and no number begins with a cash prefix, Haruno counts those same accounts anyway.

A prefix can also reach more than cash. If a saved prefix such as 10 begins both an account on a cash or bank line (1010 Checking) and an account the balance sheet shows on another line (1050 Trade Receivables), and the mapping does not name that second account as cash, Cash counts only the accounts shown as cash or bank, the Burn and Runway tiles read “—” with “no burn history yet” whatever history the books hold, the statement of cash flows Haruno works out is marked not complete, and a medium Review cash-flow classification finding names the prefix and the accounts on each side. Ask Haruno to make the change that finding's sentence names in the company's mapping, such as setting the prefix to each cash account's full number (1010, not 10): see Changing the mapping.

When no account counts as cash, the Solvency card's Cash row reads “—” with “no account number begins with '10' — cash cannot be identified in this chart, so there is no cash figure and no runway”. The note names the company's own prefixes (“any configured prefix” where the mapping has none) and ends by naming a setting the app does not yet let you change. Whatever that company's Cash, Burn and Runway tiles then show, they do not measure its cash, and neither does its share of the Portfolio's Combined cash, Combined burn and Under 12 mo runway. On a chart with no account numbers, name the accounts that hold the cash in the Cash account name row of the mapping review. On a numbered chart whose cash accounts do not begin with the company's prefixes, Haruno does not yet let you change them in the app. A QuickBooks chart does not need account numbers for cash; if the company turns them on later, every account's caption changes and the mapping has to be drafted again. See Account numbers and Changing the mapping.

Why this burn is the change in cash

It is the one burn Haruno can state for every company from balance sheets alone. It includes financing and investing flows: a raise inside the three months makes runway read long, a loan repayment short. Because it is not an operating burn, it never raises a going-concern indicator, and it can differ from the Solvency card's runway, which names its basis.

Edge cases

  • One month-end only, for example a first close from a Balance Sheet exported as of a single date: there is no burn history, and the Monthly burn card's headline is not a burn figure. Export the Balance Sheet with one column per month, or add each month's as you close.
  • A missing month: the change across the gap is spread over the calendar months it spans. If the previous month-end is more than three calendar months before the close, there is no burn.
  • The Monthly burn chart's headline and dashed “avg” line average the bars shown, so with All selected it can differ from the Burn (3-mo avg) tile.
  • A company synced from QuickBooks: the burn is measured to the newest finished month, so a month synced before it ended is left out of it. Runway still divides today's cash by that burn.

Gross margin and profitability

Gross profit is revenue less cost of revenue; Margin is gross profit ÷ revenue × 100, month by month, read off the lines the company itself presents. The Gross margin card appears only when the profit and loss presents a cost-of-revenue line, rather than showing a 100% margin. Margin is amber when gross profit is negative. Haruno does not compute operating margin, EBITDA or EBITDA margin; net operating income and net income appear only as statement lines.

What counts

  • Only what the company presents above its gross-profit line: a delivery cost booked in operating expenses is not in it, and the card's note says so. Haruno does not reclassify costs to make companies comparable.
  • A month with zero revenue (“there was no revenue to measure the margin against”) or negative revenue (“revenue is negative this month, so a margin percentage would state a direction rather than a size”) has no percentage; the reason prints under the row.
  • A margin per revenue stream appears only when the mapping pairs each revenue line with its own cost line. Haruno never guesses pairs from line names and the app does not yet let you set them, so most companies show one margin.

Operating expenses: categories and departments

Operating expense categories are the lines inside the operating-expense subtotal of the company's own profit and loss — not accounts and not QuickBooks classes. They drive Operating expenses by category, Category detail, the Variance watchlist and OpEx per employee. Departments come from a Profit and Loss by Class export.

Category detail

In the By month view, click a category in the chart's legend to see it month by month, with its Budget where the budget has a line of the same name, and vs average: the month minus the average of the months shown, red when more than 15% above it and green when more than 15% below. It is the one spending figure colored by direction, because for one cost line above average is the costly side. A category negative in a month is left out of that month's stacked bar but shows here.

Operating expense by department

Departments are the company's QuickBooks classes, one export per month; a month without one shows “—”, not zero. Each month a QuickBooks sync files brings the split. Not Specified is spending nobody classified, kept on its own row and never spread across departments. When the departments do not add up to the Operating expense row, a note gives the months and both figures, and nothing is allocated. A class export that disagrees with the month's activity raises the high class_total_disagrees finding (Budget and operating checks).

When no categories appear

Haruno finds the operating-expense subtotal by its caption: a subtotal whose caption names operating expenses. When it drafts a mapping from a QuickBooks Online export, it captions the line that totals the expenses “Total operating expenses”, so such a company normally shows categories. A profit and loss that totals its costs under another caption, such as the “Total for Expenses” line in a mapping drafted before that, may show no categories. The chart then reads “No operating expenses in ‹Mon YY›”, there is no Category detail or Variance watchlist, OpEx per employee reads “the operating statement presents no operating-expense subtotal to divide”, and no acquisition spend lines are proposed, so there is no acquisition-cost card. Drafting the mapping again writes that caption, but replaces every answer you recorded. A statement line can be renamed only before the company's first close, and only a line the draft named itself; see Troubleshooting.

Variance watchlist

The Variance watchlist lists months in which an operating-expense category moved away from its own trailing three-month average by at least $1,000 and at least 15%. It shows the six largest moves by percentage, red at 25% or more in either direction and amber below. No budget is involved, and a row is a figure to look into, not a finding.

The rule

  • Each category's month, after the first profit-and-loss month, is compared with the average of up to three months before it.
  • It is listed when that average is not zero and the move, either way, is at least the larger of $1,000 and 15% of the average.
  • Δ% = (actual − average) ÷ the size of the average × 100. The six largest by size across the whole history are kept.
CategoryAverageMonthListed?
Travel$6,000$9,000 (+50%)Yes, red
Contractors$20,000$17,000 (−15%)Yes, amber: exactly 15%
Software$4,000$4,800 (+20%)No: under $1,000
Payroll$200,000$215,000 (+7.5%)No: under 15%

Both tests are needed: a percentage alone flags trivial moves in small categories, a dollar floor alone flags noise in large ones. A month that clears both is the kind of break worth a question to the company: a one-off, a misposting, a cost that landed in the wrong month.

Edge cases

  • Rows are chosen before the range picker filters them, so 6M or 3M can show fewer than six rows; the card is not drawn when none falls in the range.
  • Growth from a zero average is never listed, and the first month is never tested.
  • The investor report leaves the watchlist out.

A cost that posts nothing one month and roughly double the next is a finding instead: missed_accrual in Policy checks.

Budget vs actual

Budget vs actual compares each budget line with its profit-and-loss line over the fiscal year to date — from the month the company's fiscal year opens through the latest profit-and-loss month — using only months that have both a budget and an actual. A line is material when it is off by at least $1,000 and at least 5% of its budget to date. It is never colored red or green for being over or under. Budget layout: Budget. A QuickBooks sync brings the company's QuickBooks budget too.

The formulas

FigureHow it is computed
Actual to date, Budget to dateEach summed over the window's months that have both.
ΔActual to date − Budget to date. Above zero means actual ran above budget.
Δ %Δ ÷ Budget to date × 100, to one decimal. “—” when the budget is zero or the figures crossed zero.
MaterialΔ, either way, at least the larger of $1,000 and 5% of Budget to date. Payroll $20,000 over a $600,000 budget (3.3%) is not.
Worst vs budget (Portfolio table)The material line with the largest Δ % either way, signed (“+14.2%”). “on budget” when none is material; “—” when nothing can be compared.

It is 5% here and 15% on the watchlist because a budget is a committed number, while a month against its own trailing average is noisy by construction. The card's headline names the line with the largest dollar gap, so it can differ from Worst vs budget; both are right.

Edge cases

  • No budget, no card. A budget that cannot be compared, such as next year's before any of its months closes, shows the heading and the reason.
  • A budget that stops before the latest month is compared over the budgeted months only, and a line that matches no statement line is not compared; a finding names each.
  • The window is the company's fiscal year to date: with a year that starts in July and a latest profit-and-loss month of January, it is July through January.
  • The investor report leaves budget out, with no setting to include it.

Budget findings: budget_line_unmatched, budget_line_uncomparable and budget_months_short (Budget and operating checks). Being over budget is never a finding: it is a business fact.

Reasons the card can show instead of bars
  • “a budget is imported and no category of it shares a month with the actuals”
  • “there is no profit-and-loss in this ledger — a budget on its own compares to nothing”
  • “the budget covers ‹from› to ‹to› and the N closed month(s) to ‹date› share none of it — there is no month where both a budget and an actual exist”
  • Beside a line's Δ %: “there was no budget to measure against”, or “the figure crossed zero, so a percentage would state a direction rather than a size”

Period over period

Period over period compares the latest complete month, quarter or year with the one immediately before it: balances at the two period-ends, and each period's profit-and-loss months added up. Choose Month (the default), Quarter or Year. Quarters and years follow the company's fiscal year. Haruno does not compare with the same period a year earlier.

RuleDetail
Complete periods onlyA profit-and-loss quarter needs all three months; a balance-sheet quarter only its last month-end. A short period is refused with a sentence naming what is missing.
Labels“Q1 FY2026” and “FY2026” when the fiscal year is not the calendar year; a fiscal year is named for the year it ends in (July 2025 to June 2026 is FY2026).
Lines shownEvery subtotal, total, computed and check line that moved, plus the six detail lines that moved most in dollars. A note counts the rest: “N further lines are not shown — unchanged, or smaller movements. The totals above include them.”
EmphasisA move of 25% or more is bold, never colored. An amber note marks a restated month.

Why a deepening loss reads as a positive percentage

Change is now − was, in dollars. Δ % divides by the earlier figure with its sign, and is “—” when there was no earlier figure. An operating loss that deepens from (635,250) to (656,450) reads +3.3%: it grew in its own direction, where a minus sign would read as an improvement. A figure that crosses zero has no percentage (−100 to +100 is not “up 200%”), and one that falls to zero is −100%. Use the Change column.

Every line is in the statement package; restated months: Restatements.

Messages when a comparison cannot be made
  • “Feb 2026 cannot be read: a balance sheet is read at the date the period closed, and the ledger holds no balances at 2026-02-28. The ledger holds only 2026-03-31.”
  • “Q1 2026 is short: a profit and loss sums the 3 months …, and one of them is not there (…).”
  • “No line moved by as much as a cent.”

Which comparison answers which question

Four figures compare a number with something else. They routinely disagree, and correctly. When you quote a variance, name the comparison it came from. None is a finding: a variance is a business fact (What a finding is).

FigureComparesAnswers
Period over periodThe latest period with the one beforeWhat moved since the last period?
Budget vs actualThe fiscal year to date with the budgetAre we where we planned to be?
Variance watchlistA category's month with its trailing three-month averageDid this month break the pattern?
Category detailA category's month with the average on screenHow does it compare with this period?

Recurring revenue: MRR, ARR and churn

The Recurring revenue card needs billing records: a Stripe invoice export or a revenue-by-customer sheet. QuickBooks has no report that carries them. A company whose books come from QuickBooks Sync reads neither file, so it has no Recurring revenue card (see QuickBooks and a company's books).

ColumnHow it is computed
MRRThe monthly rate of each open or paid invoice that has a service period and a subscription id, added up: its amount net of tax divided by the months of its term (an annual term counts as twelve). For a term of whole months, such as January 15 to February 15, the rate counts in each month in proportion to the days the term is active; any other term is spread evenly over the calendar months it touches. From a revenue-by-customer sheet, the month's recognized revenue as stated.
ARRMRR × 12.
CustomersCustomers with a figure that month who have ever been billed a positive amount.
New, ChurnedOn the books this month and not last, or last month and not this.
Net new MRRMRR − last month's MRR.
ChurnChurned ÷ last month's customers × 100. Amber above zero.

Example: a $1,200 invoice for January 1, 2026 to January 1, 2027 adds $100 a month from January to December 2026; a service period that ends on the 1st of a month does not count that month. A $100 monthly term from January 15 to February 15 adds $54.84 to January (17 of its 31 days) and $50 to February (14 of its 28 days).

What counts

  • Draft, void and uncollectible invoices count for nothing. An invoice with no service period, or with a period but no subscription id, is one-off revenue in its own month, listed on the card and in no MRR figure. If the export has no Subscription column at all, the months its dated invoices touch state neither MRR nor one-off revenue: the card says to re-export with the Subscription column.
  • MRR is what was billed, net of tax, not what was collected.
  • Churn counts customers (logo churn), not revenue.
  • The first month has no New or Churned figure, and a month a source does not fully cover is refused rather than shown as a lower MRR.

Customer acquisition cost and payback

CAC is the month's acquisition spend divided by the new customers counted that month; payback is the months of those customers' recurring gross profit it takes to earn it back. The Customer acquisition cost and payback card appears only when the mapping names the acquisition spend lines.

ColumnHow it is computed
SpendThe acquisition spend lines, added up for the month.
Arrivals countedNew customers, from an operating inputs sheet or closed-won deals in a CRM export.
CACSpend ÷ Arrivals counted.
Started billing, Cohort MRRCustomers whose first recurring revenue falls in the month, and what they recur. Cohort MRR is amber when the number that started billing differs from the count, which is expected when a deal closes before its first invoice.
Gross margin appliedThe month's gross margin, or “not applied” when the month has none.
PaybackCAC ÷ (an arriving customer's monthly rate × gross margin), in months. The rate is each arriving customer's full monthly rate, not the part of the arrival month they were active, so it can differ from Cohort MRR ÷ Started billing when billing starts mid-month. Without a margin, the shorter CAC ÷ that rate. A payback that rounds to zero prints “<0.01 mo”.

Example: $30,000 of spend and 10 arrivals give a CAC of $3,000. At $500 MRR per customer and an 80% margin, payback is 3,000 ÷ 400 = 7.5 months.

Which lines are acquisition spend

When Haruno drafts the mapping, it proposes the lines inside the operating-expense subtotal whose names read as sales and marketing, and the review form's Marketing line row lists them, where you can add other operating-expense lines or take drafted ones out. With no such line, or no subtotal Haruno can identify (When no categories appear), nothing is proposed, there is no row to add lines in and there is no card. A line left out makes the cost per customer look smaller, a line wrongly in makes it look bigger, and neither is visible in the figure.

When there is no CAC or payback

  • No count, or a count of zero: the cost per customer is undefined, not infinite.
  • Spend lines with no figure for the month, which is not the same as spending nothing, or netting to a credit, which is a classification to fix: no CAC.
  • No billing records, an empty cohort, or a margin at or below zero: no payback, with a sentence saying why.

When a CRM export and a hand-kept count disagree for a month, operating_count_disagrees raises a finding (Budget and operating checks).

Collections against revenue

The Collections against revenue card estimates the cash that arrived from customers from the statements alone: Collected = revenue − Δ receivables + Δ deferred revenue, each Δ being this month-end's balance less the previous month-end's. Gap = Collected − Revenue, amber when negative. It is a derived estimate, not a bank total.

The total row covers only the months that produced a figure, for example “3 of the 5 months to June 2026”. Example: revenue $100,000, receivables up $15,000, deferred revenue up $5,000: Collected $90,000, Gap −$10,000.

What it needs, and why it differs from receipts

  • Each month needs balance sheets at its own month-end and the one before; otherwise the revenue shows with a reason.
  • Anything that moved cash without touching revenue, receivables or deferred revenue makes it differ from receipts. A bad debt written off lowers receivables with no cash, so Collected overstates that month.
  • A company with neither receivables nor deferred revenue is reported as collecting what it earned.
Reasons a month can show instead of a figure
  • “no earlier month is held, so the change in working capital cannot be measured”: the first month in the books.
  • “no balance sheet covers this month, so no closing receivable or deferred balance is stated and the change in working capital cannot be measured”: add a Balance Sheet that covers the month.
  • “the month before this one is not held — the nearest earlier month-end held is ‹date›, N months back — so measuring from it would charge N months of movement to this one”
  • “only one month is held, and a change in working capital needs two”

Deferred revenue roll-forward

The Deferred revenue card rolls the deferred revenue accounts forward: Opening (the previous month's Closing), Movement and Closing (the month-end balance). Haruno finds the accounts by name, and the review form asks which one when a billing export finds several. When a billing export with service periods, or the reconciliation workbook's tab, measures it, the movement splits into Additions and Recognition, and Why did it move? lists the rows behind a month; otherwise it is net. The first month has no stated opening.

If the split implies a closing balance more than $1 away from the balance sheet, the card says so and keeps both: “The split implies a closing balance of ‹amount› against the ‹amount› these accounts state, a difference of ‹amount›. Both figures stand.” When it misses by more than the larger of the company's materiality ($1,000 unless the mapping records another) and $1, the deferred_rollforward_drift check raises a finding. See Materiality, Revenue and receivables checks and Deferred revenue.

Headcount and per-employee figures

Headcount is a number you or the company supply; Haruno never derives it from the books. It comes from a headcount row on an operating inputs sheet or, where the sheet has none, from the Headcount entered in Company details. A sheet's count is read for the latest month that has both a headcount and a profit and loss, which can be earlier than the close; a count from Company details stands from its as-of month until a later one replaces it, and is used for the newest profit-and-loss month that has finished (closed, or exported or synced after it ended). OpEx per employee divides that month's operating-expense subtotal by it, a fully loaded cost per head rather than payroll, and Revenue per employee the revenue line. The line under the Headcount tile says where the count came from: for a sheet, who counted, from your answer to Whose headcount this is in the mapping review, which nothing in the financials can check; for Company details, “as of Sep 2026, per company details”.

When a per-employee figure is not stated
  • “the tab carries no headcount row, so nothing here can be stated per employee”
  • “the headcount for ‹month› is stated as zero, which nothing can be divided by”, or, from Company details, “the headcount in company details is zero, which nothing can be divided by”
  • “the headcount for ‹month› is negative (‹n›), so financial rates per employee are unavailable”
  • “no profit and loss covers ‹month›, the latest month with a headcount, so nothing is stated per employee”
  • “every headcount in company details is as of a month after ‹month›, the latest finished month with a profit and loss, so nothing is stated per employee”

Solvency and going concern

The Solvency and going concern card reads the balance sheet at the close for signs the company may not meet its obligations. Four indicators can fire. When two or more fire and at least one is high, they cluster: these are the conditions a going-concern evaluation is made about. The evaluation stays yours: Haruno never concludes on going concern.

The rows

RowHow it is read
Current assets, Current liabilitiesThe balance sheet's own subtotals at the close.
Working capitalCurrent assets − Current liabilities.
Current ratioCurrent assets ÷ Current liabilities, only when current liabilities are above zero.
CashThe same cash accounts as the Cash tile.
Total assets, Total equityThe statement's own total, or else the sum of the asset or equity accounts. For equity, the Basis column names the line read.
Deferred revenueThe accounts read as deferred revenue, with the Basis giving it as a multiple of total assets.
Operating cash flowOnly with an imported statement of cash flows, not the one Haruno works out from the books: as presented, and corrected when borrowing shown in operating activities is moved to financing, as ASC 230 requires (the cash_flow_classification check).

The solvency runway

With a statement of cash flows, monthly burn is the corrected operating cash flow, as an outflow, divided by the months it covers. Without one, it is the change in cash over the last four month-ends at most, divided by the calendar months between them, and the basis says it includes financing. Runway is cash ÷ that burn, colored as on the Runway tile; none is stated when the window generated cash. Only a runway from operating cash flow can raise an indicator. The statement is the newest one the company imported; for a company synced from QuickBooks, its last up to three whole finished months of QuickBooks cash flows. When QuickBooks has sent cash flows only for months still running, the runway falls back to the change in cash and the basis names those months.

The four indicators

Indicator (as shown)Fires whenSeverity
current ratio ‹ratio›The current ratio is below 1.00High below 0.50, otherwise medium
total equity ‹amount›Total equity is below zeroMedium when the deficit is under 10% of total assets, otherwise high; high when total assets are unknown. The same when part of the deficit sits in Opening Balance Equity, which the note names.
deferred revenue ‹N.N›x total assetsDeferred revenue exceeds total assetsAlways high
runway ‹N.N› monthsRunway from operating cash flow is under 12 monthsHigh under 3 months, otherwise medium

The 12 months follow ASC 205-40: management evaluates each reporting period whether there is substantial doubt about the company's ability to continue as a going concern within one year after the date the financial statements are issued (or available to be issued). Deferred revenue above total assets is an obligation to perform that collecting receivables does not settle.

When indicators cluster

Two or more indicators, at least one of them high, form a cluster. The card then opens with an amber paragraph citing ASC 205-40, the company's header chip reads “going-concern indicators” in red, the company counts on the Portfolio's Going-concern indicators tile, and its health dot turns red. A current ratio of 0.96 and an equity deficit under 10% of assets are two medium indicators: no cluster. Indicators are not findings: they fire on correct books, stay out of the findings counts on the Portfolio and the company page, and never mark a month reported with exception. Draft the disclosure stages investor wording in the chat box. See Solvency indicators, Draft the disclosure and Cash flow checks.

Notes the card can show when a figure cannot be read
  • “no balance-sheet facts in the ledger — nothing to assess”
  • “the balance sheet states no current/non-current split, so no current ratio — a classified balance sheet is what supplies it”
  • “current liabilities are ‹amount›, so no current ratio — a ratio needs a positive denominator to mean anything”
  • “the runway above is measured from the change in cash, which includes financing — a raise inside the window makes it read long and a repayment makes it read short. No indicator is raised on it; that needs a statement of cash flows.”
  • “no runway: no statement of cash flows was imported, and the ledger does not carry enough months of cash balances to measure one from”

The Portfolio's tiles and columns

The Portfolio adds each company's figures at its own close, never across currencies: when companies report in more than one, Combined cash and Combined burn read “—”. Combined burn counts a company whose cash grew as zero rather than letting it offset the others, and reads “—” while any company has no burn yet. Both carry the change against the month before when every company closes in the same month. Under 12 mo runway leaves out companies with no runway. Companies without a report are left out of the totals. In the Cards layout, the Cash by company card under the tiles ranks the reported companies by cash, largest first, and clicking a row opens the company; when companies report in more than one currency it draws one list per currency, each ranked on its own, so no two currencies are compared. Tiles and columns: The six tiles, Company cards and The table.

The health dot

DotWhen
RedIndicators cluster, or runway is under 6 months
AmberOtherwise, any open high finding, or runway under 12 months
GreenOtherwise. Growing cash is never red for runway.

On the Portfolio, a line under the name of a company with an amber or red dot names the first of these causes that applies: see Company cards.

Tie-out, reconciliation exceptions and findings counts

Three figures say whether the books hold together rather than how the business is doing.

FigureHow it is computed
Tie gap, Tie-outThe balance sheet's check row at the close, tying within $0.01: the Overview tile reads “✓” with “statements tie out”, or the gap in red with “presentation does not tie”. Only a practice's own reporting package has a check row. A company set up from QuickBooks Online exports has none, so the tile and the Portfolio table read “—” with “not tested: the balance sheet has no check row”, and the table sorts it with the other figures Haruno could not state, not among the companies that tie.
Recon exceptionsReconciliations in exception at the close month. Open ones are not counted, so ✓ does not mean every schedule tied. “—” with “no reconciliation binder for this close” means no schedule was reconciled at the close month, so nothing was tested; the Portfolio table shows the same dash and sorts it with the other figures Haruno could not state.
Findings countOpen high and medium findings. Low findings and solvency indicators are not counted.

The bs_tieout check tests every balance sheet regardless (Statements tie-out checks). See also Your own financial package, Companies without a workbook, Where findings appear, and The state is a snapshot for why “no open findings” (“clean” in the Portfolio table) can sit beside “reported with exception”.

Direction against the month before

Cash, Burn and Runway on the Overview tiles, the Portfolio cards and the Portfolio table, Combined cash and Combined burn on the Portfolio, and the headline figures on page one of the investor report show an arrow and the change against the month before the close: ▲ up, ▼ down, = flat. The change reads “+12.0%”, “+0.9 mo” for Runway, “+1.2 pt” for a margin, or an amount such as “−$4,200” where the figure crossed zero or the earlier one was nil. A percentage divides by the earlier figure with its sign, as in Period over period, so a loss that widens from −100 to −120 reads ▲ +20%.

The color says whether the move was good, never whether it was up or down: green favorable, red unfavorable, gray not material. Burn is better lower; every other figure higher. A money figure moved materially when it changed by at least 5% of the earlier figure (Operating result and Burn also by at least 1% of a month's spend, the average of revenue less operating result over the last three months); Gross margin needs 0.5 points and Runway 0.5 months. Combined cash and Combined burn use the 5% rule alone.

Where there is nothing to compare, a dash or “no comparison” takes the arrow's place, with the reason on hover or beneath the figure. A Burn of zero or less has no arrow, nor has one that follows a month with none, and neither do Combined cash and Combined burn when the companies close in different months.

Statements from the books

Besides the statements the company presents, the Statements tab draws two that Haruno works out from the books, each labeled “Calculated from the books” with the basis the source files state.

StatementHow it is worked out
Statement of cash flowsThe indirect method, for the close month and the fiscal year to it: net income, then the change in every balance-sheet account, each placed under operating, investing or financing activities (the Accounts behind each line disclosure says where and why; what cannot be placed is Not classified). The cash it explains is the company's cash accounts and money received and not yet deposited (QuickBooks' Undeposited Funds), so Cash at the end can differ from the Cash tile. Not complete, with the reasons, when it does not prove against the balance sheets; no figure where the books cannot support one.
Trial balanceEvery balance-sheet account at the close and every profit and loss account over the fiscal year to the close, each in its Debit or Credit column; the balance sheet's own profit line is left out, because the profit and loss accounts are listed. Debits equal credits is checked, not arranged; otherwise Not complete, with the reasons. An exported trial balance for the same date is compared account by account.
Statement of cash flows, as exportedShown as the company presented it, not added to the books, and checked against them: each activity against its lines, the activities against the net change, opening cash plus net change against closing cash, net income against the profit and loss. A failed check shows Doesn’t tie.

The Solvency and going concern card reads a statement of cash flows only from one the company imported (or that a QuickBooks sync brought), never from the one worked out here: The solvency runway.

Year to date and the fiscal year

Year to date means fiscal year to date: from the month the company's fiscal year opens through the latest month shown. The Statements tab's YTD column says which months (“YTD is the fiscal year from Jul 25 to Jun 26”, or “YTD is calendar-year to Jun 26” when the year starts in January), and the statement package's YTD column, the trial balance, the statement of cash flows and Budget vs actual use the same window. The fiscal year-end is set in the company's details (Why the currency and year-end matter), and Period over period quarters and years follow it too. Haruno does not compute the same period last year.

The same figures in the reports

The reports use the same formulas but are snapshots taken when you export them. The statement package states the Solvency card's runway, not the tile's. No report exports to a spreadsheet, apart from the adjustments log: export a report as a PDF (Exporting a report). The Portfolio report is internal; send investors the investor report. What each report carries: What is in the statement package and What investors see.

What Haruno does not compute

Haruno computes only what the statements and the files you add can support, and it does not fill a gap with an estimate. Not computed today:

Not computedWhat to use instead
Days sales outstandingCollections against revenue
Receivables aging bucketsNone. An A/R or A/P aging, imported or synced from QuickBooks, only ties the aging to the receivable or payable balance.
Net revenue retention, expansion, contraction, revenue churnMRR, Net new MRR and customer Churn
Operating margin, EBITDA, EBITDA marginGross margin; net operating income as a statement line
Customer lifetime valueCAC and payback
The same period last yearPeriod over period
Weekly or daily figuresNothing finer than a month-end
Currency conversionNone
A going-concern conclusionThe solvency indicators; the evaluation stays with you

Which files add which figures: What to export from QuickBooks Online.

Where to go next

These pages cover the screens the figures appear on, the files that add each card, the checks behind the findings counts, and the reports that carry the figures out of the app.