Lesson 2 of 7
The table this filer gives you
Nine filed years, seven rows, every column traced to its accession number, and the four rows a stable-business table would have that this one cannot.
By Javier Sanz
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)
In one minute
- Build the whole table before explaining any row of it, and write the accession number beside every column.
- Four rows a stable-business table would carry are absent here, and the absences are the subject of the next lesson.
- Read each row alone, then the rows against each other, then write the questions. In that order.
Seven rows, nine filed fiscal years, one company. Every figure below was read from the annual report named in the column, and no figure comes from anywhere else.
Three margins across nine filed fiscal years
- Gross margin
- Operating margin
- Net margin
Show the numbers
| Gross margin | Operating margin | Net margin | |
|---|---|---|---|
| FY17 | 21.54% | 11.13% | 9.21% |
| FY18 | 22.49% | 11.01% | 10.47% |
| FY19 | 21.60% | 9.42% | 8.17% |
| FY20 | 20.03% | 7.77% | 6.31% |
| FY21 | 22.10% | 11.61% | 9.48% |
| FY22 | 24.20% | 14.68% | 12.52% |
| FY23 | 26.36% | 17.26% | 13.73% |
| FY24 | 27.86% | 18.81% | 14.49% |
| FY25 | 25.11% | 15.69% | 12.28% |
The table
| Figure | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 |
|---|---|---|---|---|---|---|---|---|---|
| Revenue $m | 5,815 | 7,143 | 7,224 | 7,078 | 8,790 | 10,276 | 9,995 | 10,847 | 10,967 |
| Revenue growth % | n/a | 22.84 | 1.13 | -2.03 | 24.20 | 16.90 | -2.73 | 8.52 | 1.11 |
| Gross margin % | 21.54 | 22.49 | 21.60 | 20.03 | 22.10 | 24.20 | 26.36 | 27.86 | 25.11 |
| Operating margin % | 11.13 | 11.01 | 9.42 | 7.77 | 11.61 | 14.68 | 17.26 | 18.81 | 15.69 |
| Net margin % | 9.21 | 10.47 | 8.17 | 6.31 | 9.48 | 12.52 | 13.73 | 14.49 | 12.28 |
| Return on equity % | 11.82 | 15.72 | 11.63 | 9.16 | 15.74 | 21.42 | 20.19 | 20.48 | 16.28 |
| Free cash flow $m | 833 | 560 | 351 | 899 | 1,236 | 915 | 1,193 | 937 | 1,026 |
| Inventory to total assets % | 77.09 | 74.17 | 72.71 | 69.21 | 68.61 | 71.07 | 72.30 | 72.66 | 73.54 |
Revenue growth for fiscal 2017 is n/a because the prior year is not in this window on the same revenue definition. It is not zero.
The filing behind each column
| Fiscal year | Filed | Accession number |
|---|---|---|
| FY2017 | 2017-12-21 | 0000794170-17-000065 |
| FY2018 | 2018-12-20 | 0000794170-18-000055 |
| FY2019 | 2019-12-26 | 0000794170-19-000067 |
| FY2020 | 2020-12-22 | 0000794170-20-000066 |
| FY2021 | 2021-12-17 | 0000794170-21-000079 |
| FY2022 | 2022-12-19 | 0000794170-22-000049 |
| FY2023 | 2023-12-21 | 0000794170-23-000066 |
| FY2024 | 2024-12-20 | 0000794170-24-000051 |
| FY2025 | 2025-12-19 | 0000794170-25-000112 |
The four rows that are not here
A stable-business table of this kind carries a current ratio and a debt-to-equity ratio. Neither appears above, and neither is missing data. Interest coverage and a quick ratio are absent for the same kind of reason.
Resisting the urge to substitute something is the discipline. The next lesson is entirely about the absences and what they say, and nothing is put in their place until then.
The three passes
Read each row alone: direction, worst year, and whether it moved as a drift or as a step. Then read the rows against each other: gross margin and operating margin rose together from fiscal 2020, so something below the gross line moved too, or the same cause produced both. The table cannot say which.
Then write three or four questions, each in the form of what would have to be true for a movement to be what it looks like. Writing the questions before opening a note is the step people skip.
Check yourself
Why is revenue growth for the first year n/a rather than zero?
- Because the company did not report revenue that year
- Because the prior year is not in this window on the same revenue definition, so the growth rate cannot be computed
- Because the fiscal year was shorter
Show the answer
Answer: B.
Zero would report a year of flat revenue, which is a different claim from not having computed one.What do the four absent rows tell you?
- That the data source is incomplete
- That this filer's statements do not produce them, for reasons the next lesson sets out
- That the ratios are not useful for homebuilders
Show the answer
Answer: B.
They are not missing data and nothing is substituted for them until the absences themselves have been read.Operating margin ranges from 7.77 to 18.81 percent across nine years. What follows?
- That the business deteriorated and then recovered
- That a single year's reading says very little at this company, which is why the window and the normalisation both matter
- That the margin is trending upward
Show the answer
Answer: B.
A range of 11.04 points on a figure whose midpoint is around thirteen is large relative to its level. What caused it is not settled by the table.Sources
- Toll Brothers, Inc., annual reports on Form 10-K for fiscal years 2017 through 2025, accession numbers as listed in the table above, for revenue, gross profit, operating income, net income, total stockholders equity, operating cash flow, capital expenditure, inventory and total assets.
What this leaves out
- Nine fiscal years is this window, not the company's whole history, and the previous lesson states what it contains and what it does not.
- Return on equity here is net income over closing equity for the same year. Computing it over average equity gives a different series, and neither is more correct than the other provided the choice is stated.
- Free cash flow here is operating cash flow less capital expenditure, as reported in each year's cash flow statement.
- Nothing here is a view on Toll Brothers or on any security, and none of it describes what any figure will do next.