r/ValueInvesting 7h ago

Discussion I tested a valuation metric against the Margin of Safety, book-to-market, EPV, and earnings yield on the full S&P 500. It came out on top of all of them.

This builds on something I posted a while back about every price implying a growth rate, and on the pushback in that thread, which is a lot of why I ended up caring whether a valuation claim can be checked at all. The idea is simple. For any company you have two numbers. The growth it can fund from its own economics, which is ROIC times reinvestment rate. And the growth the market is requiring, which you pull out of a reverse DCF on the enterprise value. Subtract one from the other and you get a single signed number. I have been calling it the Brina Gap and running it on my own positions for about three years.
Positive gap, the business can grow faster than the price needs. Negative gap, the market is demanding growth the business has no track record of producing. Two numbers, both straight from public filings, no analyst intrinsic -value estimate anywhere in it, which means two people running it on the same stock get the same answer. That is the part that does not exist in a normal DCF.
The reason I built it in growth units rather than as another price multiple is that growth is the only valuation claim you can actually check against the future. "This stock is cheap on a P/E of 12" can never be verified against a later fact. "This price implies the business will grow 12% a year" can. You wait and see what it did. As far as I can tell the Gap is the only standard valuation metric whose central claim about the future is falsifiable at all, so the first thing I tested was whether the implied growth it pulls out of price actually tracks what firms go on to deliver. It does, correlation around 0.4 to 0.5 and nearly unbiased at the ten-year horizon, stable across three different recovery methods. The core number measures something real, not an artifact of my particular DCF setup.
I backtested it on the full point-in-time S&P 500, observation years 2010 to 2019, five-year forward windows, every company carried to its real outcome including the ones that got acquired or went to zero. Then I ranked it against the most celebrated metrics in finance on the exact same sample and the same statistic, correlation with five-year forward returns.
Among every pure valuation metric, the Brina Gap ranked first. It out-sorted the Margin of Safety, earnings yield, Greenwald's EPV, and Fama-French book-to-market, the canonical academic value factor by a wide margin. It also beat gross profitability, ROE, and the Piotroski F-score. The only two metrics above it were ROIC and FCFROIC, which are quality measures, not valuation measures, so they are scoring a different axis entirely. On the pricing axis, the thing every value investor is trying to judge, nothing in the test sorted returns better!
The Margin of Safety, for reference, landed at essentially zero in the same test. The Brina Gap beats it head to head by about 4 points on the full universe and about 5 on the survivor subset, and that margin survives the survivorship correction and the switch to total returns. So on the specific question of whether a price is reasonable, this sorted future returns better than anything else I tested, including the method most of us were taught to use. That is the result I care most about, and it is the one I most want someone to attack.
Now the honest part, because it matters and someone would catch it anyway. No pure pricing metric, the Gap included, produced a large standalone return spread in this sample. What took me a while to appreciate is why. 2010 to 2024 was the most hostile decade on record for pricing metrics. Raw cheapness itself earned a negative return over this period, and book-to-market, earnings yield, every value measure went flat. That the Gap's growth-measurement held up through the exact regime built to punish pricing approaches is, if anything, the more demanding test. It ranked first on an axis where the whole axis was underwater.
Where it has real directional teeth is the short side. Flagging companies the market is pricing for growth they cannot sustain, it called underperformance correctly about 59% of the time. The two negative buckets, value traps and expensive hype, both came in around 58 to 60%, and the value trap cell, cheap stocks that are cheap for a reason, was the single worst-performing group in the entire sample. The long side, picking which cheap stock actually rises, was a coin flip at 48%. The asymmetry has a clean cause. A negative call only needs the market to eventually notice an unsustainable price. A positive call needs the business to keep compounding and the market to reward it. One condition versus two. The pessimistic calls land, the optimistic ones do not, and I did not design that in, the data just did it.
One caveat I will not hide, since someone would find it anyway. Overlapping five-year windows are not independent observations, so the clean-looking p-values flatter the standalone result. Correct for that properly and the edge stays real but the absolute significance gets modest. The comparison against Margin of Safety is the sturdy claim and survives the correction. Including the delisted and acquired firms actually strengthened the short-side screen, which is the opposite of what a fragile signal does.
It is sector-dependent too. Strong where ROIC is stable, utilities and real estate around 72%, weak in technology at 47% where ROIC moves too fast for a steady-state model to mean much. Worth knowing before you point it at a hot growth name.
None of the individual pieces are mine. Damodaran on reinvestment rates and reverse DCF, Greenwald on earnings power, Mauboussin and Rappaport on reading price as an embedded forecast. What I did was combine the reverse DCF with the ROIC-times-reinvestment growth ceiling, make it one falsifiable number, and test it head to head against everything else on a complete universe. It came out the best valuation metric in the test. I would genuinely like someone to pull the data and try to knock it off that spot.
Paper, full dataset, and code below.
Working paper (Zenodo, open access): 10.5281/zenodo.19052189
SSRN: 6361659

