Case studies
Four projects from my work at Phillip Nova, a regulated brokerage in Singapore. Each one shows a different part of how I work as a Product Manager. Figures are rounded, and confidential details are left out.
-
Retiring a legacy onboarding platform
Deciding what to do with about 8,000 old applications, using data instead of a migration project.
Shipped
-
Making market data subscriptions self-serve
Turning daily support calls into research, then cutting the first phase down to one problem.
Requirements in progress, Q4 2026
-
One login across three trading platforms
Designing a shared identity for the client portal, our trading app and MT5.
Requirements ready for technical assessment
-
Fixing a dead end in the eligibility check
A small, evidence-led fix for applicants who got stuck one step before finishing.
Shipped
Retiring a legacy onboarding platform
Once our new account-opening platform was live, the old one still had thousands of applications sitting in it. I wrote the plan to switch it off safely in 60 days, without building anything new.
- My role
- Product Manager, owner of the sunset plan
- Worked with
- IT, the account approval team, Customer Service and Compliance
- Constraints
- MAS guidance on using NRIC numbers for login and PDF passwords, plus audit retention rules
- Result
- Only about 1 in 8 records needed a decision, and every one of them had a clear rule
This follows on from rebuilding trading account onboarding. Launching the new platform was half the job. The other half was closing the old one without hurting anyone still in it.
The problem
The old platform held about 8,000 applications going back to 2019. Nobody was sure how many were still "live", so switching it off felt risky. Meanwhile it still relied on NRIC-based flows that new MAS guidance was moving away from. Every extra month it stayed up extended that exposure.
What I did
-
Sized the real problem first
I pulled every record and grouped it by status. Nearly 9 in 10 were already finished: approved, rejected or expired. That turned "8,000 applications" into about 1,000 that actually needed a decision.
-
Picked the right signal
I sorted the remaining records by when anyone last touched them, not when they were created. An application worked on last year isn't comparable to one abandoned in 2020. Almost all had sat untouched for more than a year. Only a handful were recent.
-
Wrote simple rules for each group
Stale records were expired on day one. The few recent ones got a personal email and 30 days to reply. The single record with activity this year was handled by hand.
-
Set a timeline with owners
Freeze new work a week before. Redirect all traffic on day zero. Switch the client site off at day 60, keep a read-only admin view for a year for audits, then archive.
Key decisions
Reuse what already exists. We already had an "Expired" status that stops reminder emails, keeps the record for audit and lets the client apply again later. Using it meant no new states and no new tooling.
Don't migrate old applications. The two platforms store data differently, and identity checks on anything over a year old would be out of date anyway. The engineering effort would have served about six people.
Leave approved clients alone. They are already customers. Contacting them would create confusion and churn risk for no benefit.
Never hard-delete. Retention rules require records to stay, and a soft end state keeps every application reconstructable.
Result
- A 60-day plan instead of an open-ended migration project.
- A risk register covering the obvious worry, expiring someone who is still active, with a filter that no active applicant could fall into.
- A written record we could show as evidence that the NRIC exposure was being closed on a fixed timeline.
What this shows
Most of the work was deciding what not to do. A clear number and a clear rule made a scary-sounding change easy for every team to agree to.
Making market data subscriptions self-serve
Clients were calling support every day just to add or change their market data. I ran discovery with five internal teams, then deliberately scoped the first phase to the one problem we could fix fastest.
- My role
- Product Manager, from discovery to requirements
- Worked with
- Business units, Customer Service, IT support, the account approval team, the market data team and a product designer
- Constraints
- No changes to approval rules, billing or back-office terminology in this phase
- Status
- Requirements and designs in progress for Q4 2026
The problem
To use live prices from an exchange, a client needs a market data subscription. Managing one in our client portal meant moving between five separate pages, reading admin terms like "Apply New Product/Platform", and submitting a separate form for every exchange. Clients asked support for help so often that it had become a daily task.
I am very confused whenever I want to manage my market data subscription. Where do I go? There are so many pages.
Discovery
I ran separate sessions with each team that touches market data, because each saw a different slice. Business units voted on pain points. Customer Service listed their most common questions. IT support explained how approvals and page visibility worked. The market data team confirmed which rules were regulatory and which were just history. I also reviewed how competing brokers handle the same journey.
The most useful finding: the rule that clients must submit one form per exchange wasn't a regulatory requirement. It was a leftover from an older system. That made the biggest complaint fixable.
Scoping
Discovery surfaced a long list: auto-approval, billing changes, dormant accounts, risk classification. Doing it all at once would have meant months of back-office work before clients saw anything. So I split it. Phase one fixes the confusing experience only, without touching business rules. The heavier changes are written up for later phases, each with a reason.
What phase one covers
- One overview page showing what you're subscribed to, what it costs and the status of any request.
- A cart so you can add or remove several exchanges and submit once, with one declaration instead of up to five.
- Fees shown upfront, with the platform fee and exchange fee labelled separately.
- Only relevant actions: options that don't apply to a client's platform are hidden, not just disabled.
- Clear reasons when something is blocked, linking straight to the page that fixes it.
- Removing a broken toggle: the flow asked clients to opt in or out of two-factor authentication, which is mandatory. Choosing "No" left them stuck.
How we'll measure it
- Fewer market data calls, emails and chats to support teams, against a baseline taken before launch.
- Fewer steps to complete common tasks.
- A client can answer "What am I subscribed to, what does it cost, and where is my request?" from the portal alone.
What this shows
Good research produces more ideas than a team can ship. The value is in separating what's truly required from what's habit, then picking the smallest first step that clients will notice.
One login across three trading platforms
Clients had separate logins for our client portal, our trading app and MT5, and some statements were protected with their NRIC number. I wrote the requirements for one shared login, managed by a central service.
- My role
- Product Manager, owner of the client portal requirements
- Worked with
- Engineering, IT support, the identity service team and the back-office team
- Constraints
- MAS guidance on NRIC use, existing password and lockout policies, and an MT5 interface that only accepts plain-text passwords
- Status
- Requirements ready for technical assessment
The problem
A new client could end up with three different IDs and three passwords. Each system had its own reset flow and its own admin screen. Statements were sent as PDFs locked with the client's NRIC number, which regulators were moving away from. Support teams spent time working out which login a client was even talking about.
Goals
- One login ID and password for the client portal and trading app, checked by a single credential service.
- No NRIC-based PDF passwords. Statements are viewed after logging in instead.
- A clear path from approval to first trade.
What I specified
- Activation: a single-use link that expires after 72 hours, with separate pages for expired, invalid and already-activated links, so nobody hits a dead end.
- Recovery: separate flows for a forgotten password and a forgotten login ID, both checked against the registered email.
- A getting-started page that changes depending on which platforms the client opened.
- MT5 activation: a one-time temporary password generated on demand, never stored in plain text, with a reminder until it's used.
- Admin tools: support staff can see activation status, search by the new ID, and resend links.
- Edge cases: joint accounts, accounts created by hand, and clients sharing a name and email.
Key decisions
Keep the parts that already work. One-time codes and the three-strike lockout stayed in place. Changing them would have meant retraining clients and support teams for no real gain.
Leave some work out on purpose. Third-party PDF passwords and real-time sync with the back office were split into later phases, so the core login could move forward.
What this shows
Identity work touches every system, so most of the job is mapping who depends on what. I wrote requirements engineers could estimate against, with an answer for every unhappy path.
Fixing a dead end in the eligibility check
Applicants opening a forex and CFD account had to pass a knowledge check first. Those who hadn't done it yet got confusing messages and no way to finish. I redesigned the step around what support staff were hearing.
- My role
- Product Manager, with a product designer
- Worked with
- Customer Service, the account approval team and engineering
- Constraints
- Singapore rules requiring proof of product knowledge before trading forex or CFDs
- Result
- Applicants can now finish the check after submitting, without going back
The problem
Before trading forex or CFDs, clients in Singapore must show they understand the products, usually by passing an industry quiz. If an applicant hadn't passed it yet, our form gave a generic message that assumed they already had portal access. Many didn't know whether they were eligible or what to do next, so they called support. Some gave up at the last step.
Evidence
Support and approval staff spoke to these applicants every day, so I started with them. They pointed to wording that implied a client was ineligible for everything when only one product was blocked. They also pointed to a "Continue" button that led clients to expect an upload page that didn't exist.
What changed
- Clear wording that explains which product is blocked and why.
- Separate checkboxes for each product and each completed module, with their own pass dates, instead of one combined answer.
- A link to the official learning module, and the option to finish it later.
- A new section on the final page so applicants can record their quiz result there, without going back and losing their place.
- The same rules applied when staff send an application back for corrections.
What I left out
Support asked for certificate uploads. The approval team already verifies results through the industry portal, so an upload would add work without adding certainty. I explained this to both teams and left it out.
How we'll measure it
- Fewer eligibility-related calls to support.
- Fewer applicants dropping off at the final step.
- More eligibility declarations completed without staff help.
What this shows
Front-line teams hear about a problem long before it shows up in a dashboard. Listening to them made a small fix land in exactly the right place.