Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Four independent models read one listed company — order flow, price trend, intrinsic value and accounting quality — and say where they agree, where they disagree, and what none of them can tell you. U
FinancePython · TypeScriptGitHub @farhanrktOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Reads a stock through four independent lenses (flow, trend, value and quality) and writes a plain-language verdict instead of a single score.
Translation pending
Loading the full README.
Read the full README ↗Four independent models read the same stock, side by side.
Most research tools give you one opinion. QuantDesk gives you four — order flow, price trend, intrinsic value, and accounting quality — and shows you where they agree and where they don't. Covers US and Indonesian (IDX) listings.
Educational and research tooling. Not investment advice.
Every number in the app explains itself. Each figure carries an info icon that says what it measures in plain English, whether this value is good or bad and why, and what would make you act differently — or admits that nothing would. A Guided/Full toggle defaults to Guided: headline figures show their reading without a click, the expert tuning controls fold behind one labelled disclosure, and the raw indicator grid steps aside. Full is every control and every indicator, unchanged.
And it says what the four add up to. Above the tabs, a plain-English summary reports what the lenses agree on, names where they disagree, states what it cannot tell you about this particular company, and lists what to check next. It is deliberately prose and not a score — see the field manual for why a single buy/hold/sell number would discard every finding the rest of the app works to establish.
And it says what would stop a careful buyer. Underneath that summary, a pre-trade panel collects the conditions that argue against acting — a balance sheet in the distress zone, a valuation that is mostly a perpetuity guess, a price series the app cannot tell apart from a random walk. Each one arrives with the measured share of a real universe it fires on, because a condition true of a third of the market describes the market rather than this company. There is no count, no score, and nothing on it is ever green: an empty panel is not a clean bill of health, and the panel says so in words rather than leaving a row of ticks to imply otherwise.
New to any of this? Start with the QuantDesk Field Manual —
read it online or open
docs/field-manual.html locally. Every lens and every term explained
from scratch, no prior finance assumed.
Any single model can be fooled. A stock can look cheap on a spreadsheet while quietly bleeding money; it can look strong on a chart because one fund happened to rebalance. So instead of trusting one method, QuantDesk runs four that read different data — one reads volume, one reads price, one reads cash flows, one reads the balance sheet — and puts their verdicts in a row. When methods that share no inputs land in the same place, that's worth more than any one of them shouting.
The honest caveat, which the app shows you on screen: the four are not equally independent. Flow and Trend are both computed from the same price-and-volume series, so the app collapses them into one vote rather than counting four.
And that caveat is now measured, not asserted. Across 168 names in four index universes, the price record and the filings reach the same verdict about as often as chance puts them there — κ = +0.03, on an interval that straddles zero — so agreement between them really is two facts rather than one counted twice. The surprise was the other half: Flow and Trend, the pair grouped together because they read the same series, agree at κ = +0.03 too, and the four lenses together carry 3.7 lenses' worth of independent information rather than the two the count collapses them to. The grouping was left alone anyway, and the panel says why: a vote that correlates with nothing is what an independent reading and an uninformative one both look like, and the Flow lens's own event study already returns nulls.
Needs Node 20+ and Python 3.12.
npm install
python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
Then run the two halves in separate terminals:
npm run dev:api
npm run dev
Open http://localhost:3000, type a ticker (or click a preset), and hit Run all lenses — or press ⌘K (Ctrl K) and type a company's name.
dev:api runs .venv/bin/python -m uvicorn rather than a bare uvicorn, so it does not
depend on the environment being activated — and, more to the point, cannot pick up a different
one. A bare uvicorn resolves through PATH, and a system Python that happens to have it
installed will happily serve this app on whatever yfinance and pandas it has, which on the
machine this was written on is a major version apart from the pinned ones. The cost is that
the venv has to be at .venv/, exactly as the command above creates it; if you keep your
environment somewhere else, point the script at your own interpreter.
Indonesian listings take a .JK suffix — type BBCA.JK, or type BBCA and switch the
market dropdown to IDX. Crypto takes a pair like BTC-USD.
Each one answers a different question. For each, here's what it asks, how it answers, and — just as importantly — what it can't tell you.
How. An Isolation Forest (an unsupervised outlier detector) reads six behavioural features per day: return, relative volume, absolute return, Money Flow Index, an on-balance-volume z-score, and intraday range. Days that don't look like other days get flagged, labelled Accumulation or Distribution by a four-way vote of money-flow indicators, and scored 0–100 for strength.
This is the beginning of the README. Read the rest at the original. Read the full README ↗