How it works
Last updated November 2026
Penny & Moat doesn't predict prices. It takes a handful of assumptions about a business, turns them into a fair value with plain arithmetic you can check, and shows how far today's price is from it. This page explains each step, where the data comes from, and what the tool can't do.
- The fair value, step by step
- A worked example
- The starter valuation
- The target return
- The Moat Score
- The Penny Score
- The eight pillars
- Where the data comes from
- Canadian companies
- What it can't do
The fair value, step by step
For each of three scenarios (bear, base and bull) the calculator does the same five things.
- Grow the numbers. Earnings per share and free cash flow (FCF) per share grow at your rate for years 1–5, then at a second, usually slower rate for the remaining years. The default horizon is 10 years.
- Apply an exit multiple. At the end of the horizon, earnings are multiplied by an exit P/E and FCF by an exit P/FCF. That gives two possible prices in the final year.
- Blend them. The two prices are averaged using the weight you set between earnings and FCF (50/50 by default).
- Bring it back to today. The blended price is divided by (1 + target return) raised to the number of years. Dividends paid along the way, grown at the same rates, are discounted the same way and added.
- Weigh the scenarios. The three values are averaged using your probabilities (25 / 50 / 25 by default). That is the fair value. The buy-below price is the fair value less your margin of safety (30% by default).
The expected return shown for each scenario is the yearly return you would earn buying at today's price, collecting the dividends, and selling at that scenario's final-year price.
A worked example
This is the sample company in the calculator, a fictional "Example Co": price $110, EPS $6.00, FCF per share $7.00, dividend $1.50, a 10% target return over 10 years, and a 30% margin of safety.
Base case (growth 10% for years 1–5, 7% after; exit P/E 20 and P/FCF 20)
EPS in year 10 = 6.00 × 1.105 × 1.075 = 13.55 → × 20 = $271.06
FCF in year 10 = 7.00 × 1.105 × 1.075 = 15.81 → × 20 = $316.24
Blend (50/50) = $293.65 → ÷ 1.1010 = $113.21 today
Plus dividends, discounted = $113.21 + $14.41 = $127.62 base-case value
| Bear | Base | Bull | |
|---|---|---|---|
| Growth, years 1–5 / later | 5% / 3% | 10% / 7% | 14% / 10% |
| Exit P/E and P/FCF | 15 | 20 | 25 |
| Probability | 25% | 50% | 25% |
| Value today | $67.06 | $127.62 | $211.60 |
| Expected return per year | 4.3% | 11.7% | 17.8% |
| Fair value (weighted) | 0.25 × 67.06 + 0.50 × 127.62 + 0.25 × 211.60 = $133.47 | ||
| Buy below (30% margin) | 133.47 × 0.70 = $93.43 | ||
At $110 you would pay 82¢ for each $1 of estimated value, but the price is still above the $93.43 buy-below line, so the verdict is "below fair value, above buy price". Notice that about $113 of the $127.62 base case comes from the price you assume at the end. That is normal for this kind of model, and it is why the exit multiples deserve the most skepticism.
The starter valuation
Typing in a ticker fills a first-draft valuation so there is something to react to. It is built only from the company's own history:
- Base growth is a weighted average of revenue growth, smoothed EPS growth and smoothed FCF growth, kept between 0% and 20%. EPS growth is capped at revenue growth plus 5 points, because margins can't expand forever. If one figure disagrees with the others by more than 10 points, it is left out.
- Bear uses half the base growth and bull uses 1.3 times, and growth in the later years fades to 70% of the early rate.
- Exit multiples come from the company's own last ten years: bear is the 25th percentile of its past P/E and P/FCF, base is the median, bull is the 75th percentile.
- Earnings check. If earnings look unusual (for example, a one-off gain) or cash flow looks temporarily weak, the starter leans on the other measure and says so.
It is labeled "Starter valuation" everywhere until you edit a scenario. It is a starting point, not a recommendation.
The target return
The discount rate is the return you want for owning this stock. When Finnhub supplies a beta, the calculator suggests one using the capital asset pricing model: the risk-free rate plus beta times an equity risk premium (5% by default), rounded to the nearest half point and kept between 8% and 12%. You can change the rate, the risk-free input and the premium. For Canadian companies the risk-free rate defaults to the Government of Canada 10-year yield (see below).
The Moat Score
A score from 0 to 100 for how durable the business looks, judged only from up to ten years of its reported numbers. Wide is 70 and above, narrow is 45–69, and anything under 45 shows no clear moat. The points:
| Part | Points | What it looks at |
|---|---|---|
| Return on capital | 20 | Median ROIC, from 5% (none) to 25% (full) |
| Consistent returns | 10 | Share of years with ROIC above 12% |
| Pricing power | 15 | Gross margin level (60%) and how steady it is (40%) |
| Margin stability | 15 | How much the operating margin swings, relative to its level |
| Revenue durability | 15 | Years revenue per share grew, and its yearly pace |
| Cash generation | 10 | FCF margin, and how much of profit turns into cash |
| Balance sheet | 10 | Long-term debt in years of FCF (or debt to equity) |
| Share count | 5 | Buybacks help, dilution hurts |
If some parts can't be measured, the score is rescaled over those that can. With too little history, no score is shown. The score can't see brands, network effects, regulation or management, so treat it as a first filter.
The Penny Score
The partner to the Moat Score: how attractive today's price looks, from 0 to 100. Gold is 70 and above, silver is 45–69, copper is under 45. Each part is scored only when its data exists, and the total is rescaled to 100.
| Part | Points | What it looks at |
|---|---|---|
| P/E vs its own history | 20 | Where today's P/E ranks among the last ten years |
| P/FCF vs its own history | 20 | The same for price to free cash flow |
| Free cash flow yield | 15 | FCF per share as a share of price, from 2% to 7% |
| Growth priced in | 20 | Growth the price needs (a reverse calculation at the company's usual multiple) against the growth it has delivered |
| Forward PEG | 10 | P/E divided by expected growth |
| P/E vs industry | 15 | Against the median of similar companies in the Screener |
| Price vs fair value | 30 | Against your fair value, or the starter value until you set your own |
| Expected return vs target | 15 | Base-case return minus the return you want |
Together the two scores make the map in the Screener: a wonderful business at a fair price sits top right.
The eight pillars
A quick checklist of four price tests and four quality tests. The starting limits are P/E and P/FCF under 22.5, share count shrinking over five years, debt under 5 years of FCF, ROIC above 9%, and revenue, EPS and FCF growth above zero. They are deliberately simple, and you can change every limit under Customize.
Where the data comes from
- Company financials and prices come from Finnhub, on its free plan: quotes, earnings per share, free cash flow, margins, returns and ten years or more of history. Prices are delayed or end-of-day as Finnhub provides them, and the numbers are as reported by the data provider. They can be wrong, late, or restated, and the free plan covers US-listed stocks only.
- Charts are TradingView's free embedded chart.
- Canadian exchange rate and bond yield come from the Bank of Canada's public data service.
- Everything else, including your scenarios, notes and portfolio, is yours, and stays in your browser unless you create an account.
Penny & Moat reads these figures; it does not audit them. Before relying on a valuation, compare the key numbers with the company's own filings.
Canadian companies
- Companies that also trade in the US (Royal Bank, Shopify, Enbridge and many more) work with either ticker. Typing RY.TO or TSX:RY looks up the US listing, RY, because that is what the free data covers. The valuation is in US dollars, with the Canadian-dollar equivalent shown beside it at the Bank of Canada's daily rate.
- Currency check. Many Canadian companies report in Canadian dollars but trade in US dollars. The calculator compares the earnings per share it receives with the price-to-earnings ratio the same data implies. If they differ by about the exchange rate, the per-share figures are converted to US dollars, and it says so when that happens.
- Risk-free rate. Canadian companies use the Government of Canada 10-year yield from the Bank of Canada by default. The valuation is not otherwise adjusted for currency: it assumes the exchange rate stays where it is.
- Companies listed only in Canada have no free data feed. The calculator opens an empty valuation in Canadian dollars, links to where the numbers can be found, and can fill in generic placeholder scenarios. Those placeholders are not based on the company; replace them with your own view.
- The Screener has a Canada (US-listed) filter for the Canadian companies it scans.
What it can't do
- It is not back-tested. We have not tested whether high Moat Scores, high Penny Scores or valuations from this model have predicted real returns. The scores are rules of thumb built from common investing ideas, not proven signals.
- The answer is only as good as the assumptions. A fair value comes from guesses about growth and future multiples. A small change to either moves the result a lot, which is why the calculator shows a sensitivity table and a reverse calculation of what the price implies.
- Some businesses don't fit. Free cash flow means little for banks and insurers, so give earnings the full weight for them. Companies with losses, one-off gains, cyclical earnings or very short histories need extra care. The starter will say when earnings look unusual.
- It sees numbers, not the business. It can't read management, competition, regulation, accounting quality or news.
- Data can be wrong or missing. Gaps are shown as gaps, not filled in with guesses.
- It is for research and education, not investment advice. We're not licensed advisers and don't know your situation. Do your own research, or talk to someone who is qualified.
Found something wrong, or a number that doesn't look right? Use Send feedback in the More menu or write to hello@pennyandmoat.com. Real examples are how this gets better.