---
title: Importing Data
description: Drop your brokerage export, spreadsheet, or screenshot into Claude. It reads the format, maps the columns, and logs everything into firma. You just watch.
---

export const features = [
  { icon: 'fmt', title: 'Any format', desc: <>CSV, Excel, PDF, screenshot, plain text, copy-paste from a browser. You don't need to clean or reformat anything before handing it over.</> },
  { icon: 'col', title: 'Any column naming', desc: <>"Exec Price", "Trade Price", "Unit Cost", or non-English headers from your local broker. Claude figures out what each column means. If it's ambiguous, it asks once and proceeds.</> },
  { icon: 'ord', title: 'Correct order, automatically', desc: 'Transactions are logged chronologically so average cost calculations stay accurate, even if your file is sorted differently.' },
  { icon: 'gap', title: 'No file? Just describe it', desc: 'If your records are incomplete or only in memory, tell Claude what you remember. It fills in what it can and flags the gaps so nothing distorts your cost basis.' },
];

export const tradeImport = [
  {
    user: <>[trades.csv attached]<br/>Here's my trading history from Interactive Brokers. Log all of these into firma.</>,
    ai: <>
      <p>I can see 47 transactions. I'll log them in chronological order so the average cost stays accurate. Starting now:</p>
      <p style={{marginTop:'0.5rem'}}>
        ✓ TSLA buy 100 @ $78.00 · 2025-01-02<br/>
        ✓ TSLA buy 62 @ $252.00 · 2025-01-02<br/>
        ✓ TSLA buy 5 @ $406.00 · 2025-01-03<br/>
        <span style={{color:'var(--muted)', fontSize:'0.85em'}}>... 44 more</span>
      </p>
      <p style={{marginTop:'0.5rem'}}>Done. I logged 47 transactions. Run <code>firma sync</code> to pull current prices, then I can show you your full portfolio with P&amp;L.</p>
    </>,
  },
];

export const noFile = [
  {
    user: "I've been buying TSLA regularly over the past year. I have about 392 shares total. Here are the trades I remember: 100 shares at $78 in Jan 2025, 62 at $252 same day, then a bunch of smaller buys through 2025 and early 2026 averaging around $300. The current avg cost should be around $245.",
    ai: 'I\'ll log the ones you\'ve described and flag the rest as approximate. For transactions without exact records, I\'ll use a "deposit" entry so it doesn\'t distort the average cost calculation. Want me to proceed?',
  },
];

export const balanceImport = [
  {
    user: <>[net_worth.xlsx attached]<br/>This spreadsheet has my monthly asset snapshots since 2023. Each row is a month with columns for investments, savings, car, pension, and loans. Log all of it.</>,
    ai: <>
      <p>Got it. There are 36 monthly entries from 2023-04 to 2026-03. I'll map the columns to firma's categories and import them now.</p>
      <p style={{marginTop:'0.5rem'}}>
        ✓ 2023-04  Investments $57.5K · Cash $21.7K · ...<br/>
        ✓ 2023-05  Investments $60.2K · Cash $23.0K · ...<br/>
        <span style={{color:'var(--muted)', fontSize:'0.85em'}}>... 34 more months</span>
      </p>
      <p style={{marginTop:'0.5rem'}}>Done. Run <code>firma report</code> to see your full net worth history with trends.</p>
    </>,
  },
];

export const flowImport = [
  {
    user: <>[income_expense.xlsx attached]<br/>This has my income and expenses by month and category since 2023. Columns: month, salary, business income, rent, utilities, food, other. Import it all.</>,
    ai: <>
      <p>I'll map these to firma's categories automatically and import all 36 months.</p>
      <p style={{marginTop:'0.5rem'}}>
        ✓ 2023-04  Income $6,340 · Expenses $3,142  (savings 50.4%)<br/>
        ✓ 2023-05  Income $5,500 · Expenses $4,531  (savings 17.6%)<br/>
        <span style={{color:'var(--muted)', fontSize:'0.85em'}}>... 34 more months</span>
      </p>
      <p style={{marginTop:'0.5rem'}}>Done. Your average savings rate across 36 months is <code>38.2%</code>.</p>
    </>,
  },
];

export const tips = [
  { icon: '①', title: 'Import portfolio first', desc: <>Start with trade history. Once the portfolio is in place, run <code>firma sync</code> so Claude can reference live P&amp;L when you import net worth and cash flow history.</> },
  { icon: '②', title: 'Review after each import', desc: <>After each import, ask Claude to run <code>firma show portfolio</code> or <code>firma report</code>. It's the fastest way to catch obvious mistakes before you layer on more data.</> },
  { icon: '③', title: 'Partial data is fine', desc: "You don't need complete history to start. Even 6 months of data is enough to see trends. The longer you use firma, the more useful it becomes." },
];

<Section label="Claude handles everything">
Tip: type <code>/import-trades</code> in Claude Desktop for a guided flow.

  <FeatureList items={features} />
</Section>

<Section label="Importing trade history">
Export your trading history from your brokerage (usually CSV or Excel),
attach it to Claude Desktop, and say:

  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={tradeImport} />

  <Note>
    If your CSV has unusual column names, just describe them once:
    "the column called 'Qty' is shares, 'Exec Price' is the price."
    Claude handles the rest.
  </Note>
</Section>

<Section label="No file? Just describe it">
  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={noFile} />
</Section>

<Section label="Importing net worth history">
  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={balanceImport} />
</Section>

<Section label="Importing cash flow history">
  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={flowImport} />
</Section>

<Section label="Tips">
  <FeatureList items={tips} />
</Section>
