← Analysis page  ·  Pieter Slegers hub  ·  Research hub

Actionable insights — $100,000 Annual Cash Flow (Portfolio Update)

Publishing a buy-below price for every holding, building a portfolio return bottom-up without a re-rating assumption, tracking your own book's cash-flow yield as a time series, and reading breadth from the gap between two volatility indices.
2026-AUG-02 · Compounding Quality (Substack) · Pieter Slegers / Team Compounding Quality · read ↗ · full analysis · transcript
How to read this page: this is the most process-rich issue in the batch because the whole book is published with its workings. The transferable material is the reporting architecture — a fair-value threshold, a bottom-up return, a portfolio-level valuation time series, and an explicit BUY/HOLD per name — rather than any single holding. Written post, so no timestamps.

1. Define fair value as a required-return threshold, and publish a buy-below price for every holding

The repeatable method
  1. Fix the return you require — 10% a year here — and hold it constant across every name and every period.
  2. For each holding, solve for the price at which your earnings-growth model delivers exactly that return. That price is the fair value, and it is a decision threshold, not a valuation opinion.
  3. Publish or record it before the market moves, so the buy decision is pre-made and the emotional work is done in advance.
  4. Express the gap as a percentage so positions are directly comparable across currencies and price levels.
  5. Recompute monthly. A fair value that only moves when you want to buy is not a threshold.
Here: "The Fair Value is the price at which the expected yearly return equals 10% in our Earnings Growth Model. I consider the company undervalued when the stock price is lower than its Fair Value." Nineteen holdings, each with a first-purchase date and a gap — CSU.TO +139.1%, TOI.V +104.2%, AMP +7.4%, and only GAW.L (-39.6%) and MEDP (-16.6%) above fair value.
Watch for

2. Build the portfolio's expected return bottom-up, with no re-rating assumption

The repeatable method
  1. For each holding, take current-year EPS and a forecast three years out. Convert the total change into an annual rate.
  2. Add the dividend yield. That sum is the expected return with the multiple held constant — no assumption about sentiment at all.
  3. Weight and sum across the book to get a single portfolio figure.
  4. Publish the per-name components so any single forecast can be challenged without invalidating the whole.
  5. Treat any multiple expansion as upside on top of this number, never as part of it.
Here: EPS 2025 → EPS 2028 plus dividend yield for all nineteen names, totalling 12.71% — "an expected growth of 12.7% looks attractive… And as Our Portfolio trades at its cheapest valuation level ever, you could even expect a higher return than 12.7%." Range: KPG.AX 30.50% down to NVO 3.43%.
Watch for

3. Track your own portfolio's cash-flow yield as a multi-year time series

The repeatable method
  1. Each period, compute the aggregate free cash flow of your holdings divided by their aggregate market value.
  2. Record it. One reading is meaningless; a decade of readings tells you where your book sits relative to its own history.
  3. Use it to answer the question you cannot answer stock by stock: is the portfolio as a whole cheap or expensive versus itself?
  4. Pair it with the look-through cash-flow figure, so you can see whether a rising yield comes from more cash or a lower price.
  5. Report both at the same cadence so the trend, rather than the level, is the signal.
Here: the portfolio's FCF yield by year — 4.2% (2015), 5.1% (2018), 3.3% (2021 trough), 4.7% (2024), 5.6% (2025) and 5.8% right now, the highest of the twelve readings. "Our Portfolio is also cheaper than ever." Alongside it, look-through free cash flow of $96,156 a year, up from $65,520 three weeks earlier.
Watch for

4. Read breadth from the gap between index volatility and average single-stock volatility

The repeatable method
  1. Track two measures: expected volatility of the index (VIX) and the average expected volatility of its constituents (VIXEQ).
  2. Compute the gap. A wide gap means individual stocks are moving a lot but in opposite directions, so the moves cancel at index level.
  3. Interpret it as dispersion: the market is trading company-by-company rather than as a single theme.
  4. Corroborate with a sector proxy — if the leading theme's index is falling while the broad index is flat, money is rotating rather than leaving.
  5. Treat it as a description of the current regime, not a timing signal.