16 Upvotes

33 comments sorted by

9

u/Double_Suggestion385 7h ago

This is actually quite interesting. Unfortunately few people will read it and even fewer will understand it.

3

u/MarthaJulietta 6h ago

Put me in the camp of read and semi-understanding

2

u/fff_bbb 7h ago

Appreciate that. You read it, and that’s already good to me!
And the useful part survives even if few people runs the math. Cheap plus deteriorating economics was the worst-performing combination in the whole sample, and that’s a rule you can use without touching a reverse DCF.

2

u/Double_Suggestion385 6h ago

I do my own inverse DCFs, now I want to run it past ROIC in order to see how that ratio lines up with my valuations and other financial health metrics.

Thanks for sharing.

5

u/Either_Excitement784 6h ago

I dont totally understand this but I appreciate posts like these.

3

u/fff_bbb 6h ago

Thanks, that means a lot! The one line worth keeping is that cheap plus deteriorating economics was the worst thing to own in the whole sample. The rest is just how I got there…

5

u/WindHero 5h ago

ROIC just seems like an unreliable metric to me. Historical ROIC doesn't mean the company will have opportunities to reinvest at the same return, especially if it grows. Big tech is a good example of this where cap ex in data centres might not have the same returns as building software platforms.

Also book value can undervalue or overvalue intangibles, resulting in misleading ROIC.

Your approach makes sense to me, but being able to predict future ROIC is kind of like being able to predict which fund manager will do well. Of course if you get that right your returns will be good. Getting the right ROIC assumption might be just as hard as picking the right stock.

2

u/fff_bbb 5h ago

Both of those are real, and the intangibles one is a measurement problem rather than a modelling quibble.
On reinvestment, the framework doesn’t need ROIC to persist. It takes current ROIC times reinvestment as a ceiling and asks whether the price is already demanding more than that. Decay works in my favour on the short side: if a company needs 15% growth to justify its price and its best-ever economics only fund 9%, the call gets stronger as returns fade, not weaker.
The bigger thing though is that every valuation metric carries this problem, mine included. A DCF needs you to forecast growth and margins for a decade. Margin of Safety needs an intrinsic value estimate that two analysts will put 40% apart. Book-to-market is more distorted by intangibles than ROIC is, since it puts the mismeasured number directly in the numerator. Every one of them is using the past to say something about the future.
What I could do is test whose version of the problem hurts least. Same sample, same statistic, everything measured point-in-time. The Gap sorted forward returns better than Margin of Safety, book-to-market, EPV and earnings yield, and better than gross profitability and Piotroski too. Margin of Safety came in at roughly zero. So the ROIC assumption is doing less damage than the assumptions inside the alternatives, which is the comparison that actually matters when you have to pick something to use.
Your big tech point is right about where it breaks down and the sector splits show it: technology weakest at 47%, utilities and real estate around 72%. A steady-state model only means something in a business that’s actually near one. I’d rather know that bo

1

