Bloomberg-grade research. Built for retail.
Ask it anything, in any language. One agent figures out what to run and runs only that. Quick questions come back in seconds. A full report takes minutes. Every number is computed in code, never guessed by a model.
Free · sign in with Google or GitHub
Wall Street's last
data moat.
Hedge funds pay $24,000 per Bloomberg seat each year for the research that moves markets. You get free chat rooms and 15-minute-delayed quotes.
We want to democratize financial analysis for everyone. VYNN runs the same institutional pipeline for anyone with a phone: fundamentals, news intelligence, valuation, crypto, options, portfolio risk, and a validated recommendation. One reasoning agent reads your question in any language, runs only what it needs, and can write the whole report back in your language too.
Intelligence
Ask anything: a stock in any language, a crypto snapshot, a macro question, a whole watchlist, an option's Greeks, a portfolio's risk, or the market's odds on a Fed cut. The agent reads what you need and calls only the tools that answer it. No menus, no fixed pipeline.
Trust
Every figure is computed by deterministic Python. The LLM can cite numbers. It can never invent them.
Speed
A human analyst needs twelve hours per stock. VYNN needs minutes: a full report, a DCF, and a validated recommendation. The stages run in parallel over one shared blackboard, which cut our old sequential pipeline by 78.6%. Same depth, no shortcuts.
From reactive analysis
to proactive market intelligence.
VYNN today writes you a thesis on demand. The next step is a proactive agent that watches the market continuously and tells you, the moment a new event would change it.
Watches
Every position in your portfolio, around the clock. The same fundamentals, 10-tab DCF, and parallel news pipeline VYNN runs today, now running in the background. It runs in parallel, so it can cover a whole portfolio at once instead of one ticker at a time.
Compares
Every new event gets checked against the thesis VYNN already wrote for that ticker: its intrinsic value, its catalyst and risk profile, its price target. Most events change none of that. Same trajectory, same target, no alert. Only events that measurably move the number survive. A generic newsreader ranks by popularity or recency. VYNN ranks by whether the event changes what your position is worth.
Alerts
The events that survive arrive already analyzed: directional impact on intrinsic value, a confidence score, the source quote behind it, and a recommended action. You can act on it right away.
Most AI invents numbers. VYNN makes that impossible.
When a chatbot says "Apple is worth $200," where did that number come from? Usually nowhere. The model made up something that sounds right. VYNN draws a hard line. Every figure on the page is computed by deterministic Python. Then a regex validator throws out any number the model can't cite, with ≥95% coverage enforced at the boundary. The model can cite numbers. It can't make them up.
- Request reasoning
- Event extraction
- Relevance scoring
- Narrative synthesis
The Apple thesis hinges on iPhone 16 ASP and Mac Mini attach. We model a [c-DCF-WACC-01]WACC = 8.4% and a [c-DCF-Tg-02]terminal growth = 2.5%, holding gross margin flat. Under our base case the intrinsic value resolves to [c-DCF-IV-03]$215.62 per share, against a 12-month price target of [c-REC-PT-04]$199.31.
REPORTING.AGENT · narrative.synthesize()
- DCF computation
- Recommendation calculation
- Citation validation
- Reproducibility checks
| cite_id | source | value |
|---|---|---|
| [c-DCF-WACC-01] | dcf.assumptions!E12 | 0.0840 |
| [c-DCF-Tg-02] | dcf.assumptions!E14 | 0.0250 |
| [c-DCF-IV-03] | dcf.summary!C7 | $215.62 |
| [c-REC-PT-04] | rec.layer1.targets[12m] | $199.31 |
RECOMMENDATION.LAYER1 · FixedNumbers (deterministic)
● hover any citation chip to see the source it must cite. unsourced numbers are rejected by the validator.
A tool-use agent
over a LangGraph pipeline.
The front door is a reasoning agent. No router, no intent taxonomy, no fixed pipeline. It reads any request: a ticker, a coin, a macro question, a company named in any language. Then it loops. Reason, call a tool, read the result, decide what's next. It has 17 tools. Pull financials, build the DCF, screen the news, snapshot a crypto, price an option, size a portfolio, read market-implied odds, draw a live chart in the chat, or run the whole report. It calls only the ones your question needs. Those analysis tools are the LangGraph pipeline: specialized workers over one shared FinancialState blackboard. The blackboard decouples agent ordering from data flow. Independent stages run at the same time. The DCF model and news analysis overlap, and news is screened in parallel batches. That cut the original sequential run by 78.6%, from roughly seven minutes to about ninety seconds. Click any node to inspect its prompt, its schema, and the code behind it.
Three layers.
Zero invented numbers.
Layer 1 is pure Python. A deterministic calculator turns DCF output into price targets and STRONG BUY / BUY / HOLD / SELL rating bands. Layer 2 is the LLM. It writes the narrative, but it can only cite numbers Layer 1 produced. Layer 3 is a regex validator. It rejects any unsourced figure and reruns the narrative until every number traces back, up to three passes. The ≥95% citation coverage is enforced in code at the boundary. The model doesn't get to skip it.
Calculate
rec/layer1.py · pure Python
| [c-DCF-IV-03] | intrinsic_value | $215.62 |
| [c-REC-PT-04] | target_12m | $199.31 |
| [c-REC-RET-05] | expected_return | +3.8% |
| [c-REC-RAT-06] | rating | HOLD |
Numbers are computed by deterministic Python from the DCF and handed to the LLM as a fixed FixedNumbers payload. The LLM can cite these values but can never mutate or invent them.
Narrate with citations
reporting.narrative.synthesize()
We initiate coverage of NVIDIA at [c-REC-RAT-06]HOLD, with a 12-month price target of [c-REC-PT-04]$199.31 implying [c-REC-RET-05]+3.8% of expected return. Our DCF-derived intrinsic value is [c-DCF-IV-03]$215.62, reflecting strong AI-infrastructure demand offset by valuation discipline.
The model can only reference numbers Layer 1 produced. Every number you see in production output traces back to a row on the left.
Validate
validate_citations.py · regex
- [c-DCF-IV-03]/\$215\.62\b/ok
- [c-REC-PT-04]/\$199\.31\b/ok
- [c-REC-RET-05]/\+3\.8\s?%/ok
- [c-REC-RAT-06]/\bHOLD\b/ok
Any number in the narrative without a matching regex bounces the run back to Layer 2 with a correction prompt. ≥95% citation coverage is enforced at the boundary.
● hover any citation chip in the middle column · the cell on the left and the regex on the right light up together.
A parallel pipeline. The full report in minutes.
A complete analyst report runs end to end in minutes. It covers financials, DCF, news intelligence, narrative, and the validator. By hand that takes six to twelve hours. The speed is real engineering. Independent stages run concurrently over a shared blackboard, so the DCF model and news analysis overlap. News is screened in parallel batches: ~44s instead of ~170s serial. That parallel design cuts end-to-end latency 78.6% versus the original sequential pipeline. Nothing is cached away. Every number is computed fresh.
- Financial Data + DCFyfinance pull + 10-tab DCF, run concurrently with news analysis.34.0s8.1%
- News scrape + filterFresh articles via SerpAPI + newspaper3k full-text, then LLM relevance filtering. This is the one stage the warm path skips when ≥15 recent articles for the ticker are already in MongoDB. That's ~300s that never re-runs.300.0s71.8%
- News screeningRelevance scoring + structured event extraction, batches fanned out concurrently (~44s vs ~170s serial).44.0s10.5%
- Reporting agentCited narrative synthesis with parallel section generation + recommendation validation.40.0s9.6%
When a ticker's news is already in the database, the ~300s scrape + filter stage is skipped and the same full report lands in ~90 seconds. Every number is still computed fresh.
One request. · The whole pipeline, · start to finish.
Recorded against the live production deployment. We ask about AAPL in plain English. The agent decides it needs the full pipeline and runs the stages in parallel over the shared blackboard. Financials and DCF run on one thread, news screening on the other. You get an analyst report PDF, a 10-tab DCF workbook, and a rated price target. Every number is computed by Python, never invented. On a warm run, this finishes in about 90 seconds.
The interface shipped to 1K pilot users in beta.
This is the live terminal. The agent answers with live charts drawn right in the chat, real-time portfolio analytics, a crypto board, and relevance-scored news. Every tool call streams as it runs.
Real artifacts.
Real tickers.
Every full run produces these. No templates, nothing cherry-picked. This is real output from the 1K-user pilot. Every number is computed in Python. Click any card to preview or download.
NVDA Investment Analysis Report
41 pages · 6 sections · HOLD · $199.31 12-mo target · ≥95% citation coverage
AAPL · 24H News Intelligence
Relevance-ranked headlines · catalysts, risks, and mitigations, each with a cited quote
| A | B |
|---|---|
| WACC (Perpetual DCF) | 9.00% |
| Terminal Growth g | 2.50% |
| Exit Multiple (EV/EBITDA) | 20.0x |
| Shares Out. (diluted) | 15.0 B |
| Current Market Price | $273.40 |
| Value per Share (Perpetual DCF) | $317.24 |
| Value per Share (Exit Multiple DCF) | $252.18 |
| Average of Methods (per-share) | $284.71 |
| Upside vs Market | +4.1% |
AAPL Financial Model
10 tabs · live formulas · dual-method DCF
| Metric | FY0 | FY1 | FY2 | FY3 | FY4 | FY5 |
|---|---|---|---|---|---|---|
| Revenue ($B) | 164.5 | 200.5 | 237.6 | 274.4 | 308.7 | 339.6 |
| YoY Growth | — | +21.9% | +18.5% | +15.5% | +12.5% | +10.0% |
| Gross Margin | 81.7% | 81.7% | 81.5% | 81.2% | 81.0% | 80.5% |
| EBITDA ($B) | 86.9 | 84.6 | 99.8 | 114.7 | 128.1 | 139.2 |
| EBITDA Margin | 52.8% | 42.2% | 42.0% | 41.8% | 41.5% | 41.0% |
| Free Cash Flow ($B) | 54.1 | 67.2 | 80.4 | 93.5 | 105.5 | 115.7 |
META Financial Model
10 tabs · live formulas · dual-method DCF
Measured, not claimed.
Real measurements from the production pilot. Reproducibility was tested across multiple runs and paraphrased prompts.
Financials, DCF, news intelligence, narrative, and validation. The full report lands in ~90s warm, minutes cold. Quick questions answer in seconds. The agent runs only what each request needs.
Across 9 runs · 3 tickers · CV 0.016 on NVDA.
vs. the original sequential pipeline. Stages run in parallel over a shared blackboard, cutting a ~7-minute run to ~90 seconds.
Symbolic outputs reproduce exactly under identical inputs.
Production deployment on Hetzner Cloud.
Across three production repos: agent backend, API orchestration, React frontend. Built solo in six months.
yfinance, SerpAPI free tier, newspaper3k. Bloomberg-grade research at zero data cost, against $24k/seat.
One agent reads your question in any language and decides which of the 17 tools to call: fundamentals, DCF, news, crypto, options, portfolio risk, prediction markets, even a live chart drawn right in the chat. No fixed pipeline, no router.
Read the code. Three repos.
VYNN is three repos under the Agentic-Analyst org. About 50,000 lines of production code, shipped to 1K pilot users on Hetzner. Read the agent loop, the LangGraph pipeline, and the blackboard yourself.

Zanwen Fu
Duke MS Computer Science · ML Engineer, Robinhood Agentic AI
I built VYNN AI solo over six months, end to end: agent backend, API orchestration, React frontend. I wanted to find out if agents could put real financial analysis in everyone's hands.
It worked. A thousand pilot users. Numbers computed in code, real reports. And one agent that answers anything you ask, in any language, and decides for itself what to run.
Ask your first question.
VYNN is live and free. Sign in and ask it anything. Name a stock in any language, ask a market question, or ask for a full valuation. One reasoning agent decides what to run. Quick questions come back in seconds. A full analyst report, a 10-tab DCF model, and a validated recommendation land as fast as ~90 seconds. Every number is computed in Python. Not ready to sign in? Watch it run, read the code, or read the blog.
Launch appapp.vynnai.com · free · sign in with Google or GitHub
- Watch the demo
End-to-end run on AAPL. Request to validated recommendation in real time.
- Star on GitHub
stock-analyst: the agent backend. One agent, 17 tools, a LangGraph parallel pipeline over a shared blackboard, and 34 prompt templates.
- Read the engineering blog
12-min read · the architecture decisions, the calls I got wrong, and what it really takes to run agents in production.