Whispr.Marketing
Next.jsTypeScriptSupabaseDrizzleClaude APIExcelJS

NumWise

Accounting SaaS with format-agnostic bank-statement import (CSV, XLSX, OFX, QIF, MT940, CAMT.053 from any bank or country), AI-assisted column mapping, and 113 shipped features - live at numwise.eu.

Live in productionsaasnumwise.eu
NumWise - Accounting SaaS

// delivery facts

113

Features shipped

Budgets, categories, multi-account consolidation, import pipeline

6

Parser formats

CSV, XLSX, OFX, QIF, MT940, CAMT.053 - any bank, any country

168+

Parser tests

Production-grade coverage; real bank exports used as fixtures

103 KB

Bundle savings

Initial bundle after lazy-loading parser modules (was 1 MB)

The challenge

Accounting tools forced users to export from their specific bank in a specific format, then re-import manually - a process that breaks immediately when switching banks, countries, or software versions.

  • 1

    Every bank exports in a slightly different column layout even within the same nominal format (e.g. CSV)

  • 2

    Proprietary formats like MT940 and CAMT.053 required specialist parsing libraries that most tools did not support

  • 3

    Column-mapping was a manual, error-prone step that users had to redo every time they imported a new file

  • 4

    Multi-account households had no consolidated view - each account lived in a separate import silo

How it was built

Format-agnostic parser registry with six adapters (CSV, XLSX, OFX, QIF, MT940, CAMT.053) plus a Claude API column-mapping layer for unknown layouts, unified into a single NormalizedRow pipeline.

  • Parser registry pattern: each adapter is self-describing and emits a typed NormalizedRow - the downstream pipeline is format-agnostic by design

  • Claude API column-mapping layer activates only when the parser detects an unknown column layout; it resolves ambiguous headers and stores the learned mapping for reuse - no repeated prompting

  • MT940 and CAMT.053 parsers ported from a production meocc codebase with 168+ tests - verified against real bank exports from PKO, Pekao, ING, and Revolut

  • Lazy-loaded parser modules reduce initial bundle by approximately 10x (from 1 MB to 103 KB) - heavy parsing logic only loads when the user triggers an import

  • Multi-account consolidation aggregates transactions across any number of linked accounts into a single ledger view with budget tracking and category assignment

What shipped

Production accounting SaaS live at numwise.eu - 113 features shipped, 6-format parser with 168+ tests, and AI-assisted column mapping for unknown bank layouts.

NumWise screenshot 2
NumWise screenshot 3

// full stack

Next.jsTypeScriptSupabaseDrizzleClaude APIExcelJS

Want something built like this?

Free qualifying call - 20 minutes. Fixed price. Real code. You own it.

No contracts
Transparent pricing
You own the code