The financial analyst who never makes up a number.

Upload your statements and get a structured ledger of your real finances — plus a chatbot that only ever says what your data actually shows.

No bank credentials required · Encrypted at rest.

Your categorized ledger2 accounts · auto-categorized
Jun 1Gusto Payroll+$6,250.00Salary
Jun 3Whole Foods Market−$142.30Food & Drink
Jun 5Chevron−$61.20Transportation
Jun 6Stripe Transfer+$1,800.00Freelance
Jun 7Netflix−$15.49Subscriptions
Ask your money
How much did I spend on dining last month?
$1,240 — up 38% from your 3-month average of $897, driven by 5 charges over $100.
based on: spending_by_category

You have the data. You don't have the picture.

Most financially active people have four to six accounts across different institutions, producing dozens of statements a year that nobody actually reads. Existing finance apps force a choice: hand bank credentials to an aggregator and hope the connection holds, or do it yourself in a spreadsheet. Neither gets you an answer the moment you actually have a question.

Why not just paste your statements into ChatGPT?

You can — ChatGPT and Claude will parse a statement and answer. The difference isn't capability, it's who does the math: they compute totals by reasoning over rows in the prompt, while personalCFO runs the numbers in code and has the model read the result. For money, “fluent but occasionally wrong” is worse than a number you can trust.

Who does the math
ChatGPTComputes totals by reasoning over rows in the prompt — it can miscategorize a row, get a credit-card sign backwards, and confidently return the wrong total.
personalCFONever does the arithmetic. The chatbot calls structured tools that query the database; the model only reads back the result.
Data volume
ChatGPT3 accounts × 12 months is 3,000–5,000+ transactions — past the point a context window holds, so you re-upload every session and overlapping dates get double-counted.
personalCFOBuilds one persistent, deduplicated ledger that grows with each import — nothing to re-paste, no double-counting.
Statement parsing
ChatGPTEvery bank uses different sign conventions, layouts, and encodings. A general model parses them inconsistently and fails silently.
personalCFOInstitution-specific parsers with automatic sign-inversion detection and duplicate removal across files.
Income intelligence
ChatGPTTreats every deposit the same, and you'd re-explain what's salary vs. transfer vs. refund every month.
personalCFOA classification layer separates salary, freelance, rental, interest, and gig income, asks you to confirm the unsure ones, and persists the decision.
Proactivity
ChatGPTA chat session can only answer what you ask — it can't surface what you didn't think to ask about.
personalCFOFlags new subscriptions, duplicate charges, and cashflow risk on its own, because it remembers across months.
Privacy
ChatGPTStatements become part of a general-purpose chat history.
personalCFOPurpose-built for financial data: encrypted at rest, account numbers masked, never used to train a model, never sold.
Auditability
ChatGPTA fluent paragraph with no way to check its work.
personalCFOEvery figure links back to the exact transactions behind it, with a confidence score attached.
ChatGPT does the math itself and sometimes gets it wrong. personalCFO does the math in code and has the LLM read the answer.

From statement to answer in four steps.

  1. 1

    Upload statements

    Drag in PDFs or CSVs from any of your accounts (Chase, Amex, Bank of America, Citi, Capital One, Wells Fargo, and more). Multiple files, multiple institutions, one import.

  2. 2

    Watch it scan

    A live scan shows the system finding income, large expenses, and transfers in real time. Not a spinner: a window into the reasoning.

  3. 3

    Confirm your income

    A quick, pre-filled review of salary, freelance, rental, and gig income. Usually under three minutes. Accept what's right, correct what's not.

  4. 4

    Ask anything

    Chat with your real financial history, and watch the Insight Feed surface what's worth knowing without being asked.

What personalCFO does

Multi-institution import

Chase, Amex, Bank of America, Citi, Capital One, Wells Fargo, and more, in PDF or CSV, in one batch.

Smart income classification

Salary, freelance, rental, interest, gig: auto-detected, and easy to correct in under three minutes.

Grounded, hallucination-free chat

Every figure traces back to a real transaction. If the data doesn't exist to answer a question, the system says so.

Proactive Insight Feed

Ten detectors surface what's worth knowing before you think to ask.

No bank credentials, ever

You upload statements you already have. Nothing is linked, nothing is stored beyond what's needed.

Built for multi-income earners

Most finance apps assume one paycheck. personalCFO doesn't.

Always watching, never nagging.

An analyst's flag when something deserves your attention — never a lecture about how you spend.

Subscription creepmedium confidence

You've added 3 new subscriptions this quarter — $47/month more than January.

Duplicate chargehigh confidence

$89.99 to Adobe appears on two statements, three days apart. Likely a duplicate.

Cashflow riskmedium confidence

At your current pace, you're on track to run about $340 short before your next paycheck.

Built like it knows it's handling your money.

  • No bank credentials requested, ever.
  • Transaction data encrypted at rest.
  • Account numbers masked to the last 4 digits.
  • No ads, no data selling, no hidden commissions.

How AI features handle your data

Categorization and chat send the minimum necessary data to our model provider, under terms that prohibit training on it — never your bank login, never your full account numbers. Your statements stay in your own encrypted ledger; nothing is sold or used to build a profile.

Find out what your statements have been saying all along.

Free account, no bank login required. Takes about 3 minutes.