0→1 · B2B SaaS · Web App

The lowest bid won automatically. Nobody approved it.

I designed the approval step between a spot bid closing and a transporter getting the job.

Assign Indent approval panel showing the selected transporter, rate comparison chart and approval chain, over the spot bid auction screen
Company
Taabi MobilityLogistics and procurement software for enterprises
My Role
Sole Product Designer
Team
3 Engineers, 1 PM & Me
Timeline
Jun – Aug 2026
Animated bar chart comparing the selected bid of ₹44,500 against the average bid of ₹41,900 over the last three months and the previous awarded bid of ₹47,600

Approvers see the selected bid against the lane’s recent average and the last awarded bid

My role & contributions
UI/UX RedesignDesigned the approval step from scratch as the sole designer: workspace, actions, revisions and status
Workflow structureApprove / return / reject, the revision model, manual bids with proof, and the approval hierarchy settings
PrototypingPrototyped the full workflow and demoed it to enterprise customers
Context

Spot bids went straight to the lowest bidder

The terms on this page

Indent
An enterprise’s request for a truck, normally served by a contracted transporter.
Spot bid
A short reverse auction, 10 minutes to 2 hours, run when the contracted transporter has no truck.
Approval chain
Up to five approvers, set per site and bid value, who sign off in sequence.

Spot bidding already existed: the requestor runs a short auction, and the winner takes the indent. What didn’t exist was any check on that last step. The client asked for an approval gate, and I designed it from scratch.

Existing spot bid auction screen showing the auction closing straight to Won Indent for the top-ranked transporter, with no approval step in between

Before: the auction closed straight to Won Indent.

Problem

Price alone isn’t enough to approve a bid

“Once the bidding window closes, send the selected bid to the appropriate approvers.”

The client’s request

But an approver can’t decide from one rate.

Before approving, an approver needs to

01

Review it with senior stakeholders

02

Compare it with other transporters’ bids

03

Check historical rates on the lane

First version

A side sheet couldn’t hold the decision

What I built

The approval action on a side sheet, so approvers could act without leaving the auction view.

What was wrong

It only fit the essentials and hid every other bid, so approvers had nothing to compare against.

What I did instead

Moved the whole decision into its own tab.

V1 approval side sheet showing bid value, lowest-bid comparison, requestor details and approval chain, layered over the auction view

V1: an approval buried in a panel.

Approval workspace

Every approval gets its own tab

The Approval Workflow tab puts the summary, the rate comparison and the full history on one screen.

Approval Workflow tab showing the rate comparison chart, approval summary and activity timeline alongside the approval status rail and decision actions

01 Approval summary

What the approver has to decide, and what already happened before it reached them.

02 Rate comparison

A bar chart of the selected bid against the lane’s average awarded spot bid and the previous awarded bid.

03 Activity timeline

Every step of the spot bid, latest first, so nobody has to piece the story together.

Actions

Return isn’t reject

Animated Approve, Return and Reject buttons on the approval workspace
01

One screen, three actions

Approve, Return and Reject. Return means the decision continues with a different transporter. Reject closes the spot bid.

Activity Timeline showing a closed Revision 1 (returned by Anil Kumar) and an active Revision 2 with its own approval chain
02

Returns become revisions

A return closes the current approval cycle, and resubmitting starts a new revision. Nothing is overwritten, so every change in the decision stays traceable.

Color-coded status messages: approved in blue, returned for changes in orange, and rejected in red
03

Status you can scan

Color-coded status messages, always paired with text, so nobody has to rely on color alone.

Hierarchy

Admins decide who approves what

In settings, an admin sets a value range per site and assigns up to five approvers in sequence. Access is restricted, so whoever is approving that day can’t edit the chain.

Manage Spot Bidding Approvals settings with a value-range table and a Create Approval Workflow panel for configuring the approver chain
Customer feedback

Customers wanted to award transporters who never bid

We prototyped the full workflow and demoed it to enterprise customers. They sometimes wanted to award the spot bid to a transporter who wasn’t the winner:

Transporters who can now be awarded

01

Bid, but wasn’t selected

02

Invited, but didn’t bid

03

Never invited

And all three were negotiated offline.

Trade-off

Proof, not a transporter’s yes

The idea

The enterprise enters the negotiated rate, and the transporter accepts it before approval continues.

Why we dropped it

It delayed every approval and made the transporter a dependency in an enterprise process.

What we did instead

A proof-document upload in the Add Manual Bid form.

A call with the enterprise answered the real question: how do they validate an offline negotiation today? With an official statement or document. The proof upload keeps that same confirmation, with no added wait.

Transporter-facing bid screen with an Action Required panel showing the enterprise's revised rate proposal, rate reduction, and Accept Rate / Reject Request buttons

Dropped: the transporter accepts the revised rate

Add Manual Bid modal in two states: a transporter who bid in the auction, showing their bid value alongside the manual rate field, and an invited transporter who did not bid, with a note explaining the choice. Both include the proof-document upload and a reason field.

Shipped: Add Manual Bid, with a proof document and a reason

Outcome

Not live yet

Lowest bid → approved bid

No measured impact yet. Here’s what changes once it rolls out.

BeforeAfter
Awarding a spot bidThe lowest bidder gets it automaticallyIt goes through an approval chain set per site
Who can be awardedAuction bidders onlyAny transporter, backed by proof
Changing the decisionNo approval stepReturn creates a traceable revision
Record of the decisionOnly the auction resultActivity timeline and revisions
Learnings

What it taught me

Comparison needs room, not a side sheet

An approval is a comparison. If the screen can’t show the alternatives, the approver is just signing off on a number.

Match the new step to how the enterprise already works offline

Before adding a step, check how people already confirm the same thing offline. Reusing their existing proof was faster than inventing a new confirmation.


Next case study

Laps

A stopwatch for structured routines and freeform runs, designed and built solo end-to-end

Read case study →