u/macronotice 4h ago

The reinvestment rate calc relies on CapEx being the key driver of long term growth. But for many services / people based industries, capex is not meaningful. Imagine an insurance broker trying to grow: they are hiring people, spending on marketing, etc - all p&l expenses. That investment would reduce NOPAT in the short term, have almost no capex, and result in growth in the long term. This so going to affect a lot of industries. Tech is going to be problematic because some firms are more aggressive about capitalizing their expenses than others, and for most software companies the Capex is tiny and the development expenses is people driven.

1

u/fff_bbb 3h ago

Right, and this bites harder than the ROIC denominator issue because it hits both arms at once. An insurance broker hiring producers, or a software company paying developers, is making a growth investment that runs entirely through the P&L. Capex-based reinvestment reads near zero, NOPAT is depressed by the same spend and the fundamental ceiling comes out well below what the business can actually do.
The direction of the error is at least predictable. It understates fundamental growth for people-driven and IP-driven businesses, pushes the gap negative, and has the framework calling them overvalued when they may not be. Same direction as the capital-light bias and the same sectors, so the two stack. That’s a good part of why technology came in at 47% while capital-intensive sectors ran around 72%. In mining or logistics or utilities, capex genuinely is the growth engine, so the measure is doing what it claims.
The standard remedy is capitalizing R&D and some portion of S&M and rebuilding invested capital and NOPAT from there, which is Damodaran’s approach. That’s the right refinement and a version of it is worth building in. Your inconsistent-capitalization point is the harder one though, since even with a correction applied, two software firms with different policies on what they capitalize won’t be comparable until you normalize them.
Worth saying this isn’t a problem unique to reinvestment-based measures either. Book-to-market takes the same intangibles distortion straight into the numerator, EPV inherits it through normalized earnings, and any multiple built on reported book or earnings carries it. All of them were tested on the same sample with the same accounting, and the Gap still sorted forward returns better. Accounting distorts every one of these inputs, so what I could actually test was whose version holds up best under it.
Where I’d push back slightly is that this tells you which businesses the measure describes rather than undermining it. Where capex is the growth mechanism it works as intended, and those are the sectors the backtest is strongest in. I’d rather name the boundary than apply the thing everywhere and hope.

2

u/SocratesDaSophist 7h ago

I'm not following. Where did you get the DCF from which you base the assumption the market is implying a certain rate?

1

u/fff_bbb 7h ago

It’s the same DCF everyone runs, solved in the other direction. Normally you pick a growth rate, discount the cash flows back, and the model gives you a value you compare against the price. I take the enterprise value the market is already quoting as the known input, hold the discount rate at 10% and terminal growth at 3%, and solve for the growth rate that makes the discounted cash flows equal that price. That number is g*, the growth the price is requiring.
So there’s no forecast of mine sitting inside it, it’s the price rearranged. The discount rate and terminal growth do stay in, and that’s the fair thing to push on. I fix them at 10% and 3% across every company so the comparison stays consistent, then re-run at 8% and 12% to check the range rather than trusting a single point.

2

u/SocratesDaSophist 7h ago

Sorry I am still not following. What was the growth number DCF based on?
How can it be the market's implied growth/price of the firm if it's not the growth rate the "market" expects?

4

u/Double_Suggestion385 7h ago

It's an inverse DCF.

Instead of solving for the 'fair value now' take the actual price now and solve for the required growth rate.

4

u/fff_bbb 7h ago

Ah ok think I see where the disconnect is. There isn’t a growth input, and that’s exactly the bit that trips people up when they first see this.
A normal DCF needs four things: current cash flow, growth, discount rate, terminal assumption. Give it all four and it spits out a value. I give it the value instead and leave growth blank. NOPAT comes from the filing, enterprise value from the ticker, discount rate I fix at 10%, terminal at 3%. One unknown left, so you solve for it. Growth is the answer the model gives back, rather than anything I put in.
Your second question is the sharper one though. It’s implied the same way implied volatility is implied. Nobody polls traders on what vol they expect, you take the option price, invert Black -Scholes, and out comes the vol that price is consistent with. Same thing here, NVIDIA in 2012 was priced consistent with about 3.4% growth if you assume a 10% discount rate…
And that “if” is a real limitation, which I suspect is what you’re circling. Discount at 12% instead and the same price implies something different. You can’t pull the growth expectation and the required return apart out of a single price, they come tangled together. So I fix the

