← All projects

Product study · Tax software · Live

BrokerTax

Prepare a Swiss eSteuerauszug from IBKR or DEGIRO exports, with each figure tied to its source for review.

01 / The task

What needed to work

Swiss investors need to reconcile year-end positions, income and currency conversions before filing. BrokerTax turns a broker export into a review case and a Swiss tax statement.

My role

I set the product scope, direct the agent workflows and decide what is ready to ship.

02 / Decisions

Where judgment mattered

Keep accounts separate

I keep each broker and account in its own case so every line can be checked against its source export.

Use one engine for local and hosted apps

The local app and hosted service share the import, review and filing pipeline. The hosted service adds guest sessions and payment handling at the edge.

Keep warnings with their source rows

Review warnings stay with their source rows; only filing blockers stop PDF and XML generation.

Separate filing and review documents

The filing PDF contains supported tax data. Separate review and reconciliation files carry fees, warnings and source details.

Keep reference values traceable

Each case keeps the reference snapshot used for review and records the source of its currency and security values.

Require evidence for lifecycle events

Lifecycle calculations follow the recorded option, bond and corporate-action evidence for each holding.

Keep local cases in memory

The local app runs on loopback, keeps cases in memory and redacts support diagnostics.

03 / Agent contribution

How the work was directed

An idea taken through product definition, agent-assisted implementation, review and launch.

Owner account

  1. Define the user journey and acceptance criteria
  2. Direct implementation with AI coding assistants
  3. Review changes and test the generated artifacts
  4. Release the verified product

A reviewable output, not a silent conversion

Implementation inspected · task brief

Import a broker export, preserve source references, surface warnings for review, and generate the statement only when filing checks permit it. This brief summarizes the inspected product behavior; it is not a transcript of an agent session.

04 / Verification & result

What the evidence supports

Verification

The product has a working import, review and document-generation flow. The project notes record a synthetic local capture; the agent-assisted delivery method is my account of the work.

Result

Launched as a live product with customers.

Implemented functionality

  • IBKR Activity Flex XML. Imports annual Flex XML reports and maps accounts, holdings, cash, trades, fees, options and corporate actions into a review case.
  • DEGIRO activity and portfolio CSV. Combines the account activity and year-end portfolio exports, normalizes supported transaction descriptions and keeps each source row available for review.
  • Tax review case. Shows tax totals, filing identity, warnings and source-row decisions together.

Implementation inspected

The screenshots show demo data, public observations or labelled report presentations, as described in each caption.

Supporting detail

Technology

  • Python 3.11+
  • Python standard-library HTTP server
  • Vanilla HTML/CSS/JavaScript browser frontend
  • lxml
  • ReportLab
  • pypdf
  • Pillow
  • zxing-cpp
  • Java 17+ Macro PDF417 helper
  • eCH-0196 v2.2.0
  • eCH-0270 v1.0.0
  • Caddy hosted edge