Case Study  ·  Gov-Tech / Data-Heavy UI

Making sense of hundreds of bids — for the people who decide

Government departments evaluating tenders were comparing hundreds of bids against complex scoring criteria — manually, in spreadsheets. I designed a department-facing portal that makes that comparison structured, visual, and fast. Two weeks. Solo. Starting with the PRD.

My Role
Lead Product Designer (Solo)
Duration
2 weeks
Deliverables
PRD + End-to-end UI Design
Status
In development
Tools
Figma + existing component library
Tender Analyser — Bid Comparison Matrix
Tender Analyser — Bid Comparison Matrix

The core screen: all bids compared side-by-side across scoring criteria — overview met/missing status, document availability, and scoring totals per bid

01 — Context

Government procurement is one of the most data-heavy decisions made at scale

When a government department floats a tender — for a construction project, a technology system, a service contract — they receive hundreds, sometimes thousands, of bids in response. Each bid must be evaluated against a precise scoring criteria defined in the tender document: technical capability, financial health, past experience, pricing, timelines, and more.

Before this portal existed, that evaluation happened in spreadsheets. Officers manually extracted data from bid documents, populated comparison sheets, cross-referenced scoring rubrics, and produced reports — a process that took days or weeks per tender, and was prone to inconsistency and human error.

An Important Distinction

Tender analysis tools existed before this project — but they were customer-facing, designed to help vendors prepare and submit bids. No purpose-built tool existed for the department side — the government officers who actually evaluate and decide. That's the gap this portal fills.

02 — The Problem

Hundreds of bids. Dozens of criteria. One spreadsheet.

The existing evaluation process was not just slow — it created serious structural problems for procurement decisions.

1
Bids arrive in unstructured formats
Each vendor submits documents differently. Officers spend significant time just extracting comparable data points before evaluation can begin.
2
Scoring criteria applied inconsistently
When evaluation happens manually, different officers apply the same criteria differently. Subjectivity creeps into a process that is supposed to be objective.
3
No way to compare bids side-by-side, per criterion
The most critical question — "how does Bid A score on Criterion X compared to Bid B and Bid C?" — requires switching between multiple spreadsheet tabs. There is no single view that answers it.
4
Shortlisting is opaque and time-consuming
Deciding which bids to shortlist — and defending that decision with a documented rationale — requires hours of manual work to compile and format.
5
The process doesn't scale
A department handling 10 tenders simultaneously has no way to manage this process at scale. Each tender becomes its own isolated spreadsheet exercise.
100s
Of bids evaluated per tender — manually
0
Purpose-built tools for the department side
2wk
To design the solution — PRD to handoff

03 — The Design Challenge

The hardest UX problem: two views, one screen

The department had a very specific requirement — and it created the core design challenge of the project.

The Requirement

"We need to see each bid scored against every criterion — and every bid compared on each criterion."

Two fundamentally different views of the same data were required simultaneously:

View 1 — Per bid: For a given bid, how did it score across all criteria? (Vertical read — one bid, all criteria)

View 2 — Per criterion: For a given criterion, how do all shortlisted bids compare? (Horizontal read — one criterion, all bids)

Both views needed to be accessible without losing context. The data was dense — multiple scoring criteria, each with sub-scores, across potentially dozens of shortlisted bids. Fitting this onto a single screen without it becoming a wall of numbers was the central design problem.

The Data Problem — Visualised
Bid A
Bid B
Bid C
Bid D
Technical Score
87/100
71/100
92/100
54/100
Financial Health
68/100
88/100
74/100
70/100
Past Experience
95/100
48/100
81/100
66/100
Pricing
52/100
90/100
77/100
85/100
↕ Read vertically to evaluate one bid across all criteria  ·  ↔ Read horizontally to compare all bids on one criterion. Both reads must work simultaneously.

This is a genuinely hard information design problem. Too much data on one screen causes cognitive overload. Too little and the user loses the comparative context they need to make a defensible decision.


04 — Process

PRD first. Then design. No wasted screens.

Given the two-week timeline, I couldn't afford to explore broadly and refine later. I started with the PRD to lock down requirements, edge cases, and the exact data model before opening Figma — which meant every screen I designed had a clear purpose from the start.

I authored the PRD for this project

The PRD defined the core user flows, the data relationships (tenders → bids → criteria → scores), the edge cases (what happens when a bid is incomplete? when a criterion has sub-criteria?), and the two primary views the comparison screen needed to support. This document was the alignment tool with the PM and the development team before any design began.

Solving the comparison screen — three approaches considered

The bid comparison view was the hardest screen in the project. I explored three structural approaches before landing on the solution.