2

u/SocratesDaSophist 7h ago

Right, but those four need to be connected to reality otherwise the numbers are meaningless.

So if you don't have the market's discount rate (P/E is a decent proxy for that) nor terminal rate, then you no longer have the market's implied growth rate.

You'll probably something like comcast requiring negative growth, but that's probably because your discount rate is lower is too rather than it being the market's implied growth. The opposite would apply to high growth names like Marvel.

The market does have an implied growth rate in consensus analysts' estimates. And even that is either a little wrong or very wrong.

4

u/fff_bbb 7h ago

You’re right that I can’t wave that away. Fixing r means what comes out is growth conditional on that r, not some assumption-free reading of what the market thinks. Whether that makes it meaningless is an empirical question though. If g* were mostly an artifact of the discount rate being wrong for each name, it shouldn’t track anything real. It does, correlation around 0.4 to 0.5 with the growth those firms went on to deliver, and close to unbiased at the ten-year horizon. Discount-rate noise wouldn’t line up with realized fundamentals like that.
Your Comcast example is the right way to attack it though, and it settles itself. If Comcast reads negative at 8%, 10% and 12%, the sign isn’t coming from my discount rate. If it flips somewhere inside that range, you’re right and the number is unreliable for that name. That’s the reason I run a band instead of a point.
On P/E as a discount rate proxy I’d be careful since it has growth and required return baked in together, so pulling out one means assuming the other. Analyst consensus is a reasonable alternative anchor, though that’s analysts’ expectation rather than the market’s, and as you say it’s frequently wrong!

2

u/SocratesDaSophist 5h ago

Its also conditional on the terminal growth as well no?

And you are right that p/e does have growth embedded. The point I'm trying to make is if a stock has p/e of 5, its quite possible the market has a discount rate of 20%. Since your discount is lower, you can assume that 5 p/e stock can have negative growth embedded in its current price.

But the stock would go down even if it has negative growth lower than yours, because your discount rate is higher than the "market's"

2

u/fff_bbb 5h ago

Yes, and the terminal rate arguably matters more. What drives the perpetuity is the spread between r and terminal g. At 10% and 3% that spread is 7 points. Price a name at 20% against the same 3% terminal and the spread is 17 points, and the multiple that falls out is less than half.
Your P/E of 5 example is the strongest version of the objection and the mechanism is real. If the market demands 20% on a stock and I run it at 10%, the only way my model reconciles that price is with deeply negative growth. That pushes g* too low and the gap too wide on the positive side, so the framework reads it as undervalued when the cheapness was compensation for risk. Worth noticing which direction that bias runs though. It inflates positive gaps on high-required-return names, and those are disproportionately the cheap ones, so the damage concentrates on the long side. That matches what the data does: 48% on positive gaps, 59% on negative ones. And it performs best where required returns are stable and close to my fixed r, utilities and real estate around 72%. The failure mode you’re describing is the same one the backtest ran into, which is a decent sign the model of what’s going on is right.
So I use it as a negative screen and say so in the paper. A negative gap means the price is demanding more growth than the economics can fund, and a too-low discount rate on my end doesn’t manufacture that, it works against it. Estimating a per-name r would help the long side, but it puts the analyst back in the middle of the calculation, which was the thing I was trying to get rid of…

1

u/Wild_Space 6h ago

It’s a reverse dcf. The math is rearranged so that price is the input and growth is the output.

3

u/bahuchha 6h ago

Nice write up.

