Start with the numbers
Growth, profitability, valuation, debt, cash flow and price momentum. Each one shows a different side of a company.
A student-built stock screener by Ishan Singh
TodayPrices from CNBC
I'm Ishan. I study finance and couldn't find a clean answer to that, so I built this. It scores all 503 S&P 500 stocks on 10 metrics, lets you add stocks from other markets, and has a built-in analyst you can ask questions. It won't tell you what to buy. It gets you to a short list worth researching.
Prices come from CNBC's public feed. Stocks outside the US can run about 15 minutes late. Scores and fundamentals aren't live, they come from a saved snapshot.
Even just the S&P 500 is 500 companies, and I don't have time to read 500 annual reports.
So the screener does the first pass. It narrows everything down to a short list, and then you do the real research on those.
Growth, profitability, valuation, debt, cash flow and price momentum. Each one shows a different side of a company.
Fast growth isn't enough on its own. The screener also looks at whether that growth is profitable, whether it brings in cash, and whether you'd be overpaying for it.
Every stock gets compared with the S&P 500. If it can't do better than just buying the index, it's hard to see the point.
Fundamentals, growth, valuation and market data get combined into one score. A 50 is a typical S&P 500 stock, and companies that look good on several of those at once end up near the top.
Going through 500 companies by hand isn't realistic, so the scoring is all code. The prices load when you open the page.
All the screener can tell you is which companies deserve a closer look. The rest, like the business itself, the management and the competition, you still have to read up on.
Prices and charts come from CNBC, and headlines from CNBC, MarketWatch and WSJ. They refresh while the page is open.
Search by name or ticker. Tokyo, London, Mumbai, Frankfurt, ETFs and crypto all work. Anything you add stays in this browser.
Ask if a stock looks worth buying, what it could be worth in 10, 20 or 30 years, or how a portfolio might do. It's rules-based, not a chatbot.
Go see what it finds.
Not financial advice. Built by Ishan Singh.
02 The screener
Set the filters, hit scan, and click any row to see more. Stocks you add from other markets stay at the top.
| Company | Watch |
|---|
03 The analyst
Ask if a stock looks worth buying, or what some money could turn into over 10, 20 or 30 years. The numbers come from market data and a simulation. It's a rules-based analyst, not a chatbot, so it only understands certain kinds of questions.
04 The heatmap
Every S&P 500 stock, with bigger companies drawn bigger, grouped by sector. Click a sector to zoom in, or a stock to open it.
05 The wire
Headlines from CNBC, MarketWatch and WSJ, each with a rough positive or negative tag.
The tone tag is just a count of positive and negative words in the headline. It's rough, so don't trade on it.
06 Your list
Star stocks in the screener, or add one from any market here. The list stays in this browser.
07 The simulator
See what a portfolio could grow into, or replay how it would have done in the past.
These are simulations built on assumptions, not forecasts. Past performance doesn't predict future results.
08 The glossary
What every number in the screener means, in plain English. Click a card for more.
09 The method
Every S&P 500 stock gets one score from 1 to 99. Here's what goes into it, how much each piece counts, and where it falls short.
Rank
Each stock gets ranked on ten numbers, like how fast its sales are growing or how pricey it is. A rank runs from 0 (worst) to 100 (best).
Blend
The ten ranks get blended into one number. Some count for more than others, and the weights add up to 100.
Score
The blend is stretched into a score from 1 to 99. A 50 is a typical S&P 500 stock, and an 80 is roughly the top fifth.
It's a ranking, not a forecast. A high score means a stock looks good on these ten numbers today. I haven't tested whether high scorers go on to do better, and section 06 explains why.
Each number answers one plain question about a company. The points show how much that number counts toward the total of 100. If you want a longer explanation of any of them, the has one for each.
Is the business getting bigger and earning more?
How much its sales grew compared with a year earlier.
How much its profit grew compared with a year earlier. Sales can grow while profit shrinks, so this checks that the growth is paying off.
Is the price fair for what you get?
The dollars you pay for each $1 of the company's yearly profit. Lower looks cheaper. A company that lost money counts as the most expensive.
The P/E divided by how fast earnings are growing. A high P/E can be fair if growth is high, and the PEG checks for that. A zero or negative PEG counts as the worst.
Is it a healthy business?
The cash left after running the business and reinvesting in it, as a percent of the company's stock market value. It's harder to dress up than EPS, but it can still be managed.
The profit earned for each $1 shareholders have put in. Higher means the money is being used well. Heavy debt can inflate it, which is one reason debt is scored too.
How much the company has borrowed compared with what shareholders own. Lower means less risk. Negative equity counts as the worst.
Has the market been rewarding it lately?
Whether the stock has beaten the S&P 500 lately. It takes the stock's 6-month and 1-year returns, subtracts the S&P 500's over the same periods, and averages the two gaps.
How bumpy is the ride?
How much the stock swings compared with the overall market. A beta of 1 moves with the market, 1.5 swings about 50% more, and 0.5 about half as much. Calmer ranks higher. Readings below 0 or above 3 are treated as 0 and 3, because they're usually data glitches.
Does it pay you while you wait?
The yearly dividends as a percent of the stock price. No dividend counts as 0%. Anything above 6% is counted as 6%, since a very high yield is often a warning sign.
There's no formula behind them, and nothing was fitted to past returns. They're judgment calls, and you're allowed to disagree. Here's the thinking:
If you think momentum should count for less, you might be right. I haven't tested other weightings.
A P/E of 25 is ordinary for a software company and expensive for a utility. So three of the ten numbers, P/E, PEG and debt / equity, are ranked against stocks in the same sector instead of the whole S&P 500. A sector needs at least 8 stocks with data for that to apply. Otherwise the whole index is used.
The other seven numbers are ranked against the whole S&P 500, and that's a real limit. A utility's growth, beta and dividend yield get compared with a chip company's, which isn't entirely fair, and I haven't adjusted for it. The fairest way to use the score is to compare stocks inside one sector, which the sector filter in the screener makes easy.
Not every company reports every number. If one is missing, it's skipped and the rest count for proportionally more, which is the "divide by the points that had data" part above. A stock needs at least 50 of the 100 points to get a score. Below that it shows as Not rated.
A few cases aren't skipped, they're treated as the worst result: a company that lost money (P/E), a zero or negative PEG, and negative shareholder equity (debt / equity). A company that pays no dividend counts as a 0% yield. Funds and crypto don't get a score, and neither do stocks you add from other markets, because the saved snapshot only has these numbers for S&P 500 stocks.
I don't know. I haven't backtested it.
A backtest checks how high-scoring stocks actually did in the past. To do that properly I'd need what each company's ten numbers looked like on past dates, and this site only keeps one snapshot of them from the latest update. Without that, a backtest would quietly use today's numbers to "predict" the past, which proves nothing.
So read the score as how a stock looks on these ten numbers today, not what it will do next. A high score can still be a bad buy, and a low score can still be a great one. That's why this is a way to build a starting list, not a recommendation.
The company numbers and price history behind the score come from Yahoo Finance's free data. The live prices, charts and headlines on the rest of the site come from CNBC, MarketWatch and WSJ and load in your browser. The score you see is from the saved snapshot, not from those live prices.
So I go to Santa Clara University, I'm studying finance, and I'm literally surrounded by this stuff every day. Silicon Valley is right there. I commute in and I'm passing by VC firms and semiconductor companies and tech campuses on the way to class. Everyone around me is talking about markets, startups, valuations. And the whole time I keep thinking the same thing: how do you actually find a stock worth buying?
Not theoretically. Like actually, in practice, how do you do it?
I couldn't find a clean answer anywhere so I just started building something. This is that thing.
There are like 8,000 publicly traded companies in the US alone. Even if you cut it down to just the S&P 500 you still have 500 companies to look at. I have classes, I interned this summer, I'm commuting every day. I don't have time to go through 500 annual reports and cross-reference every earnings call by hand.
A screener basically does the first pass for you. You set your criteria, it filters everything down to a short list of companies that actually look interesting, and then you go do the real research on those. It's not doing the investing for you. It's just saving you from starting at square one every time.
My finance classes at SCU are solid but they keep everything pretty neat. The models work out cleanly, the cases have answers, the professor walks you through what to look at. Real markets are not like that at all. There are a hundred signals pointing in different directions and nobody tells you which one to trust. I wanted to build something that forced me to figure that out myself instead of just following a rubric.
I didn't just randomly pick ten numbers and call it a screener. Each one is trying to answer something specific.
All of these get combined into one score out of 100. Is it perfect? No. But it's a real starting point and it's way better than just going off whatever's trending on X or Reddit. The exact weights, how I handle different sectors and where the score falls short are on the Methodology page.
When I started at SCU I had done some Excel. That was it. No Python, no JavaScript, nothing. Coding was not something I thought I'd ever really need for a finance career honestly.
This summer I interned at Achronix Semiconductor in Santa Clara. It's a chip company working on FPGA technology and edge AI. The work was pretty technical. I wrote Python scripts, built data visualizations, worked in Linux, and did market research on where the company sits competitively in the semiconductor space. Coming in with basically no technical background it was a steep learning curve.
But that's also where this screener came from. I started actually being able to build things instead of just analyzing things in spreadsheets. I connected a live market data API, built out the filtering and scoring logic, got it on my own domain. Real prices load automatically when you open the site, nobody visiting has to sign up for anything or enter any keys. A few months ago I wouldn't have had any idea how to do any of that.
Seriously. A high score on this screener does not mean the stock is going up. A low score does not mean it's going down. This is not financial advice. I'm 19.
What this actually does is narrow the field. Instead of staring at thousands of tickers you get a short list of companies that look interesting across multiple metrics at once. From there you still have to go read the actual filings, understand what the business does, figure out if the growth makes sense, check what analysts are saying. The score gets you to the right neighborhood. You still have to look around yourself.
I think a lot of people see a tool like this and think it replaces the thinking. It really doesn't. It just makes the thinking start from a better place.
Finance classes are great but they're clean. The numbers work out. The professor is there if you get stuck. There's a right answer at the end.
Building this forced me to make real calls with no rubric. Does a high P/E make this stock overvalued or is it justified by the growth rate? How much should beta matter for a long-term hold versus a short-term trade? What even counts as strong free cash flow for a tech company versus an industrial one? Those are the questions that actually matter and you don't really learn how to answer them until you're forced to commit to something.
I want to go into corporate finance after school. And honestly the thing I've realized is that the judgment calls, the ones that don't have textbook answers, are basically the whole job. Building something like this is as close as I can get to practicing that right now.
Anyway, go try the screener. Click over to the Screener tab, filter by whatever you care about, and see what comes up. If something seems off or wrong I genuinely want to hear it.
Screen first. Research second. Only invest in what you actually understand.
I'm Ishan Singh, a sophomore at Santa Clara University studying finance, and I grew up in the Bay Area.
Soccer has been most of my life. I came up through the MLS NEXT system, playing for the San Jose Earthquakes and other clubs, and now I coach at Mogility Soccer. Coaching is a different job than playing, as I've learned you can't just do it yourself anymore, but you have to get someone else to understand it. And honestly, my coaching sessions are the highlights of my week.
Being from the Bay Area shaped a lot of what I've been creating. Silicon Valley is essentially the background. I commute to school past VC firms, FPGA companies, and tech campuses, and lately on campus it seems as though everyone is talking about valuations and the next startup. That's partly why I got curious about markets, and why I ended up interning at Achronix this summer. I started college knowing Excel and nothing else, and came out of the summer writing some Python and familiarizing myself in Linux, surrounded by engineers who actually knew what they were doing. I figured it out as I went.
The stock screener came from all of that. I kept wondering how you'd actually find a stock worth buying, couldn't find a clean answer, so I built something. It's not perfect, and the methodology page says where it falls short.
I want to go into corporate finance, probably somewhere close to tech, since that's what's around me.
If something on the site looks broken or wrong, or you just have any questions, I'd love to hear from you.