Option 1 — Rejected
Separate views with toggle
A toggle to switch between "by bid" and "by criterion" view. Clean, but forces the user to switch context constantly — losing the comparative read they need most.
✗ Too much context switching
Option 2 — Partial
Expandable rows in a table
A master table with expandable rows for sub-criteria. Shows both views in theory, but becomes visually overwhelming at scale — 20+ bids and 10+ criteria makes the table unworkable.
~ Works for small sets only
Option 3 — Chosen
Sticky matrix with drill-down panel
A scrollable matrix (bids × criteria) with colour-coded score cells as the primary view. Clicking any cell or row opens a side panel with full detail for that bid or criterion — keeping context intact.
✓ Both reads, one screen
Why the Matrix Works

A colour-coded matrix gives officers an immediate visual read of where strong and weak bids cluster — before they read a single number. Green/amber/red scoring cells mean a department head can scan 50 bids in seconds and know which ones warrant closer attention. The drill-down panel handles the detail without cluttering the overview.

1

PRD — requirements, data model, edge cases

Defined the full scope: tender management, bid ingestion, scoring criteria setup, the comparison view, shortlisting workflow, and report export. Edge cases documented — incomplete bids, criteria with sub-criteria, score overrides with audit trail.

2

Tender management — the starting point

Officers needed to create and manage tenders, define scoring criteria, and set weightings before bids could be evaluated. I designed this as a structured setup flow — criteria builder with weightings that must sum to 100%, preventing invalid configurations at the point of entry.

3

Bid management — ingestion and status tracking

A dashboard showing all received bids with their processing status — received, under review, scored, shortlisted, rejected. Officers can drill into any bid to see its submitted documents and manually enter or verify extracted scores.

4

The comparison matrix — the core screen

The matrix view with sticky bid headers, scrollable criteria rows, and colour-coded score cells. Column selection lets officers show only shortlisted bids. Row filtering lets them focus on specific criteria. Clicking any cell opens the detail panel without leaving the matrix context.

Weighted total scores are calculated automatically and displayed as a final row — giving officers an overall ranking without manual computation.

5

Shortlisting and report export

Officers mark bids as shortlisted directly from the matrix. The shortlist view generates a structured summary — scores, rankings, and evaluation notes — that can be exported as a report for procurement records and audit compliance.

6

Built on the existing component library

This project used the component library I had already built for other Stratzi.ai projects — tables, badges, status indicators, side panels, form elements. This meant I could focus design effort on the novel UI challenges (the matrix, the criteria builder) rather than rebuilding foundations from scratch.

Bid Comparison View — All Bids × All Criteria
Bid Comparison View — All Bids × All Criteria

Matrix view showing all bids (Innovatech Group, Infinity Solutions, CloudSync Technologies) scored across Scoring Criteria Overview, Documents, Eligibility and Scoring — with missing document flags and numeric totals

Bid Detail — Scoring Tab
Bid Detail — Scoring Tab

Per-bid scoring view showing Evaluation Methodology, Technical Marking, and Submission Details across criteria with score, evaluation summary, status and edit action

Bid Detail — Documents Tab
Bid Detail — Documents Tab

Per-bid document list showing document name, link, evaluation summary and missing status flags — filterable by reason and searchable


05 — Outcomes

What was delivered — and why it matters

1
Full PRD authored before design began — requirements locked before any screen was drawn
2wk
PRD + complete UI design delivered in two weeks, solo
2-in-1
Per-bid and per-criterion comparison served simultaneously in one screen
↑ Fast
Existing component library accelerated delivery — novel challenges only
The Broader Impact

A government department that previously spent days manually comparing bids can now do it in a single session — with a structured, colour-coded view that is both faster and more defensible than a spreadsheet. The evaluation process becomes auditable by design, not by manual documentation.


06 — Reflection

What I'd do differently

"If I had more time…"

Two weeks is a genuinely compressed timeline for a project of this complexity — especially one where the PRD and design needed to happen sequentially. The biggest casualty was user research. I didn't get to speak to a single government procurement officer before designing. Everything I knew about their workflow came from stakeholder conversations and domain research. A single half-day session observing how a procurement team actually evaluates bids would have been invaluable — particularly for the comparison view, where small details about how officers read and annotate data could significantly change the design.

I'd also have liked to test the matrix view specifically with data at scale — 50+ bids, 12+ criteria. The design works well in controlled Figma frames, but complex data tables always reveal unexpected usability issues when real data is plugged in. A quick prototype test with a data-heavy scenario would have surfaced those issues before development.

Finally, the criteria builder assumes a relatively flat scoring structure — criteria with simple numeric scores. In practice, government tender criteria can be hierarchical — a criterion like "Technical Capability" might have sub-criteria like "Team Qualifications," "Methodology," and "Past Projects," each scored separately and rolled up. Supporting this hierarchy in the UI was acknowledged as a future requirement; I'd have designed the foundation for it from the start if timeline had permitted.