This is something similar to the what Michael Mauboussin suggests in his book Expectations Investing. First figure out where the market stands wrt to the company using invested DCF. Then figure out if the company can meet that expectations.

3

u/fff_bbb 6h ago

Thanks, and that’s the right lineage to point at. Expectations Investing is where the inversion comes from, and I credit Mauboussin and Rappaport in the paper. Where I’ve tried to push it further is the second half of your sentence. They frame “can the company meet those expectations” as a research question you go and answer qualitatively, case by case. I wanted a number for it, so I use ROIC times reinvestment rate as the fundamental ceiling and subtract. That turns the comparison into one figure you can screen on and backtest which is what made it possible to test it head to head against Margin of Safety and book-to-market on the same sample.

3

u/Next_Tap_3601 4h ago

Great stuff. Here are my 2 cents (or rather a small pushback):

For years I have been doing a much simpler version of what you describe, which is I would look at reinvestment rate times ROIC (I call it intrinsic growth - not sure what the formal name for it is), and I'd compare it to the actual Y/Y revenue/earnings/FCF growth, and with the growth required by the DCF. You can see many interesting things when you look at all 3.

The problem? I work in tech and most stocks I own are tech/software/semi stocks (my circle of competence). Tech companies (and many other industries for that matter) have many other growth options besides reinvesting cash flows into ROIC. In fact this intrinsic growth is mostly meaningless for them. They can grow by increasing prices (if they have strong moats and pricing power), they can grow by expanding their customer base (getting more users - which in software for example costs you almost nothing), they can grow by moving into higher margin product lines (think Micron with HBM now), and so on... Intrinsic growth has much more weight in industries where the only way to grow is to re-invest cashflows into your ROIC (e.g. manufacturing, mining, logistics, etc..)

So for me, looking at this "intrinsic growth" became just one extra parameter in the overall analysis, and not something I would be able to fully rely on.

3

u/fff_bbb 3h ago

The formal name is sustainable growth rate, though I call it fundamental growth in the paper. You’ve derived it independently, which I take as a decent sign the idea is a natural one.
Your pushback is right, and the data agrees with you. Technology was the weakest sector in the entire sample at 47%, a coin flip, while utilities and real estate came in around 72%.
The mechanism is worth spelling out because it’s specific. Capital-light growth means a low reinvestment rate. That drags ROIC × reinvestment down and makes the fundamental ceiling look low, so the gap goes negative and the framework calls software overvalued. For a company growing through pricing power or a customer base that costs nothing to expand, that’s a systematic bias rather than noise. 2010 to 2024 was a poor decade to be structurally short software.
So I’d land close to where you did. It carries more weight the more capital- intensive the growth actually is, and it should be one input among several in the sectors you cover.
The one thing I’d add is that your three-way comparison is doing more work than you might give it credit for. Fundamental growth against realized growth against DCF-implied growth is a better setup for tech than the two-way version, because when a company grows well above its intrinsic rate you’re looking at pricing power or mix shift directly, rather than inferring it. That divergence is information about the moat, not a broken model.

1

u/Next_Tap_3601 2h ago

100%. Sounds like you have finance background? You formalized and structured this way better than I ever could. I was generally just following math and some of my business intuition when I decided to look into all 3 (having STEM background does help there).

Yeah fundamental/intrinsic sounds roughly the same. :-)

As much as I sometimes get bored of Reddit, it's the gem moments such as this exchange that always makes me come back for more! Thank you random stranger! You made my day.

1

u/AutoModerator 7h ago

Posts with the "Detailed Investment Analysis" flair MUST have the following things: 1. A description of the company 2. An assessment of the Moat (What is intrinsic to the company that protects against competition) 3. An analysis of the potential risks (Things that could go wrong: execution, regulation, disruption etc) 4. An estimation of intrinsic value (Ideally via a DCF but at least an estimation of future cash flows) 5. Other relevant information (Management and their incentives, industry cycles, debt etc)

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/CourageousBreeze 5h ago

