Bionano Genomics, Inc.

BNGOdata completeness 75%9 fiscal years on file
The thesis, from the filings

Bionano Genomics, Inc. earns about -136% on invested capital, and has bought back 98% of its shares over 5 years. The cash-flow models don't apply cleanly here — the ledger says why below.Whether it’s worth owning at today’s price is the last question — and yours to answer, below.

i. The business — what you’d actually own
FigureFY 2021FY 2022FY 2023FY 2024FY 2025
Revenue$18M1$27.8M2$36.1M3$30.8M4$28.5M4
Net income−$72.4M5−$132.6M6−$232.5M7−$112M8−$26.4M8
Operating cash flow−$71.9M9−$124.8M10−$125.2M11−$68.9M12−$16.3M12
Capital expenditure
Free cash flow (derived)
Total debt$013
Cash & equivalents$24.6M14$5.09M15$17.9M16$9.17M17$2.99M17
Diluted shares276.8M28.9M569,0001.3M5.4M

Superscripts are receipts. Each links to the SEC filing the number came from (full list at the bottom).

ii. Your slice — ownership made literal
If you owned
shares
Net assets behind them
$81.59
your share of equity
Profit it earned you last year
−$48.48
Free cash flow it threw off
Debt you’d be carrying

10 shares is a claim on $81.59 of net worth that earned you −$48.48 last year.

iii. Is this a good business?
Moat signal · return on invested capital
-136% avg · 5y
FY21 -20%FY22 -42%FY23 -230%FY24 -338%FY25 -50%

It earned an average -136% on invested capital over 5 years. Compare that to what it costs to fund the business.

seeing a moat in the numbers →
Management signal · capital allocation
−98% shares · 5y

Share count is down 98% over 5 years — management has been buying back stock, quietly handing owners a bigger slice.

reading capital allocation →

Signals, not verdicts — read from the filings above. Numbers don’t prove a moat; they show its footprint. You decide.

iv. What it’s worth — engine v0.1.0
DCF · Growth Exit 10Y
not applicable
only 1 years of FCF (need ≥3) — model not applicable
DCF · Growth Exit 5Y
not applicable
only 1 years of FCF (need ≥3) — model not applicable
Earnings Power Value
not applicable
normalized (5y-median) earnings non-positive — EPV undefined
Graham Number
not applicable
diluted EPS missing or non-positive — Graham Number undefined

Different models answer different questions — which to trust when →

Sources — the receipts
  1. 10-K · period ending 2021-12-31 · accession 0001411690-23-000010 (RevenueFromContractWithCustomerExcludingAssessedTax)
  2. 10-K · period ending 2022-12-31 · accession 0001411690-24-000013 (RevenueFromContractWithCustomerExcludingAssessedTax)
  3. 10-K · period ending 2023-12-31 · accession 0001411690-25-000037 (RevenueFromContractWithCustomerExcludingAssessedTax)
  4. 10-K · period ending 2024-12-31 · accession 0001411690-26-000007 (RevenueFromContractWithCustomerExcludingAssessedTax)
  5. 10-K · period ending 2021-12-31 · accession 0001411690-23-000010 (NetIncomeLoss)
  6. 10-K · period ending 2022-12-31 · accession 0001411690-24-000013 (NetIncomeLoss)
  7. 10-K · period ending 2023-12-31 · accession 0001411690-25-000037 (NetIncomeLoss)
  8. 10-K · period ending 2024-12-31 · accession 0001411690-26-000007 (NetIncomeLoss)
  9. 10-K · period ending 2021-12-31 · accession 0001411690-23-000010 (NetCashProvidedByUsedInOperatingActivities)
  10. 10-K · period ending 2022-12-31 · accession 0001411690-24-000013 (NetCashProvidedByUsedInOperatingActivities)
  11. 10-K · period ending 2023-12-31 · accession 0001411690-25-000037 (NetCashProvidedByUsedInOperatingActivities)
  12. 10-K · period ending 2024-12-31 · accession 0001411690-26-000007 (NetCashProvidedByUsedInOperatingActivities)
  13. 10-K · period ending 2021-12-31 · accession 0001411690-22-000007 (LongTermDebtNoncurrent)
  14. 10-K · period ending 2021-12-31 · accession 0001411690-23-000010 (CashAndCashEquivalentsAtCarryingValue)
  15. 10-K · period ending 2022-12-31 · accession 0001411690-24-000013 (CashAndCashEquivalentsAtCarryingValue)
  16. 10-K · period ending 2023-12-31 · accession 0001411690-25-000037 (CashAndCashEquivalentsAtCarryingValue)
  17. 10-K · period ending 2024-12-31 · accession 0001411690-26-000007 (CashAndCashEquivalentsAtCarryingValue)