Northgate Capital
Intraday risk, finally visible before the close.
An event-sourced trading and risk platform that replaced overnight batch reconciliation with sub-second position accuracy across nine asset classes.
- Year
- 2025
- Duration
- 11 months
- Team
- 14 people
- Sector
- Financial Services
0ms
Position latency
From execution to reflected exposure, p99
0%
Reconciliation breaks
Reduction in daily unexplained differences
0hrs
Reporting cycle
Down from 34 hours at month-end close
$0.0B
Assets covered
Under live risk management
Northgate Capital Partners
A multi-strategy asset manager with $14.3B under management, trading equities, fixed income, FX, and derivatives across North American, European, and Asian sessions.
To manage institutional capital with the transparency our clients would demand if they could see everything we see.
Logo concept
A portcullis rendered as an ascending bar chart — the gate as both security and market structure.
#1E3A8A#3B82F6Founded
2003
Headquarters
Boston, Massachusetts
Employees
310
Sector
Financial Services
Every surface we shipped
11 designed screens across 2 deliverables, rendered live rather than captured as static images.
Client Portal Home
Mandate performance and allocation at a glance.
Risk Dashboard
Live exposure, VaR, and limit utilization across desks.
Attribution
Performance decomposition by factor, sector, and desk.
Order Blotter
Real-time execution flow with allocation and fill detail.
Instrument Master
Reference data across nine asset classes with corporate actions.
Regulatory Reporting
SOX-traceable statements and position disclosures.
Settings
Organization, team, and integration configuration.
Mobile application
Sign In
Create Account
Notifications
Profile
Across every form factor
The same design system, rendered at each breakpoint it has to survive.
The challenge
Northgate's risk numbers were a day old. Positions reconciled overnight in a batch that finished around 4 a.m., meaning portfolio managers traded all day against yesterday's exposure. During the March volatility event, one desk breached its concentration limit at 10 a.m. and nobody knew until the following morning. Month-end close took 34 hours of largely manual reconciliation, and the break log routinely ran past 300 unexplained differences.
Research
- Traced every calculation in the existing risk stack, including 14 spreadsheets that turned out to be load-bearing
- Interviewed portfolio managers, risk officers, and operations staff across all three trading regions
- Analyzed twelve months of reconciliation breaks to classify root causes
- Benchmarked latency requirements against the actual decision cadence on each desk
The solution
We rebuilt position keeping as an append-only event ledger in Go. Every execution, corporate action, and adjustment is an immutable event; positions are a projection that can be recomputed deterministically from any point. This eliminated the entire class of break where the position and its history disagreed. Risk calculations subscribe to the same event stream, so exposure updates within 800ms of a fill rather than overnight. ClickHouse backs the analytical surface, letting risk officers slice twelve months of tick-level history without touching the transactional path.
UX decisions
Limit utilization shown as a continuous gauge, never a binary pass/fail
Risk officers needed to see approach, not just breach. A desk at 94% of its limit is a conversation; at 101% it's an incident.
Every number links to its constituent events
The legacy system's fatal flaw was unexplainable figures. Making every aggregate drillable to source events is what earned the risk committee's sign-off.
Deliberately no auto-refresh on the blotter during active review
Rows shifting under a cursor caused real allocation errors in testing. Updates queue behind an explicit indicator instead.
Regional session awareness in the default view
A Boston risk officer at 8 a.m. cares about Asian close, not US open. The dashboard opens on whichever session is live.
Features
- Append-only event ledger with deterministic position replay
- Sub-second exposure and VaR across nine asset classes
- Pre-trade and intraday limit checking with escalation workflows
- Performance attribution by factor, sector, desk, and strategy
- Corporate action processing with automated position adjustment
- SOX-traceable regulatory reporting with full calculation lineage
- Client portal exposing mandate-level performance and allocation
Technology
Architecture
Execution feeds from three OMS providers land in Kafka with strict per-instrument ordering. A Go ledger service validates and appends events, then publishes projections to PostgreSQL for transactional reads and ClickHouse for analytics. Risk calculators are stateless consumers that rebuild from the log on deploy, which makes model changes safe to roll out and trivial to roll back — we can replay a full trading day through a new model in under four minutes. Redis fronts the hot position cache. The whole estate is Terraform-managed across two regions with active-passive failover rehearsed monthly.
Results
Position latency settled at 800ms p99 from execution to reflected exposure. Unexplained reconciliation breaks fell 91%, and the residual set is now dominated by genuine upstream data issues rather than internal disagreement. Month-end close compressed from 34 hours to 6. The risk committee approved retiring the legacy batch entirely after two parallel closes — a decision the CRO had expected to take a year of evidence.
Lessons learned
- 01The load-bearing spreadsheets were the real project. Discovering them took six weeks and reshaped the architecture more than any stated requirement did.
- 02Parallel running through two full month-end closes was expensive and non-negotiable. The first close surfaced three model discrepancies that no amount of unit testing had caught.
- 03Deterministic replay turned out to be the feature that sold the platform internally. It was designed for correctness, but its real value was letting risk officers answer 'why did this number change' without calling engineering.
How the engagement ran
11 months across 4 phases with a team of 14.
Risk Model Discovery
6 weeksReverse-engineered the existing risk calculations, which lived partly in undocumented spreadsheets.
Model specificationBreak taxonomyData lineage mapEvent Ledger Foundation
14 weeksBuilt the append-only ledger with deterministic replay and parallel-run validation.
Event storeReplay engineShadow reconciliationRisk & Blotter Build
18 weeksDelivered live exposure, limits, and the execution blotter against production feeds in shadow mode.
Risk dashboardOrder blotterLimit engineParallel Run & Cutover
10 weeksRan alongside the legacy batch for two full month-end closes before switching authority.
Variance reportsCutover planRegulatory sign-off
“The number that matters to me is 91% fewer breaks. But what changed how we operate is that I can now explain any figure on the screen to a regulator in about thirty seconds.”
Have a problem shaped like this one?
We start every engagement with a paid discovery sprint. You get an architecture assessment and a delivery plan — whether or not you continue with us.
Related engagements
About this case study: Northgate Capital Partners is a fictional client. This engagement, its metrics, and its quotes are illustrative work product created to demonstrate our delivery approach, architecture reasoning, and design process. They do not describe a real customer.