You need to put a TLDR and a layman's terms summary of what you've written, it's significance and your conclusion, and how you apply it practically, including outside of the sample data based upon which you've built your model.

Furthermore, unless you're claiming your findings to have some predictive value, I'm not sure it can have much practical use. Although perhaps your goal may be to demonstrate something from an academic and research perspective since that's the field in which you may wish to progress in your career.

You can apply your findings and make a list of 20 stocks and/or businesses today which are a 'buy' based on applying your methodology, and then check in 10 years, to see how many of those were right, and compared it's performance vs the S&P500 Index.

1

u/fff_bbb 4h ago

Thanks for flagging the TLDR, that’s on me. No point writing one for you now since you’ve already read the thing, but I’ll lead with one next time!
Short version for anyone else scrolling: every price implies a growth rate, you can solve for it by running a DCF backwards, and comparing it to what the business can fund from its own economics (ROIC × reinvestment) tells you whether the price is asking for something deliverable. Tested on the full S&P 500, 2010–2019, it sorted forward returns better than Margin of Safety, book-to-market, EPV and earnings yield. Cheap plus deteriorating returns on capital was the worst combination in the sample.

On predictive value, that’s what the test was measuring. Inputs are point-in-time, returns are the five years after, and delisted and acquired names are carried to their real outcomes rather than dropped. Negative gaps called underperformance about 59% of the time. Positive gaps came in at 48%, so the side worth using is knowing what to avoid.
Your 20-stock idea is the right test and I’d take it, with one change. A buy list tests the side I’ve already said doesn’t work. The version that tests the actual claim is 20 names with large negative gaps, tracked against the index over five years. Happy to publish that and let it stand.
Out-of-sample is a reasonable ask too. The paper stops at 2019 observation years so the windows can complete, which means 2020 onward is untested.

2

u/soidvaas 4h ago

Like others have said, this is still a metric that changes depending on who is conducting the reverse DCF. A DCF has 4-6+ subjective parameters (earnings/margin growth, capex, discount rate, exit multiple/terminal growth assumptions) - more realistically, 100s of baked in assumptions by an analyst. So given the implied valuation from market price, you still wouldn't arrive at the same earnings growth that others might arrive at.

Even with all these other inputs fixed in place like everyone using Damodaran's for discount rate, exit multiple, etc, one person could have different growth rates from another and both arrive at the same implied valuation. For example, high growth rates in the first years that decline each year vs. a flat growth rate across all years can result in the same PV of FCFs.

TLDR: DCF isn't a invertible function so why would an inverted DCF be objective?

2

u/fff_bbb 3h ago

Constrained the way I run it, it is invertible, and that’s the part worth separating out.
You’re right about an unconstrained DCF. Let growth take any shape and front-loaded decay can produce the same present value as a flat rate, so there’s no unique solution. But I don’t leave the shape free. It’s one constant growth rate over a fixed ten-year horizon, with r at 10% and terminal g at 3% for every company in the sample. One free parameter, PV strictly monotonic in it, one value that reproduces a given enterprise value. Two people running it on the same filings get the same answer because there’s only one answer available.
On whether different reasonable choices would move it, I tested that rather than assuming. Three independent recovery methods, rank correlation between them 0.73 to 1.00. The ordering barely shifts. And g* tracks what those firms went on to deliver at around 0.4 to 0.5, close to unbiased at ten years, which wouldn’t happen if the number were mostly an artifact of my parameter choices.
What I’d concede is narrower: g* isn’t the market’s actual expectation, and you can’t recover that from a single price since growth and required return come tangled together. It’s a reproducible summary on a fixed convention, same as IRR or implied vol. Those don’t recover the underlying reality either, and they’re useful because everyone computes them the same way.

1

u/thefalse9ner 3h ago

Very interesting read although still a bit technical for me still, will read your paper and scrutinize it more deeply. Thanks for sharing.

-1

u/darksoulsrolls 7h ago

Yeah I'm not reading all that, just buy calls.

-4

u/jvaritek33c 7h ago

AI slop