Customer Success Manager dashboard
The Priority Queue I scoped as P1 — a ranked view of a CSM’s drivers, with the score in the list so risk is visible before opening anyone.
Anda helps drivers in Angola earn a living while working toward owning their vehicles. The data needed to understand driver performance was scattered across Odoo, spreadsheets, GPS, and Yango.
Activity and payment data lived across Odoo, manual spreadsheets, and GPS and Yango APIs that didn’t talk to each other. So an inactive driver could be underperforming, dealing with a vehicle issue, or falling behind on payments — and admins couldn’t tell which.
Admins and CSMs had no easy way to see how a driver was doing — driving regularly, offline for stretches, keeping up with payments, or falling behind.
Checking on one driver meant opening several disconnected systems.
There was no clear way to decide which drivers needed help most urgently.

CSMs needed to know whether a driver needed intervention before reaching out — and understand why the system had flagged them.
A ranked view showing who needs help most urgently and why, grounded in activity and payment signals he can explain to a driver.
Two things had to be true before anything else: the activity and payment data had to be reliable, and a flagged driver had to come with a reason. That’s why explainability went into P0 and the ranked Priority Queue into P1.
Tiffany Liu and Isabella Raffo led product design, while I kept design and engineering aligned around the same priorities.
Wrote the PRD and the requirements the designers and developers built from.
Set P0, P1, and P2, including what we chose not to build this semester.
Worked with the tech lead to define the activity and payment data the product needed.
Decided to make explainability P0, hold predictive scoring in P1, and move forward with synthetic data while real data was delayed.
Separated blocked work from what the team could keep moving while dependencies were unresolved.
Kept design and engineering working from the same priorities week to week.
Driver activity and payment data came from four places. Their reliability and availability shaped what we could prioritize first.
Where driver and payment records lived.
Filled in by hand, so gaps and errors were possible.
Vehicle movement, speed, and engine status.
Trip and earnings activity from the ride-hailing side.
The screens were only going to be useful if the activity and payment data behind them held up, so I worked with our tech lead on the data model before we scoped any views. Reliable data and interpretable performance logic had to come before the views built on top of them.
I worked with our tech lead to define the data we needed, then prioritized the product around those dependencies. Each tier reflects what we needed first and what we intentionally deferred.
Authentication and the core Driver Performance Overview — nothing else mattered if admins couldn’t trust the data.
Admin and CSM dashboards focused on the same two things: real activity and payment status.
The Priority Queue view and risk scoring, giving CSMs a clear read on who to check on first.
Held predictive risk scoring until the system could explain itself — flagging a driver without a reason wasn’t good enough.
The driver-facing mobile dashboard and rewards, since admins and CSMs needed visibility first.
CSM messaging and CSM performance scoring, so CSMs had support tools before messaging tools.
If the platform flagged a driver, admins needed to see which activity or payment signals contributed.
What does someone need to see to understand a driver’s score?
I made explainability a P0 requirement: admins needed to see which activity and payment signals contributed to a driver’s score.

The breakdown shows the weight behind each factor: payment timeliness, hours worked, collection rate, portfolio risk.
Collection Rate and % Portfolio at Risk are shown as ratios, so an admin can check the math.
An admin can point to the reason a driver was flagged, which is what the requirements asked for.
Risk scoring would give CSMs a clear read on who to check on first, instead of working through their drivers one by one.
A risk label without a clear reason wouldn’t give CSMs enough information to understand or act on it.
Access to real driver data was delayed beyond our team’s control.
I chose to move forward with synthetic activity and payment patterns so design and development could keep moving while we waited.
Synthetic data kept the team moving, but it did not validate that the scoring would behave correctly with real drivers.
The Priority Queue I scoped as P1 — a ranked view of a CSM’s drivers, with the score in the list so risk is visible before opening anyone.
The P0 requirement that inactivity carry context: whether a vehicle is moving, parked, or has been offline for a longer stretch.
The payment half of the P0 data set, shown as trends rather than a single current balance.
The verification and role requirements, including Drivers Assigned so admins can see CSM workload.
P0 alongside the core data — role-based access was a prerequisite, not a feature.
By the end of the semester, the team had designed the P0 experience — authentication, driver performance and score breakdowns, and the admin and CSM dashboards — along with the P1 Priority Queue. The driver-facing app, rewards, and CSM messaging remained intentionally out of scope. Tiffany Liu and Isabella Raffo designed the interfaces from the requirements and priorities I defined.
I learned that I couldn’t make useful roadmap decisions without understanding the data and logic underneath the interface. Working closely with our tech lead made me more comfortable asking technical questions until I understood the constraints well enough to make the call.
Putting reliable driver data first meant delaying the driver-facing app and CSM messaging. I also learned to separate the work we could keep moving from dependencies, like real data access, that the team couldn’t control.
Synthetic data kept design and development moving while access to real driver data was delayed, but it never showed that the scoring would behave correctly on real drivers. That was still open when the semester ended.
05Designer
Brilliant Cities
Helping parents keep habit goals going at home, between programs.
01Product Design Intern · Summer 2026
Terraform
Making read-only access clearer without removing the context people still needed.