Worked theses
Johnson & Johnson: no operating line
A worked example that ends badly. Three of the four figures a reader would most want to watch on Johnson & Johnson cannot be tested against its filings.
By Javier SanzPublished
Founder of ValueScreener. Built Ninety Nine, a securities services provider, and sold it to a tier-one global bank; ran operations and internationalization at Alpaca, the brokerage API.
Who writes thisEditorial processLinkedIn (opens in a new tab)X (opens in a new tab)
A worked example. One company, the accounts it filed, and the method run on them in the open. The figures are the company’s own and each one names the filing it came from. The reading and the conditions are written as a reader might write them, and are not a view on the security, a valuation, or a suggestion to do anything.
One company, its own filed accounts, and the method run on them in the open. This example ends somewhere uncomfortable, and it is in the set for that reason: run honestly, the method sometimes reaches the answer that the guardrails a reader would need here are ones the filings cannot support.
Nothing below is a view on Johnson & Johnson. The conditions in the third section belong to a hypothetical reader, not to ValueScreener.
The filed figures
Ten fiscal years of Johnson & Johnson 10-K filings are on record here, FY2016 to FY2025, with no gaps.
| Fiscal year and filing date | Gross margin | Operating margin | Net margin | Free cash flow | Current ratio |
|---|---|---|---|---|---|
| FY2016, filed 2017-02-27 | 69.69 | n/a | 23.01 | 15.54 | 2.47 |
| FY2017, filed 2018-02-21 | 66.72 | n/a | 1.70 | 17.78 | 1.41 |
| FY2018, filed 2019-02-20 | 66.79 | n/a | 18.75 | 18.53 | 1.47 |
| FY2019, filed 2020-02-18 | 66.42 | n/a | 18.42 | 19.92 | 1.26 |
| FY2020, filed 2021-02-22 | 65.58 | n/a | 17.82 | 20.19 | 1.21 |
| FY2021, filed 2022-02-17 | 70.28 | n/a | 26.52 | 19.76 | 1.35 |
| FY2022, filed 2023-02-16 | 69.25 | n/a | 22.43 | 17.19 | 0.99 |
| FY2023, filed 2024-02-16 | 68.82 | n/a | 41.28 | 18.25 | 1.16 |
| FY2024, filed 2025-02-13 | 69.07 | n/a | 15.84 | 19.84 | 1.11 |
| FY2025, filed 2026-02-11 | 67.88 | n/a | 28.46 | 19.70 | 1.03 |
Margins in percent, free cash flow in billions of US dollars. Read from
GET /api/public/retrotest on 2026-09-16.
The operating margin column is not a rendering failure and it is not zero. Asked for a filed history of it, this product answers: "10 filed fiscal years on record for Johnson & Johnson, FY2016 to FY2025, and not one of them reports operating income. The history is here; this particular line is not in it. A guardrail on a figure the company never files cannot break, and cannot protect you."
The gross margin in the most recent filing is 67.88 percent (FY2025 10-K, filed 2026-02-11 (opens in a new tab)) and the net margin in the same statement is 28.46 percent (FY2025 10-K, filed 2026-02-11 (opens in a new tab)).
What they say
Put the two margin columns side by side across the same ten filings. Gross margin ran between 65.58 and 70.28, a range of 4.70 points. Net margin ran between 1.70 and 41.28, a range of 39.58 points.
That is the same company, the same decade and the same statements. Whatever moves the bottom line here is arriving below the gross line and is large enough to swamp it. This product reads the statements, not the notes, so it can measure that gap and it cannot tell you what filled it. It will not guess: the honest output is the distance between the two ranges, 39.58 points against 4.70, and the observation that the net line moved more than twenty points between consecutive filings twice, FY2016 to FY2017 and FY2023 to FY2024.
Now the part that decides whether any of this can become a monitored thesis. Four figures a reader would most plausibly want to watch on a company of this shape, and what is available for each.
| Figure | Filed history | What the product says | | --- | --- | | Operating margin | 0 of 10 years | The filings do not carry this line | | Return on invested capital | none | No honest test against the past | | Dividend streak | none | No honest test against the past | | EV to EBIT | none | Moves with the price, so it has no filed history |
The first is a fact about how this company presents its accounts, and the product marks it permanent: "This is how this company presents its accounts. It will not change with the next filing." The second and third are facts about the figures rather than the company: both are assembled from inputs that cannot be rebuilt year by year with the same formula, "so any history we drew for it would be a different number wearing this one's name". The fourth needs a closing price for every past year, and the price archive here is five years deep by decision while these filings are ten.
Those four are blank on the company catalogue too, and the blank is the same
blank: GET /api/public/companies, read on 2026-09-16, carries no return on
invested capital and no EV to EBIT for this company. Not a zero, not an
estimate, and not a figure borrowed from somewhere that would compute one.
The guardrails a reader would write
Two figures on this company have a full filed history and can carry a rule. Here is what happens when a reader writes rules on them.
gross_margin gte 65. False in 0 of the 10 filed years. The lowest gross
margin in the record is 65.58, in FY2020, which means the rail sits 0.58
points under the lowest figure in a decade. It is not a test of anything. It is a
sentence that will be true every night until something happens that has not
happened in ten years, and if that something happens it will be visible in the
news before it is visible in a 10-K.
fcf gt 15000000000. False in 0 of 10. The lowest free cash flow in the
record is 15.54bn, in FY2016. The same criticism applies, in the same words.
net_margin gte 15. False in 1 of 10, FY2017, at 1.70. This one can
break, and it has. But look at what broke it: one year in which the net
margin fell 21.31 points while the gross margin moved 2.97. A rail on the
net margin here is a rail that fires on whatever arrives below the gross line,
which is the thing this product cannot read and therefore cannot explain to
the reader it just emailed.
current_ratio gte 2.0, the line from Graham's chapter 14, is false in 9
of the 10 filed years: every year except FY2016. A reader who brought that
test to this company would have written a rule that was already broken, and a
rule that is already broken fires once and then says nothing.
So: two rails that cannot break, one that breaks for reasons the product cannot attribute, and one that is broken before it starts.
What would falsify this
The reading here is about coverage rather than about the company: that a thesis on this business cannot be monitored on the figures that would carry it. Three things would show that reading to be wrong.
A filing that presents an operating income subtotal. The product marks the gap permanent because it is a presentation choice rather than a missing document, and presentation choices change. On the filing that changed it, the coverage answer changes with it, the figure becomes testable from that year forward, and the strongest objection on this page goes away.
A gross margin under 65 in a filed year. That would turn the first rail from decoration into a live test and would be the first evidence in the record that the stable line can move at all.
A net margin that sits inside a five point band for three consecutive filings. The claim above is that the bottom line here is driven by things the gross line does not see. Three quiet years in a row would be the first real evidence against it.
Two things are worth saying plainly, because the whole point of this format is that the fourth section is not a summary.
A reader can still write this thesis. They would write it on the two rails that cannot plausibly break, know that is what they are holding, and carry the actual reasons in the words rather than the numbers. This product has a place for exactly that, a written pillar with a review cadence that comes back and asks, because a reason that cannot be measured is still a reason and pretending otherwise is how numbers get invented.
And a reader can decide the company is not one they can monitor here. That is a legitimate output of running the method, it costs nothing to reach, and producing it was the only way this page could be honest.
What this leaves out
One company, ten filed fiscal years, and a method. Not a sample of anything, not a view on Johnson & Johnson, and not a recommendation to do anything at all. A figure this product cannot read is not a judgement about the company.
The absent operating income is a statement about what these filings present and what this product reads from them. Another data provider may construct an operating income for this company by subtracting selected expense lines. This one does not, because that subtotal would be ours rather than the filer's, and a guardrail on a number we invented would break for reasons only we could explain.
Accounts filed before a company began tagging its statements in XBRL are not machine readable and are outside every figure on this page. Nothing here uses a share price.
The four thresholds are lines chosen so the retro-test has something to answer. Only one of them, the 2.0 current ratio, comes from a published source, and none is recommended.
Past filings do not indicate future results.