Software and IT consulting.

Software development · design system

aifin

A self-hosted wealth planning and investment research console for Canadian portfolios: retirement simulation, tax-aware analytics, market intelligence and backtesting.

Problem

Planning a Canadian retirement across registered and non-registered accounts means juggling tax treatment, withdrawal order, market regime and income targets at once. Consumer tools either hide the assumptions or stop at a single projection. Brokerage dashboards report the past; they do not rank the next decision.

The goal was a single console that answers one question every day: what to do next, ordered by what protects the portfolio most.

Approach

aifin is a self-hosted Blazor Server application with background workers for market data, regime scoring and simulation. Each view is built around a decision rather than a dataset: a recommendation ladder, a needs-attention queue, a retirement ledger, Monte Carlo fan charts and a backtester for strategy sleeves.

The interface is treated as an instrument panel: dense, mono-forward, every number in tabular figures with an explicit sign, every status carrying a word or glyph alongside its colour. A missing value is an em dash, never a zero.

Design system

The console runs on one stylesheet and two themes (paper and slate), with no component library. A hostile accessibility audit drove a full pass on the tokens: tertiary text raised to clear 5:1 contrast, a dedicated border colour so form fields clear the 3:1 control floor, status text separated from status marks, and a colour palette for data series validated in both themes.

The rules are enforced in code. Tests in CI pin which elements may use the accent colour and reject inline styles that bypass the type and spacing scales, and the content security policy refuses inline scripts and style blocks.

Result

A daily decision tool in active use, and a documented design language. This site is built on that design language.

Contact

Start with a conversation

Service in English and French

info@wntrdev.ca