I got tired of building massive Excel files and manually copy-pasting numbers to analyze company financials and perform fundamental analysis. So I built Intrinsic: a desktop app that parses financial reports (PDF, HTML, etc.), extracts key metrics, and lets you track and evaluate companies quickly.
How it works:
1) Accepts raw financial reports (PDF, HTML, MHTML, …) and URLs.
2) Parses, normalizes and cleans text. Text manipulation turned out to be key for reliable LLM-based data extraction. By normalizing text, restructuring sentences, and removing noise, model receives better clues and returns much more precise results. A large part of the project became about shaping strings so financial information is clear, predictable, and machine-friendly (see renderer/pipeline). The pipeline is still a bit messy, since I iterated and refactored as I learned what worked best.
3) Extracts core financial metrics: cash, assets/liabilities (current, non-current, total), equity, revenue, net income, EPS, cash flows. Calculates ratios: liquidity, P/E, P/BV, EV multiples, etc.
4) UI features: Historical metrics and ratios, YoY changes, TTM values, valuation scenarios (required EPS/earnings for price targets), editable data, annual-only filters, copy JSON to clipboard (useful for chatbots), navigation across reporting periods...
Why I built it:
- Manually processing financial statements is tedious and error-prone.
- I wanted a unified, personal tool with a clean UI and structured, objective data to evaluate and track interesting companies.
Current limitations: The system relies heavily on string manipulation (no OCR) and LLM accuracy, so complex or unusual report layouts can produce missing or incorrect data. I’d like to replace this with a NER-based system trained on labeled filings, removing most of the heavy string manipulation and LLM inference.
I’m new to Electron, so the update mechanism is intentionally simple for now. Essentially just a rebuild-from-source approach rather than a full auto-update pipeline.
MIT-licensed code: https://github.com/vctrla/intrinsic
Feedback and contributions are very welcome, especially on the NER-based extraction side-quest.