Standardizing the Ingestion Interface: OpenBrokerCSV and the MIT Importer

Standardizing the Ingestion Interface: OpenBrokerCSV and the MIT Importer

4 50 109
calendar_todayschedule1 min read

Standardizing the Ingestion Interface: OpenBrokerCSV and the MIT Importer

We open-source a financial interaction workflow — not a bag of UI widgets. The concrete artifact is @pocket-portfolio/importer (packages/importer, MIT on npm). It normalises broker-specific chaos into a Trade model the app and SDK consumers can reason about.


Package reality

From packages/importer/package.json:

  • Name: @pocket-portfolio/importer
  • License: MIT
  • Surface: TypeScript adapters (Robinhood, Fidelity, eToro, IBKR Flex, Koinly, TurboTax, Ghostfolio, Sharesight, and more) + universal inference for unknown CSV shapes.

Schema SSOT in-repo: packages/importer/README.md, packages/importer/src/universal/types.ts, adapter registry in src/registry.ts. A dedicated SCHEMA.md is on the roadmap; until then, cite TypeScript types and README — do not invent a phantom file path in external copy.


Client-side parse by design

Broker CSV parsing runs in the browser for the product architecture we ship — the file does not need to land on an app-server disk for transformation. That supports:

  • Inspectable transforms (clone the repo, read the adapter),
  • Reduced central warehouse temptation for raw exports,
  • Adversarial testing in src/universal/adversarial.ts without multi-tenant DB blast radius.

Universal mapping: truncated preview only

For unknown columns, docs/IP-TECHNICAL-MECHANISMS.md documents truncated payload for mapping assistance: headers + sample rows — full file stays client-side. This mirrors the Ask AI instinct (Part 2): send the minimum structure needed for the next step.


OpenBrokerCSV narrative

Open Portfolio surfaces OpenBrokerCSV as the procurement-facing name for the normalised interchange (app/open/openbrokercsv/page.tsx). Pocket exercises the same package under retail UX pressure — that is the harness relationship (Part 6).


What we do not promise

  • A plugin marketplace runtime in app/ — not shipped.
  • “Zero server” after import for signed-in users — Firebase still holds authoritative trades (Part 4).

Do point engineers to GitHub, Discussions, and npm — the real contributor loop (README-OSS-WORKFLOW.md).


Part 5 of Sovereign Ingestion & Stateless Inference.

Read the full Sovereign Intelligence book, explore Open Portfolio, or try Pocket Portfolio.

🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Optimizing the Clinical Interface: Data Management for Efficient Medical Outcomes

Huifer - Jan 26

The Interface of Uncertainty: Designing Human-in-the-Loop

Pocket Portfolio - Mar 10

Just completed another large-scale WordPress migration — and the client left this

saqib_devmorph - Apr 7

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19

Local-First: The Browser as the Vault

Pocket Portfolio - Apr 20
chevron_left
5.8k Points163 Badges
United Kingdompocketportfolio.app/press
66Posts
50Comments
32Connections
Led delivery of OceanBrain at National Grid Ventures, reducing manual subsea investigations by 60%.
... Show more

Related Jobs

View all jobs →

Commenters (This Week)

6 comments
2 comments
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!