It was never about speed
I built a stock-analysis tool. Everyone assumes it's about "speed" — but speed was never the problem. The real problem was comparison: a raw ratio says nothing without the right peer set.
Pulling a P/E in two seconds isn't a skill. One API call, one line of code. The tool's value wasn't there. The value was being able to say what that number means — and a ratio is meaningless until you know what it's being compared against.
The real problem
A 25× P/E, on its own, is a crumb of data. Ordinary at a software company, expensive at a utility, meaningless at a bank. The tool's job wasn't fast lookup; it was to normalize a name against its own sector peers and show where it sits. The output wasn't a number — it was a position.
| P/E | Peer set | Reading |
|---|---|---|
| 25× | SaaS peers (~35× median) | cheap |
| 25× | Utility peers (~16× median) | expensive |
| 25× | Wrong peer set | noise |
What I built
Claude Code as the implementation agent, yfinance as the data source. Pull the fundamentals, normalize against a sector peer set, surface where the name sits relative to its comparables. The logic isn't complex; what's valuable is that it puts a raw ratio into a context.
Where it breaks
Without honesty the piece is worthless. It breaks in two places:
Peer-set selection is still human judgment
The model can suggest a sector bucket. But deciding the "right" comparison set is the analyst's job: is Circle a payments company, crypto infrastructure, or a money-market proxy? That choice determines the result up front — and the tool can't own it.
yfinance is not an official API
It's an unofficial scraper. Schemas change, rate limits hit, gaps appear silently — it's fragile. Fine for a personal tool; not defensible in a commercial context you sell or stake a client deliverable on. I use it knowing exactly that.
Knowing a tool's limits isn't the cost of using it; it's the license to use it. Choose the right comparison first, know what the data rests on underneath — the rest is just speed.
Code: github.com/<repo> — assumptions and limits written plainly in the README.
This is a financial/technical educational note, not investment advice. The ratios and thresholds mentioned are illustrative.
← Finance Engineering