← Back to portfolio
Goldman Sachs · Associate PM · 2022 – 2024

Real-Time Risk. $1.2B Freed.

Regulators required Goldman to hold extra capital because risk was calculated two days after trades settled. I built the pipeline to generate risk in real time, at end of day, so that capital buffer was no longer needed.

Team
Risk Engineering
Scope
10+ regions, multiple business lines
Impact
$1.2B capital released · $25M annual P&L
Stack
SQL REST APIs Risk Systems Jira Data Pipelines

The Problem

Goldman's risk pipelines were slow. Trades would come in from dozens of business lines across the globe, each with their own systems and data formats, and by the time everything was collected, normalised, and processed, two days had passed. The firm was generating risk reports for trades that had already happened 48 hours ago.

Regulators saw this lag and required Goldman to hold additional capital as a buffer against that two-day window of uncertainty. That buffer sat at $1.2B — capital that was not working, not generating returns, just parked there because the firm could not show regulators an accurate same-day risk picture.

The fix sounds straightforward: speed up the pipelines. The execution was anything but. Trades came from dozens of different business lines, each running their own systems on their own schedules. Getting all of them to emit data fast enough to support same-day risk generation required rebuilding pipelines that nobody had touched in years, across teams that had no direct incentive to change.

Before and After

Before
T+2 Risk Generation
Risk calculated two days after trades. Regulators required $1.2B capital buffer to cover the uncertainty window. Risk managers working with stale data. No real-time monitoring or limit breach alerting.
After
Same-Day Risk Generation
Risk calculated at end of same day trades execute. Capital buffer released. Risk managers with a live dashboard showing current exposure, limit utilisation, and breach alerts in real time.

What I Built

The project had two distinct parts. First, building the data pipeline that could source trade data in real time from every business line. Second, building the risk manager tool that consumed that data and gave users something they could actually act on.

1
Business team discovery
Worked with trading, secured financing, and other business lines across 10+ regions to map out every data source. Each had different systems, different formats, different latencies.
2
Upstream pipeline uplift
Worked with each business tech team to upgrade their data pipelines so trades could be emitted in real time rather than in overnight batch jobs. This required buy-in from teams who had no direct incentive to change systems that were working fine for them.
3
Risk pipeline uplift
Upgraded our own risk calculation pipeline to consume the real-time trade feeds and generate risk positions continuously throughout the trading day rather than as an overnight batch.
4
Risk manager dashboard
Built a tool for risk managers to see current exposure, monitor against limits, receive alerts on limit breaches, and manage approval workflows. The pipeline was the foundation but this was where users actually lived.
5
Regulatory sign-off
Worked with compliance and presented the methodology to regulators to demonstrate same-day risk generation was accurate enough to remove the capital buffer requirement.

The PM Challenge

The engineering was hard. The product management was harder. This was not a project where someone handed me a spec and said build it. I had to figure out what to build, convince people who had no obligation to help me to help me, sequence work across three continents, and make tradeoff calls with incomplete information throughout.

Mapping the stakeholder landscape Before writing a single requirement I spent the first month just talking to people. Trading teams in New York, secured financing in London, equity derivatives in Hong Kong. Risk managers in each region who would eventually use the tool. Compliance and legal who would have to sign off on the methodology. Each group had different priorities, different concerns, and different definitions of what success looked like. Getting alignment across all of them was the actual job.
The prioritisation problem We could not uplift every business line at once. I had to sequence which upstream teams went first based on three factors: volume of trades they generated, complexity of their existing pipeline, and their willingness to engage. Americas trading went first because of volume. Asia came second despite more complexity because the regional lead was genuinely bought in. Europe was last because their system had the most legacy debt and needed a longer runway. Getting that sequencing wrong would have killed the project.
What user research with risk managers actually changed My initial dashboard design was built around what I thought risk managers needed: accurate numbers as fast as possible. When I finally did structured sessions with them, I learned the numbers were almost secondary. What they actually needed was workflow. When a limit breach happened at 3pm in London, who saw it, who had to approve an exception, and how did that get documented for the regulator? I had built a monitoring tool. They needed a workflow tool. That realisation reshaped the second half of the project.
Cutting scope to ship The original roadmap included intraday risk updates every 15 minutes. After talking to risk managers it was clear they did not need intraday — they needed end of day but accurate. Cutting intraday took three months off the timeline and let us ship something that worked rather than something aspirational. That was the right call even though it felt like a retreat at the time.

What Made It Hard

Nobody wanted to change a working system Every upstream team had batch pipelines that worked fine for their own purposes. Asking them to rebuild for real-time feeds was asking them to take on engineering risk for a benefit that showed up in someone else's P&L. Getting that work prioritised required a lot of stakeholder management across teams I had no authority over.
10 regions, 10 different interpretations of the same requirement What counted as a trade, how it was timestamped, what fields were available — all of this varied by region and by business line. Standardising that without breaking anything downstream took most of the early project time.
Risk managers did not trust the new numbers at first When we launched the real-time dashboard, risk managers compared it against the T+2 reports they were used to and flagged discrepancies. Most were explained by the fact that the real-time view was more accurate, not less. But earning that trust took months of side-by-side validation.
Regulatory language is not engineering language Translating what regulators needed into requirements engineering could actually build was a skill I had not expected to need. The compliance team and the engineering team were often talking past each other and I spent a lot of time in the middle.

The Numbers

$1.2B
capital buffer released after same-day risk achieved
$25M
annual P&L impact from deploying that capital
T+0
risk generation at end of same trading day, down from T+2

What I Took From This

The technical problem was the easy part The hard parts were organisational. Getting 10 business tech teams to prioritise work for a benefit they would not see, earning trust from risk managers who had used the old system for years, translating between regulatory and engineering language. None of that shows up in a requirements doc.
Engineering background as a PM superpower I could sit with a trading system's tech team and understand why their pipeline was structured the way it was. I could write precise data requirements that engineering did not have to interpret. That saved months across a project that ran for years.
Users are not always who you think they are The regulators were a key stakeholder but the daily users were risk managers. I spent the first few months focused on the pipeline and not enough time with risk managers. When I finally did systematic user research with them, it changed the dashboard significantly. I should have started there.
← Back to portfolio