A submission and tracking portal so analysts can validate, reconcile, and ship a loan release from a single record, instead of stitching exceptions across separate spreadsheets. Built from deep research with three client orgs, now live with the first cohort.
Lead Product Designerresearch, IA, interaction, visual
Onity Group1 PM, 3 engineers, 1 designer (me)
6 monthsdiscovery through launch, 2026
Figma · Figma Make · Claude Design · Copilotdesign, prototyping, and AI-assisted build
To respect Onity Group's confidentiality, I've changed the visual treatment, screen names, and workflow details shown here. I chose not to password-gate this case study, since gates only add friction for the people I want to reach; instead I recreated the screens to keep the work open and compliant. The approach, decisions, and outcomes are intact and mine. For the real product and a deeper walkthrough, reach out.
If you only read three paragraphs, read these. Problem, change, and results in about a minute.
Mortgage clients ship loan releases to the servicing team in many different shapes. The receiving team took that variation as escalations, formatting kickbacks surfaced three days late, and accounting reconstructed reconciliation by hand across separate systems with no shared record.
I designed one release pipeline that catches errors at submission, gives exceptions a defined lane with owner and SLA, and ties every package to a single release record. The receiving team gets one shared structure, regardless of upstream variation.
9 of 9 users found release status unaided in testing. All three client orgs are now live on the first release of secure submission plus reliable tracking. Early data shows about six hours saved per analyst each week, measured against the old follow-up and reconciliation routine.
Bulk Purchase-Advice upload mirrored the team's current mental model, so it got the first cohort live fast. The trade-off I accepted: phase two has to reduce that dependency by collecting the exact fields directly in the form. If I ran it again, I'd hold the dependency behind a feature flag from week one, so the phase-two pivot is a toggle instead of a migration. Full reasoning in the retrospective below.
Every client prepares releases its own way, and the receiving team absorbs the variation by hand. Kickbacks surfaced about three days late, exceptions had no owner or SLA, and reconciliation was rebuilt across separate systems. The goal was to catch the errors at submission and give every package one record the whole team could trust.
Encompass, custom LOS exports, aggregator matrices: every client submits its own way, with no shared validation layer, so formatting issues surface downstream.
Kickbacks, MERS updates, missing dates, investor delays all become email threads. No SLA, no owner, no audit trail.
Manifests, escrow returns, and unfunding adjustments arrive across separate systems. Accounting cross-references by hand.
"This should work like a workflow or ticketing system. One record per submission, with assignment and history."Client Ops Lead · Investor Servicing Group
"Email is risky. We want secure upload and a dashboard, not a chain of forwards."Director of Client Operations · Mortgage Lender
A release record that handles how each client prepares its data, different LOS systems, different reports, different investor mixes, and gives the receiving team one shared structure downstream.
"Submission is better. Tracking is still the problem."Patrick H. · Client Operations, Mortgage Servicing Partner
Today, clients send Excel plus Purchase Advices to a shared inbox and wait. I designed the submission flow so that within seconds of upload, clients see what was accepted, what needs fixing, and the record ID created on the receiving side.
"Email is risky. We want secure upload and a dashboard, not a chain of forwards."Director of Client Operations · Mortgage Lender
Clients fix field-level errors in plain language at upload, a wrong report version, a missing date, a mismatched investor code, instead of finding out three days later through a forwarded email.
Validation at the doorThe moment the file lands, the portal checks column structure against the expected template. 13 of 13 columns detected, format OK. A wrong report version or missing field is caught here, not three days later.
PAs auto-matchedEvery Purchase Advice is matched to a loan number on upload. 147 of 147 means nothing is orphaned downstream in reconciliation.
Saved mapping recognizedThe portal recognizes the client's saved column mapping, the Standard 15-day template, so repeat submitters skip remapping. One click to confirm or switch.
Loan numbers parsed automatically147 loan numbers are read straight from the spreadsheet, so the analyst never rekeys them.
Hover, tap, or press Tab then Enter on a marker. After a clean file, the next step is the mapping confirmation below.
The moment a submission is accepted, a release record with its own ID, owner, and starting status appears on the client's dashboard. The "did you get it?" emails stop.
Bulk PA upload was prioritized for launch to mirror today's mental model. Phase two reduces PA dependency by collecting the exact fields the receiving team needs directly inside the form, documents become required only for audit and exceptions.
Once a release record exists, clients see it move. The dashboard surfaces aging up top; each record opens to a full timeline plus reconciliation.
"This should work like a workflow or ticketing system. One record per submission, with assignment and history."Client Ops Lead · Investor Servicing Group
Aging records, SLA breaches, and "waiting on investor" states sit above everything else, so the morning triage is a glance, not a 200-message inbox.
Needs attentionA high-level read on what is at risk and needs attention right now. One release is in SLA breach in this view.
SLA at a glanceThe row-level version of the same signal. This release is 8 days overdue, so it rises to the top of the queue.
Pipeline statusStatus chips show where each release sits in the pipeline right now: at risk, tagged, scheduled, released, or received.
Hover, tap, or press Tab then Enter on a marker.
Each release shows its milestones with timestamps and a visible "waiting on investor" state, and every hold, fix, and escalation lives in the record with a full audit trail.
What is nextA plain-language read on what happens next and whether the client needs to act. Here, the goodbye letter is drafting, ETA Feb 21, nothing needed from them.
Every loan in the packageEach milestone shows per-loan progress, so you see all the loans in the release package and how far each stage has moved. Here, 7 of 14 goodbye letters are sent.
Escalate if neededIf a release stalls, the team can raise an exception or escalate to a manager straight from the record.
Hover, tap, or press Tab then Enter on a marker.
Escrow returns, manifests, and unfundings tie back to the release record with amounts, dates, and references, so accounting and ops stop trading detective tickets.
Six screens span the full release flow, from a clean upload at the door to reconciliation handed cleanly to accounting. Use the arrows to step through; click any image to view it at native resolution.
The portal launched to a first cohort of three client orgs, scoped to secure submission plus reliable status tracking. Before launch, I pressure-tested the design in prototype walkthroughs with release analysts and client operations leads across those orgs. The signal was strong, and early data since launch backs it up.
Every interviewee located a tracked release on the dashboard within seconds, no instructions needed.
In the prototype, every formatting error was caught and corrected during submission instead of post-send.
All three client orgs are now live on secure submission plus pipeline status, replacing the spreadsheet-and-email workflow they ran before.
Now the first cohort is live, I'm watching three signals to confirm the portal is doing its job, and to surface where phase two should focus.
I'm tracking the volume of "did you get it?" and "where are we?" emails. A drop signals clients trust the portal as the source of truth.
I'm measuring how many formatting issues get flagged during upload vs. downstream. A higher catch-rate means less rework and fewer kickbacks.
I'm tracking how long it takes accounting to close out a release after funds move. A shorter cycle confirms the reconciliation snapshot is doing its job.
Two layers of impact that don't show up in the metrics. The work that shaped how I designed it, and the patterns the team kept using after I shipped.
Three client orgs prepared releases three different ways, and the temptation was to ship three workflows. Treating that variation as a layer above one shared record (rather than three parallel pipelines) is what made the MVP feasible. The discipline came from interview tagging, not whiteboarding.
This was the first end-to-end release surface on Onity's platform, so the components and the discovery artifacts both became templates. The next two projects on the roadmap pulled from this work instead of starting over.