Skip to content
0 → 1 · operations app

A 0 → 1 operations app, built around one question.

I was asked to design a few dashboard cards. I ended up answering the merchant's real question: is my money right?

Merchants run their own store from this app. The partner platform, covered in the companion case, is where partners manage every merchant.

0 → 1User researchPRDRepositioningData-truth layerAI directionLovable
Role
Product designer → product owner
Scope
Research · PRD · UX/UI · QA · GTM support · AI direction
Timeline
Jul 2025 to present
Surfaces
iOS · Android
1Section

It started as dashboard cards.

Every card looked like a visual task. Every card was really a product question.

I was brought in to design a few merchant-facing dashboard cards. Each one looked like a small visual task, and each one raised a product question I could not answer from the design file: what does this number actually mean, what time range is it counting, what does an empty card mean. So I wrote the first PRD, the product spec, to settle those questions, and the work grew from a UI task into owning the product.

Every card pulled the same way. The surface question was about pixels. The real question underneath was about whether a merchant could trust the number enough to act on it.

the UI questionthe product question
What should this card show?
What does this metric actually mean?
What time range is selected?
When do Day / Week / Month start and end?
Why is data empty?
Is this no data, a failed sync, or invalid time logic?
Should we add more charts?
Does the merchant trust the numbers enough to act?

Principle

In a payment product, a metric card is a trust contract. The merchant either believes the number, or stops trusting the product behind it.

The cards that started it, shipped: each one is a definition made visible — a metric, its period, its freshness.

2Section

Listening, continuously.

Position on your data advantage, not on the adjacent market.

Research was not a phase. From launch through every iteration we ran partner interviews, merchant feedback rounds, and workshops, and the inputs kept feeding decisions. The surface requests were fragmented: tips by employee, fee breakdowns, transaction search, refunds from the phone, batch close, which is the end-of-day settlement that sends a day’s sales to the bank. The root was always the same, though: the feeling that money is out of control.

A market signal sealed it. Generic growth-analytics features showed under 1-in-10 paid retention in the field. We considered leaning into accounting and rejected it: bookkeeping already has dedicated tools, and we are a payments company. Our unfair advantage is the transaction data flowing through our own payment stack. So the product moved off the generic pitch and onto the merchant’s own words.

positioned as

“See your business grow.”

repositioned as

“Is my money right?”

Research synthesis · raw asks → what kept repeating → the root question

Raw asks · interviews, feedback rounds, workshops

  • tips by employee
  • fee breakdowns
  • find one transaction
  • refund from the phone
  • batch close, early

What kept repeating

Watch — is something wrong?

Odd tips, fee surprises, failed payments found too late.

Act — fix it from here

Refunds, finding one payment, closing the day from a phone.

Meanwhile: generic growth analytics held under 1-in-10 paid retention in the field.

the root, in the merchant’s words

“Is my money right?”

Every fragmented ask traced back to money feeling out of control.

3Section

The call: pause before scaling.

Scaling an untrusted product doesn't just burn users. It burns the partners who recommend it.

The app was already live on iOS and Android with early partners, and the early signal was good. Adoption roughly tripled over two months inside that early-partner group.

Then I was asked to push downloads and adoption. Testing said the product was not ready to scale: unclear refresh states, inconsistent time logic, numbers merchants could not explain. In payments, scaling a product people do not yet trust does not just burn users. It burns the partners who put their name behind it. I recommended pausing the growth push and fixing the foundation first. The CEO aligned on a foundation sprint.

Decision
Pause the growth push. Fix the foundation before scaling adoption.
Why
Testing showed merchants could not yet explain the numbers, and data people do not trust will not survive scale.
Trade-off
Slower short-term growth, in exchange for long-term partner trust.
Result
The CEO aligned on a foundation sprint.

Principle

Do not scale what users do not yet trust.

4Section

The data truth layer.

In fintech, data definitions are truth definitions.

A time filter is not a UI control. It is a promise about what the number means.

Case A · the 23:59 decision

A same-day custom range could come back empty or misleading, because the end time defaulted to 00:00. The system was treating a date as a single instant. The merchant meant a full business day. So I worked the boundary problem all the way through, and rejected every clever answer before settling on the plain one.

Options evaluated · 4 ruled out, 1 chosen

  • end = startreturns empty results
  • end = start + 1harbitrary, explains nothing
  • force two different daysbreaks same-day queries
  • cross-day rollovermidnight stays ambiguous