Here: "Right now, the gap between the two is much wider than usual… many of these stocks are moving in opposite directions, so their gains and losses largely offset each other at the index level. This could be a sign that the AI and semiconductor trade is cooling off." The corroboration: "While the S&P 500 was flat, the iShares Semiconductor ETF declined by 20% in mid July," and quality names held up over the same month.
Watch for

5. Support the "prices follow fundamentals eventually" claim with someone else's decade, not your own anecdote

The repeatable method
  1. Find a long, published record that reports both owner's earnings growth and share-price return for the same portfolio, year by year.
  2. Split it into sub-periods where the two diverged, in both directions.
  3. Show the full-period figures, where they converge. The convergence is the claim; the divergences are its cost.
  4. State the duration of the divergences explicitly — this sets a realistic expectation for how long you may be wrong-looking.
  5. Prefer third-party data to your own; it cannot be accused of being selected.
Here: François Rochon's Giverny Capital table — 2005-2011: owner's earnings +10% a year, prices +6%; 2012-2014: owner's earnings +16%, prices +28%; and across 2005-2014 both at 12%. "In the short term, stock prices are driven by valuation changes. In the long term, they follow owner earnings." Note the divergence lasted seven years.
Watch for

6. Give each holding an explicit BUY or HOLD, and let some of them read HOLD

The repeatable method
  1. Rate every position, every period, using the same threshold you would apply to a new purchase.
  2. Be willing to publish HOLD on a name you like. A book where everything is a BUY is not being marked, it is being defended.
  3. For each HOLD, state whether the constraint is valuation, position size or thesis — the three have different consequences.
  4. Separate the rating from the decision to sell: expensive is a reason not to add, not automatically a reason to exit.
  5. Revisit HOLDs specifically when the market falls; they are the positions where new money should not go.
Here: seventeen BUYs and two HOLDs. GAW.L is HOLD on the numbers — 33.1x forward against a 23.0 average, a 6.3% expected return, and a reverse DCF requiring 10.9% against 7.0% expected — while remaining the book's best ten-year compounder at +46.9% a year and up 16.5% YTD. LVMUY is HOLD despite every valuation column reading cheap, with no reason given.
Watch for

7. Classify the book by mechanism and check the weights against the story you tell about it

The repeatable method
  1. Assign every holding to one of a small number of mechanisms — founder-led, monopoly/oligopoly, share-count shrinker, and so on.
  2. Compute the weights. This is the portfolio's actual structural bet, as opposed to its stated philosophy.
  3. Compare with how you describe the portfolio. A mismatch is worth resolving in one direction or the other.
  4. Ask what single condition would hurt the dominant category, and whether the smaller categories genuinely offset it.
Here: "Owner-Operators (66.6%): still led by the founder/family; Monopolies/Oligopolies (26.9%); Cannibal Stocks (6.5%)." Two-thirds in founder-led businesses is a much larger bet on individual key people than the tollkeeper language used elsewhere in this archive implies — and this archive has already documented one founder-governance failure at KPG.AX.
Watch for

8. Reconcile the published holdings list against the transactions you announced

The repeatable method
  1. After each period, list the transactions announced since the last report and tick each one off against the holdings table.
  2. Investigate any gap immediately — a missing position is either a reporting lag, an unfilled order or an unreported change of mind.
  3. Note the reason in the report so readers (and your future self) are not left to infer it.
  4. Do the same for exits: a position that silently disappears is the most important thing a portfolio report can hide.
Here: SPGI was bought for $50,000 with a $425 limit on 26 July and appears in neither the fair-value nor the owner's-earnings table published on 2 August. The most likely explanation is a spreadsheet lag or an unfilled limit order — but the post does not say which.
Watch for

Methods distilled from the archived Compounding Quality post for personal study. Not investment advice.