Questions

The things worth knowing before you rely on it.

Including the ones with uncomfortable answers.

Why does it never say buy or sell?
Because a recommendation hides the reasoning that produced it, and because the reasoning is the part you can actually check. The app describes what the stored numbers say and shows how it got there; the decision is yours. It is a research tool, not advice, and nobody here is a licensed adviser.
Where does the data come from, and what does it cost?
Prices, fundamentals and headlines come from Yahoo Finance via yfinance, cached locally with a source tag and timestamp on every row. That part is free. The SWOT and the Bull vs Bear debate call an AI model — Claude, or DeepSeek if that is the one configured — which is metered — roughly a fraction of a cent to a few cents per stock, and analyses are cached for six hours. Without an API key everything else still works; the two AI panels say plainly that synthesis is off.
Can a signal really win 70% of the time?
Almost certainly not, and the app is built to show you that. Every signal is tested against the security's own history and reported with its sample size and a 95% confidence interval, measured against that stock's own base rate rather than against a coin flip. On real data most common indicators land between 45% and 55%. A backtest showing 70% is usually overfitting, look-ahead bias, or twelve trades. There is a test in the suite that runs the whole indicator set over a random walk and fails if any signal appears to win.
What can't it see?
Management quality, litigation, regulatory change, competitive dynamics, accounting fraud that the statements don't reveal — and anything that hasn't happened yet. It also can't see promoter pledge data or quarter-by-quarter promoter holdings, which the price provider doesn't publish, so those two checks return N/A on live data. Outside India the promoter concept doesn't exist at all and the rules say so.
Does anything leave my computer?
The app runs locally. It makes price lookups to Yahoo Finance and, if you've added a key, one call per analysis to the AI provider (Claude or DeepSeek) carrying the evidence pack. There is no telemetry. You sign in with an email address so your watchlist and portfolio stay private to you; that address is used only for verification codes and security notices, and everything sits in SQLite files next to the code.
Why show analyst targets at all?
Because what the sell side currently thinks is a fact about the market that you might want to know. It's shown as reported data, with the caveat that targets skew optimistic, and it's deliberately excluded from the AI's evidence pack — a price target in a prompt is an invitation for a model to repeat it as though it were measured.
How do I trust the numbers?
Don't, initially — check them. Every panel prints its formula and inputs, every red flag expands to show the comparison it made, and the score's arithmetic is laid out line by line. The test suite has hundreds of tests covering rule determinism, the scorecard's worked example, the citation auditor, the backtester's refusal to manufacture edge, and hand-computed values for Piotroski, Altman, Graham and beta.
What does the funds side do that a factsheet doesn't?
Three things. It looks through the fund to the companies inside and scores each one by the same rules it applies to a stock. It measures overlap between any two funds you hold, as the weight they have in common — which is usually the answer to why four funds move together. And it computes XIRR on your own dated instalments, so what you see is your return rather than the fund's. It has no AI in it anywhere: there is nothing to switch off.
How do I get my existing mutual funds in?
The least work is a CAMS or KFintech consolidated statement — the password-protected PDF they email you. It carries folios and every transaction, and imports in one step. Otherwise: set up a monthly SIP by giving the amount, the start date and the day of the month, and it generates each instalment priced at the NAV on or before that date; or import a spreadsheet of transactions; or type them in. Every import is idempotent on fund, date, kind and amount, so running the same file twice does not double your holding.
Is my CAS password stored anywhere?
No. It is sent in a request header — never in a URL or a query string, which is where passwords end up in server logs — used once to open the PDF, and never written to disk. The statement itself is parsed in memory; only the transactions it contained are saved.
Why is a fund's holdings list out of date?
Because that is how often it exists. Indian schemes publish holdings monthly, so the best available answer is a photograph taken on the as-of date, and a fund can turn over a good deal of its book since then. The page prints the date and its age in days, and one of the seven checks fails outright once the disclosure is too old to describe the fund. Automatic fetching helps, but it reads AMC and issuer files at URLs nobody promised to keep stable — those sources will break, and when one does the page shows an ageing date rather than pretending.
Can the funds module damage my stock data?
It cannot write to it. Funds live in their own database file, and the funds code opens the equity database through a read-only connection — set in the connection string, asserted in the test suite. Deleting the funds database loses no equity data.
The quality screen returns almost nothing. Is it broken?
Probably not — eight simultaneous thresholds at those defaults is a very narrow gate, and profit growth above 50% alongside a P/E under 30 is a rare combination by construction. That is why the page leads with the funnel rather than the survivors: each step shows how many entered, cleared, failed and could not be tested, and the step that emptied it is named. If a step shows a large "could not be tested" column, you are filtering on a figure nobody published for those names. Look at the near-miss list too — names that failed one or two tests are often more interesting than the ones that passed all eight. Loosening a threshold is the usual answer; there are also twelve further filters behind More filters, all off until you switch them on.
Why is the size filter a percentile rather than an amount?
Because the screen covers three currencies. A floor of "5,000" picks out a different company in Mumbai, New York and London, and converting between them needs an exchange rate — which is one more number to keep current and to be wrong about. Ranking inside each market needs no rate, cannot go stale, and follows the rule the rest of the app already uses: compared within a market, never across. "20" means bigger than the smallest fifth of the names cached for that market, and the row prints the actual capitalisation beside the rank so you can check it against something real. The same applies to the liquidity filter, which ranks median daily traded value.
Why do some filters say "could not be tested" for so many names?
Because the figure is not stored for them, and a screen that treated the unmeasured as clearing the bar would surface exactly the companies nobody publishes numbers for. Two cases are worth knowing about. Interest coverage has no value for a company with no debt — so the test drops the companies that would most obviously clear it, which is a limitation of the test rather than a finding. And the two filters under Against itself read a stored analysis rather than the fundamentals table, so a name you have never analysed comes back untested; scanning its exchange first gives it a figure.

Open the terminal.

Search any listed name and watch twelve tools run, step by step — or search a fund and see what it holds.