CUREIPortfolio allocationAndrew Jansen ↗

A native macOS app · v0.3.0

Brokerage exports in.
One reviewed portfolio out.

Curei combines inconsistent statements into a dated view of where a portfolio actually sits. AI handles extraction; the user approves the data; ordinary code handles the math.

See the workflow ↓Private repository · source available upon request

The main path

Import, check, commit, inspect.

The review step is deliberate. Statement extraction is useful, but it is not trustworthy enough to write financial records without a person checking the result.

Synthetic Harborview Securities statement photographed at an angle
Photographed statement · PNG
Synthetic Vanguard account statement
Brokerage statement · PDF
Synthetic Wealthfront holdings export
Holdings screenshot · PNG

CUREI EXTRACTION

Normalized holdingstyped rows · ready to review
  1. 01

    Add the source files

    PDFs, CSVs, screenshots, and manual cash balances can be combined in one import run.

  2. 02

    Review the extraction

    The model proposes normalized holdings. Every row stays editable before anything is committed.

  3. 03

    Save a dated snapshot

    Approved holdings are written to local SQLite, with snapshot history kept intact.

  4. 04

    Read the portfolio

    Deterministic code builds allocation views by institution, asset class, geography, and holding type.

The app

A portfolio view, not a spreadsheet replacement.

Curei answers allocation questions after the source data has been reviewed. Dollar and percentage views use the same committed snapshot.

BY ASSET CLASS

What you actually own

POINT IN TIME
$275ktotal
  • US equity$193k
  • International equity$53.4k
  • Bonds$16.0k
  • Cash & currency$12.5k
PORTFOLIO VALUE

Over time

12 MONTHS
$280k$250k$220k
JUNSEPDECMARMAY

+$49.8ksince June 2025

CONCENTRATION

Top holdings

TOP 5
VOO$38.6k
VXUS$23.1k
AAPL$21.8k
TSLA$15.4k
SCHP$10.0k

39.6%of portfolio in top five

Synthetic data. No real account or holding information is shown.

IMPORT

Different source formats, one run

Add a statement per institution, extract them together, then resolve rows in one review table.

HISTORY

Dated snapshots stay separate

Each approved run is retained. A newer import does not rewrite the older picture.

ANALYSIS

Optional, and clearly networked

AI analysis is opt-in. When used, the normalized snapshot is sent to Anthropic and the response is stored locally.

Under the hood

The probabilistic part has a boundary.

StatementsAI extractionTyped review rowsLocal snapshotDeterministic charts

Stack

Python · FastAPI · Pydantic · React · SQLite · PyWebView

The web UI and API ship inside a native macOS wrapper.

Privacy boundary

Snapshots and charts stay local. Extraction and optional analysis require an Anthropic API key and send the relevant data to Anthropic.

Current limits

Apple Silicon only. The build is unsigned. It tracks allocation snapshots, not tax lots or cost basis. Extracted rows still require review.