PRECISION OPTICS CORPORATION, INC.
POCIdata completeness 100%15 fiscal years on filePRECISION OPTICS CORPORATION, INC. earns about -11% on invested capital, and has bought back 49% 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.
| Figure | FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 |
|---|---|---|---|---|---|
| Revenue | $10.7M1 | $15.7M2 | $21M3 | $19.1M4 | $19.1M4 |
| Net income | −$102,8355 | −$928,4166 | −$144,6137 | −$2.95M8 | −$5.78M8 |
| Operating cash flow | $46,5509 | −$933,37110 | −$81,09011 | −$2.68M12 | −$3.55M12 |
| Capital expenditure | $75,92413 | $113,19714 | $16,78415 | $272,43516 | $227,20916 |
| Free cash flow (derived) | −$29,3749 | −$1.05M10 | −$97,87411 | −$2.96M12 | −$3.77M12 |
| Total debt | $017 | $4.68M18 | $5.42M19 | $4.39M20 | $3.8M20 |
| Cash & equivalents | $861,65021 | $605,74922 | $2.93M23 | $405,27824 | $1.77M24 |
| Diluted shares | 13.3M | 5.3M | 5.7M | 6.1M | 6.8M |
Superscripts are receipts. Each links to the SEC filing the number came from (full list at the bottom).
10 shares is a claim on $18.05 of net worth that earned you −$8.51 and generated −$5.56 of cash last year, against $5.59 of debt.
It earned an average -11% on invested capital over 5 years. Compare that to what it costs to fund the business.
seeing a moat in the numbers →Share count is down 49% 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.
Different models answer different questions — which to trust when →
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (Revenues)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (Revenues)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (Revenues)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (Revenues)
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (NetIncomeLoss)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (NetIncomeLoss)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (NetIncomeLoss)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (NetIncomeLoss)
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (LongTermDebtNoncurrent)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (LongTermDebtNoncurrent)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (LongTermDebtNoncurrent)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (LongTermDebtNoncurrent)
- 10-K · period ending 2021-06-30 · accession 0001683168-22-006633 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2022-06-30 · accession 0001683168-23-006801 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2023-06-30 · accession 0001683168-24-006760 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2024-06-30 · accession 0001683168-25-007305 (CashAndCashEquivalentsAtCarryingValue)