chosen00:00 to 23:59

It matches how a merchant thinks about a business day, and support can explain it in one sentence.

It is not technically perfect. A day does not really end at 23:59. But it is the clearest boundary a merchant and a support agent can both point to, so that is the one we shipped.

Case B · time semantics, locked

Day, Week, Month, and Year stopped being loose labels and became product definitions: each runs from the start of the period at 00:00 to the latest synced time. Now product, engineering, sales, and support all explain the same number the same way.

Day

00:00 → latest sync

Week

00:00 → latest sync

Month

00:00 → latest sync

Year

00:00 → latest sync

Case C · range versus freshness

I split two questions that used to share one label. They are different trust questions, so they never collapse into a single number. And when a sync fails, the app keeps the last good data with its freshness label, instead of dropping the merchant onto a blank screen.

·

The selected range

What period you are looking at. The window you chose, and nothing about how current it is.

·

Last updated

How fresh the data is. The moment of the last successful sync, kept visible even when the latest one failed.

I also defined event tracking, so future prioritization could weigh partner anecdotes against what merchants actually do in the app.

Principle

Every definition you refuse to pin down becomes a support ticket.

5Section

The restructure: two scenarios, then the app around them.

Most of this layer is not AI. That is the point.

With the data trustworthy, the next move was not “add AI features.” We restructured the app around two scenario families pulled from real merchant workflows, and most of what changed is not AI at all. The scenarios define the workflow. AI fills only the gaps where it genuinely helps.

Both scenarios start from the same place: the merchant is away from the counter, with only a phone.

status · working prototype, not shipped

Scenario 1 · Watch, anomalies surface themselves

A terminal goes offline and every card payment starts to decline. That pattern should flag itself right away, not wait to be found at close-out. The same goes for a single odd transaction: a missing tip, or a tip far below normal. Catch it early, cap the loss.

Watch · an anomaly surfaces itself
  1. 1

    Anomaly flagged

    A terminal goes offline and card payments start declining. The pattern flags itself, instead of waiting for close-out.

  2. 2

    Tap the summary

    One summary card says what changed and roughly how much is at stake.

  3. 3

    See the breakdown

    Where the drop is concentrated, read by terminal and by hour.

  4. 4

    Filtered transactions

    Only the affected payments, already filtered down. No hunting.

  5. 5

    Transaction detail

    One payment, with its status and reason in plain words.

  6. 6

    Suggested action

    The next eligible step is offered, scoped to what this payment can actually do. It is never taken automatically.

Scenario 2 · Act, find one transaction and fix it

A customer calls asking for a refund. The merchant is not at the store and will not open a computer. They search the way they remember it, in plain language, pick from the matches, review the drafted refund, and confirm.

Act · find one transaction and fix it
  1. 1

    Natural-language request

    The merchant types how they remember it, not a filter query.

  2. 2

    Multi-match results

    A short list of payments that fit the description.

  3. 3

    Select the transaction

    The merchant picks the right one from the matches.

  4. 4

    Drafted action

    The refund is drafted, not sent, with the amount and reason pre-filled.

  5. 5

    Review

    The merchant checks the amount, the payment, and the reason.

  6. 6

    Confirm

    Nothing moves until a person confirms it.

  7. 7

    Receipt + audit

    A receipt for the customer, and a record of what was suggested, chosen, and confirmed.

Guardrails

01

No silent execution

AI can suggest, draft, and explain. It can never silently move money. Every payment action is human-confirmed.

02

Status-aware eligibility

Available actions follow the transaction’s state. Invalid ones disable before the merchant reaches a risky step.

03

Audit trail

Each action records what was suggested, what was chosen, who confirmed, when, and the final state.

Principle

When the user is away from their tools, natural language is the interface.

6Section

Outcome and takeaways.

No metric pileup. Three things carry over.

01

Trust before intelligence

The data layer had to be believable before any of the rest could stand on it. Clarity came first; intelligence came after.

02

Earned ownership

A UI task became a product because someone wrote the PRD, did the research, and made the calls. That someone was me.

03

Play to your data advantage

The repositioning came from evidence, and from refusing a market that was not ours to win.

Companion case, same employer, different surface: the partner platform, where partners onboard and manage every merchant.