Public register · free to read, always

Every level we published. Including the bad ones.

A method you cannot check is a method you have to take on faith. So every entry level, stop and price target this product publishes is written into an append-only register the moment it goes out, with the market price it went out against. Nothing here can be edited later. Corrections are new rows that point at what they replace.

This page is free and stays free. Not as a gesture — a producer of investment recommendations has to publish its methodology summary and its twelve-month list of recommendations where anyone can reach them without paying. Putting a track record behind a paywall would be the one thing that is actually not allowed, and it would also be the wrong thing to do.

Levels published

Restatements

Window

Generated

Times are UTC, to the minute. “Market” is the price at the moment of publication — a target detached from where it started tells you nothing. Rows a later row replaced are dimmed but never removed.
Published Company Direction Market Entry Stop Target Valid to Method By
Loading the register…

The disclosures

Who produces this producer
Each row in the register names the person who produced it and their role. Where no row exists yet, no recommendation has been produced.
How a level is arrived at methodology
A fair value is reconciled from discounted cash flow, forward multiples, PEG and net asset value, with net asset value acting as the floor when the earnings case breaks down. The business is then scored against ten criteria in four families. An entry level is that fair value less a margin of safety; a stop is set a multiple of average true range below the last tranche. Criterion names and rule directions are public. The weights, the criterion interactions, the ATR multiplier and the tranche sizing are not published, and this page does not pretend otherwise.
Where the model information sits model
The four valuation methods and their failure modes, the ten criteria and their directions, and the data provenance of every input are set out at the product overview and in llms.txt. Every figure in a scorecard links back to the exact filing line it was read from.
How often it is updated frequency
Levels are reviewed weekly against end-of-day closes and restated when the underlying figures move enough to change the answer, when a company files, or when a published level expires. There is no intraday updating and none is planned.
What changed since last time changes
Restatements appear in the register as their own rows, each carrying a note saying what moved and pointing at the row it replaces. The original stays visible. Method changes are versioned; a row is always readable against the version of the method that actually produced it.
Interests that could impair objectivity conflicts
Any position held in a company at the time a level is published is recorded on that row rather than as a blanket statement, because it is per company that it matters. No holding above 0.5% of any issuer's share capital is held. No payment is accepted from any issuer, and no issuer sees a level before it is published.
What could go wrong risk
A fair value is an estimate built on assumptions, not a measurement. Move the growth rate or the discount rate a couple of points and the answer moves a long way — the DCF calculator shows exactly how far, and it is worth looking before trusting any single number, here or anywhere else. Levels can be wrong, are wrong sometimes, and stay in this register when they are. Nothing here is investment advice, nothing here knows your circumstances, and nothing here is a suggestion that any investment is suitable for you.

Why append-only, and why it is enforced by the database

A track record you are able to tidy up is not evidence of anything. So the table behind this page refuses UPDATE and DELETE outright — not by policy, not by code review, but at the database level. If a level needs correcting, the correction is a new row that names the row it replaces and says what moved. The mistake stays where it was.

That is a deliberately uncomfortable design. It means every bad call is permanent and public. That discomfort is the whole point — it is the only thing that makes the good ones mean anything.

The register is served as JSON at /api/calls, uncredentialed, CORS open. Quote it, scrape it, check the arithmetic yourself.