Do ROIC-WACC spread, EBIT margin, ROCE, EV/E, FCF yield, PE ratio mean anything to you?
If ROIC-WACC spread, EBIT margin, ROCE, EV/E, FCF yield, PE ratio are where you begin your research read on.
value crowd on here knows that thousands of stocks are traded, accompanied by mountains of financial statements, news alerts, and analyst opinions and then there are grifters calling themselves value investors everywhere. Including here. How do you cut through that noise to find true opportunity? BYou can't really filter the universe by superimposing all those screens. Not anymore.
Let me present to you a totally free, open source product of the labor of love, darninator (because*Darwinator* was taken). It scans through all US stocks with a ruthless rejector mode designed to say "no" to almost everything. It is free, open-source, and entirely automated.
The ileap here comes from Pulak Prasad’s genius book, *What I Learned from Darwin on Investing*. (Drop that *Intelligent Investor* for a second, if you can, margin of safety and Mr. Market are important, but this is the next step). darninator basically treats businesses as organisms and evaluates which ones are actually “fit” to “survive” using Ben Graham’s old-school value filters mixed with modern capital metrics.
the pipeline cuts the noise, handles the logic. before we get to the capabilities.
# A quick note on geometric mean
Most beginer statisticians and investors and standard screeners built by them use a *simple arithmetic average*. If a company scores 100/100 in quality and 0/100 in Valuation, a simple average says they are a 50/100, a “mediocre” stock.
Darninator does not allow mediocrity. It uses a ***weighted*** geometric mean*:*
Don’t let mathematics intimidate you. Simply put, basic averages do a poor job factoring for extremes. As an example, if Bill Gates and I are sitting at a coffee table and you join in, someone might say that the average net worth at the table is in the billions. They won’t be wrong, but that information is completely useless.
The geometric mean addresses that distortion because it is **punitive**. If any single pillar (Quality, Valuation, or Health) drops toward zero, the entire final score collapses. This acts as built-in risk filtering. A stock can only reach Tier 1 if it excels in all three dimensions simultaneously. We aren’t looking for cheap stocks that are dying, nor great companies that are overpriced. We are looking for the rare intersection of all three.
# Under the hood
Darninator operates as a two-stage vectorized processing engine using `pandas` and `numpy` for O(1) complexity across the entire universe simultaneously. It processes data in three distinct phases:
1. **Collection (**`initialize.py`**):** Reaches out to market feeds (via Yahoo Finance) to pull raw accounting data(income statements, balance sheets, and cash flow statements) and dumps them into a local JSON cache so you can re-run analyses instantly offline.
2. **Elimination:** This is where brute force happens. Before ranking, the engine applies strict institutional-grade hard constraints to immediately discard junk. All of which are tweak able
* **Market cap floor:** ≥$1B
* **Valuation cap:** PE≤15.0
* **Profitability gate:** EBIT margin>0%
* **Solvency gate:** Net Debt/EBITDA≤3.5 If a company fails even *one* of these, it is instantly deleted from the calculation.
3. **Ranking (**`darninator.py`**):** The remaining survivors are mathematically ranked using normalized percentile ranks (0–100) across our three core pillars:
|Pillar|Metrics Included|Weight (w)|The Goal|
|:-|:-|:-|:-|
|**1. Quality (Engine)**|ROCE, ROIC-WACC spread, EBIT margin|40%|Find "Compounders" inherently efficient at turning a dollar into two.|
|**2. Valuation (Price)**|EV/EBITDA, FCF yield, PE ratio|35%|Get them cheap. When no one loves them but they still deserve love.|
|**3. Health (Safety Net)**|Net Debt/EBITDA, Interest Coverage, Current Ratio|25%|Ensure that if the economy hits a recession, they structurally survive.|
The engine then outputs a timestamped CSV categorizing the survivors into **Tier 1 (Alpha / Further Research list)**and **Tier 2 (Secondary Core)**.
# A quick note of philosophy: Einstein, Newton and raccoons
Now, why go through all this biological framing? Because Einstein and Newton get all the thunder, but Darwin was the real deal.
Copernicus said Earth is not the center of the universe. All apes went nuts! In fact, people back then thought we were better than apes. People also thought they were better than butterflies, sloths, and pandas. Some people still think they are better than raccoons. I’d pay to watch you wrestle a raccoon.
Darwin comes along and says we are not all that special, and monkeys are our closest cousins. Imagine the outrage! You’d think that would get him cancelled, but the scientific community back then did this weird thing called *science*, and all 1,250 copies of *On the Origin of Species* sold out on the first day.
You might be getting smug right now. You are putting your arms on your head, leaning back, and you are about to say: *"That is not true, Darwin actually said 'It is not the strongest of the species that survives... it is the one that is most adaptable to change.'"*
You are still wrong. The quote actually belongs to a Louisiana business management professor named Leon C. Megginson, who wrote it in a 1963 paper to paraphrase Darwin's ideas for corporate management. "Megginson who?", you say. Exactly. Over time, people dropped Megginson's name and slapped Darwin's on it because it sounded more authoritative.
In 1859, Darwin ruined the vibe of the "divinely ordered" social hierarchy. If you were a rich white Victorian lady sipping tea with your little pinkies out and learned that worms are your distant cousins, you spilled tea on yourself for the first time in your life.
Darwin's genius was taking a chaotic mess of biological data and giving it a single, unifying framework: traits helping an organism survive get passed down, while others die out. Darninator does the exact same thing to the stock market.
# Known Limitations (Read Before Running)
This is by no means foolproof and has some serious limitations. If we learned anything from Darwin, not following anything in blind faith would be at the very top.
* **Value Traps:** The tool assumes the data coming in from third-party sources is accurate. It treats missing data harshly, but it cannot check for inaccurate data—millions getting confused for billions, currency conversions, and such. Yet.
* **Regional Risk:** A lot of stocks that make it to the top are non-US stocks trading as ADRs in US markets. Personally, I’d fish where the fish are, but some people think US market supremacy can be taken for granted.
* **Price Action on News:** If you are someone who looks at a news event and ponders the implications, this tool is not for you. Other palmists and fortune tellers can also stay away. This produces a static, point-in-time outlook.
# Closing Thoughts
I hope this is where you *start* your research, not end it. There is no excuse for buying some letters a machine pops out. This is where the science stops but the art begins.
The repository is fully open-source and local-cache based. I'll drop the GitHub link and the full architectural write-up in the comments below so the spam filters don't swallow this post.
Let me know what you think of the pillar weights, or if you'd tweak the sieve parameters!
Link in the comments for those interested to take it for a spin or to rip it apart.