How to audit your own book: rank every position on the same two axes, separate the return you earn from the re-rating you hope for, write down the mistake pattern you keep repeating, and then change the rules rather than the holdings.
1. Rank every position on the same two axes, and read the four corners
The repeatable method
- Build one table with every holding, a forward multiple, and an expected multi-year growth rate — the same source and definition for all of them.
- Add the portfolio average and the index on the same two axes, so the aggregate claim is testable.
- Name the extremes out loud: most expensive, most attractive, fastest growth, slowest growth.
- Read the corners. Expensive-and-slow is where the next mistake lives; cheap-and-fast is where the next addition should come from.
- Do it on a fixed cadence, not when something feels wrong.
Here: the exercise is borrowed from a Bill Ackman shareholder letter and produces the whole-portfolio claim — "NTM P/E of 18x versus 20x… 3-5 year EPS CAGR of 14% versus 12%" — plus the named corners: most expensive GAW.L (33x) and MEDP (30x); most attractive FFH.TO (10x), AMP and EVO.ST (11x), ZTS (12x); fastest TOI.V, KPG.AX, BN (all >20%); slowest NVO (7%), DNP.WA and LVMUY (10%).
Watch for
- The corner that goes unmentioned: Games Workshop is the most expensive and among the slower growers, and it is not on any action list.
- Mixing definitions — this table uses analyst estimates while the firm's own models use its own, and the letter flags the resulting 15%-versus-20% gap on Brookfield.
2. Plot current weights against conviction and treat every mismatch as a decision you have not made
The repeatable method
- Chart the book by weight, descending.
- Beside it, list the positions in order of how much you would want to own them today, ignoring what you paid and when.
- Any large divergence is a decision by default. Name it and resolve it in one direction or the other.
- Diagnose why the divergence exists — drift from performance, a recent purchase not yet built up, or a conviction that has quietly changed.
- Fix it by adding to the under-weighted rather than only by cutting, so the correction does not become market timing.
Here: "I almost feel a little bit ashamed about it. But looking at the Portfolio today, I think some of our weights are skewed." BN ~5.0%, SPGI ~2.8% and FFH.TO ~2.6% are to rise; LVMUY ~4.9%, DNP.WA ~3.7% and NVO ~3.5% to fall. The diagnosis is given honestly: "companies like Brookfield, S&P Global and Fairfax Financial were fairly new additions. That's why they still have a lower weight."
Watch for
- A "skew" that is really a purchase schedule. Two of the three underweights were bought within the last six weeks — that is not a conviction error.
- Rebalancing only among the small positions: the six names involved are all between 2.6% and 5.0%, so the top of the book is untouched.
3. Split an expected return into the part the business earns and the part a re-rating supplies
The repeatable method
- Start from owner's earnings: expected EPS growth plus dividend yield. That is what the businesses deliver.
- Add the multiple effect separately, stating the current level, the level you assume is fair, and the number of years over which they converge.
- Report both components, not just the sum, so a reader can discount the part you assumed.
- Cross-check with an independent construction that does not need a re-rating.
- Judge the outcome against the first component alone, because the second is not in your control.
Here: owner's earnings expected to grow 13.2% a year; the FCF yield at 6.0% ("their cheapest valuation level ever") assumed to converge to a "fair" 5.0%, i.e. 16.7x to 20.0x P/FCF; "your return = 13.2% + 0.2*(20x-16.7x/16.7x) = 17.1%." The cross-check: "Expected FCF Per share growth + FCF Yield = 12% + 6.0% = 18.0%." Roughly four of the seventeen points come from the assumed re-rating.
Watch for
- "Cheapest valuation level ever" as the basis for assuming reversion — the same sentence has appeared in this archive since January while the multiple kept falling.
- A "fair" yield chosen by the person who benefits from the answer, with the words "I'm probably even being conservative here" doing the work of an argument.
4. Score the portfolio in look-through cash flow, per position and per share
The repeatable method
- For each holding, multiply your share count by the free cash flow per share. That is the cash the business generates on your behalf.
- Total it, and restate it in per-month, per-week and per-minute terms so it is felt rather than read.
- Track the series over years and separate the growth that came from the businesses from the growth that came from your own contributions.
- Rank positions by cash contribution as well as by market value — the two orders will differ, and the difference is informative.
- Set the goal in cash terms, and state the assumptions the projection needs.
Here: $106,119 a year, $8,843 a month, $0.20 a minute, up from $96,156 in the
July update — with the honest caveat "adding to Our Portfolio every single month definitely helps." The per-position sheet is published with share counts:
EVO.ST contributes $12,000 from 7.7% of the book, and
FFH.TO $5,757 from
30 shares and 2.6%. The goal, $1 a minute, is projected for 2032 on $50,000 added monthly and 12% compounding.
Watch for
- A rising cash figure driven mostly by contributions. At $50,000 a month, new money dwarfs the compounding in the early years, and the projection does not separate them.
- Cash per position as a hidden concentration measure: cash contribution and weight diverge sharply here, and the cash view is the one that matters for the stated goal.
5. Write down the pattern of your own mistakes, then change the rule rather than the holdings
The repeatable method
- Review several years of decisions and look for the recurring shape of the errors, not the individual names.
- State it in one sentence, plainly enough that it constrains future behaviour.
- Translate it into a rule change — a tighter screen, a smaller maximum count, a narrower geography.
- Publish the new rules as a list so they can be checked against later decisions.
- Then apply them position by position, and accept that some current holdings will fail.
Here: "Almost every time I made a buy decision because I thought the company was somewhat quality but definitely cheap, it was a mistake in hindsight. I think it's important to become even stricter with our selection criteria." The rules that follow: developed countries only; 15-20 stocks, down from 21; low turnover ("activity and costs harm our results"); no market timing; and eight required characteristics ending in "trading at fair valuation levels". Step 5 is deferred to Part II — "on Thursday, we are going to run over every single position."
Watch for
- The tension with the firm's own flagship format: Best Buys works by shopping the worst performers of a pre-vetted universe, which is a cheapness-first habit. Subordinating cheapness to quality changes what that list is for.
- Rules announced and not yet applied. Until the count actually falls to 15-20, this is an intention.
6. Put your realised return next to your operating statistics, and sit with the gap
The repeatable method
- Tabulate the portfolio against its benchmark on balance sheet, capital intensity, returns on capital, margins, cash conversion, historical growth and forward growth.
- In the same table, put the realised total return over three and five years.
- If the operating measures win and the return loses, name the reason: multiple compression, timing of purchases, or a thesis that is simply wrong.
- Decide what evidence would make you conclude the third, and by when.
Here: the portfolio beats the S&P 500 on interest coverage (45.5 vs 14.6x), leverage (0.97x vs 1.8x), CAPEX/revenue (3.7% vs 19.2%), ROE (33.3% vs 18.0%), ROIC (17.7% vs 14.5%), gross margin (63.8% vs 34.4%), profit margin (27.1% vs 17.5%), cash conversion (175% vs 70-90%), five-year revenue and EPS growth, forward earnings growth (18.8% vs 13.0%) and forward P/E (18.5x vs 20.4x) — and loses on the only realised measure: 3-year CAGR 1.3% vs 20.1%, 5-year 5.9% vs 13.1%. Step 3 is answered implicitly (the multiple compressed) and step 4 is not attempted.
Watch for
- "CAGR since IPO 18.8% vs 9-11%" placed in the same block — a differently measured, differently dated number that softens the two that matter.
- A PEG ratio that is worse than the index (1.8x vs 1.5x) sitting inside a valuation block presented as favourable.
7. Apply a new rule to every position, including the ones you like
The repeatable method
- Write the new rule, then run the entire book through it mechanically before deciding anything.
- List every holding that fails, without exception, and give a reason for each one you nonetheless keep.
- Check the rule against your own tables — a rule contradicted by a printed number in the same document is not yet a rule.
- Publish the exceptions. A framework's credibility lives in the names it keeps despite itself, not in the ones it cuts.
Here: three failures go unaddressed.
GAW.L carries the highest multiple in the book (33x), the lowest modelled return (6.68%) and a
HOLD rating at 51% above fair value, and is not on the reduce list.
III.L is
down 56% in twelve months and is not mentioned outside the tables, in an issue whose stated purpose is to ask "what is not going well". And the rule "developed countries only" is stated in one section while
DNP.WA — Polish, and an emerging market on most classifications — is cut for slow growth in another, with the two never connected.
Watch for
- Reductions justified on growth when a cleaner rule (geography, or the valuation bar) would have reached the same conclusion — using the weaker reason leaves the rule untested.
- Part II as the place where this gets resolved, or does not: the count has to fall from 21 to 15-20, so at least one name must actually go.
Methods distilled from the archived Compounding Quality post for personal study. Not investment advice.