01
Current widget
Today, on dashboard
What's not working
- No clear hierarchy — four equally-weighted stats compete for attention. Nothing tells the user "this is what matters most".
- Action is buried — Balance due, the only actionable number, sits at the bottom in the smallest type.
- "-$3,141" is ambiguous — is that a refund or money owed? Negative balance reads like a debit, but it's actually credit.
- Disconnected date — the "15 Sep" calendar pill is detached from any context. Is it a deadline? A scheduled payment?
- Static report tone — no comparison, no progress, no story. Just a data dump.
- "Jan 2025 – Aug 2025" is an odd period. Most people think in tax years or quarters.
02
Research distilled
From Origin, QuickBooks, Gusto, Wise, HoneyBook, Deel
What the best fintech tax widgets do
- Lead with a single answer — "You're getting back $X" or "Pay $Y by Z". Origin compresses tax to a single line: "File fast and free — 44 days left to file your taxes."
- Composition over flat numbers — Gusto Mobile uses a donut chart breaking gross pay into Net / Federal / State / Other. Visualisation tells the story faster than four stats.
- Progress framing — Kakao Pay shows "5% filled / max ₩9M deduction". Treats the tax year as a journey, not a snapshot.
- Date-anchored CTAs — Origin's countdown ("44 days left") drives engagement far better than a static "15 Sep" pill.
- Comparison context — QuickBooks' KPI cards always include "Up 100% from FY25". Without comparison, a number is just a number.
- Explain on demand — Acorns uses inline (10%) → tooltip "We're required to set a 10% default...". Tax language is jargon-heavy; tooltips are mandatory, not optional.
Principles I'm applying
Answer-first headline
One visualisation, not four numbers
Status-coded color
Year-to-date comparison
Always-visible CTA
Plain-language
03
Primary redesign
Refund state · State (CA) · Tax year 2025
Design decisions
- Refund / Owe is now the hero. A green eyebrow chip + large status-coded number answer the user's first question before they read anything else.
- Effective rate as a donut — replaces the dry "7.87%" stat with a visual showing what slice of income goes to tax. Glanceable.
- 3-stat strip with deltas — every stat now has comparison context ("↑ 18% vs same time last year", "$3,141 ahead"). Numbers gain meaning.
- Tax year selector, not period range — "Tax year 2025" is how people actually think. The Jan–Aug range is implied by YTD framing in the eyebrow.
- Date pill paired with countdown — "15 Sep · 24 days" makes the deadline feel real, not just a calendar icon.
- Two CTAs, clear hierarchy — "Adjust estimate" (secondary, addresses the overpayment insight) and "View details" (primary, deep-link to full Tax page).
04
States the widget needs to handle
Three variants from the same pattern
Refund state · compact
Default, calm tone
Owe state · urgent
When user is behind on payments
On-track state · neutral
When payments match estimate
Compact tile · small dashboard slot
For sidebar / dense layouts
05
Anatomy
Six structural regions, each with a single job
- Header — title, beta flag, Federal / State scope toggle.
- Sub-nav — state chips (CA, NY…) + tax year selector. Calendar-year period is implicit.
- Hero — status eyebrow (refund / owe / on-track) → hero amount → one-line explanation. Status determines colour.
- Composition — small donut showing effective rate. Glanceable; rate is no longer just a number.
- Stat strip — three KPIs with year-over-year deltas. Comparison turns numbers into stories.
- Footer — next-deadline pill + secondary "Adjust" + primary "View details" CTA. Action is always one click away.
06
In dashboard context
How the widget sits among other dashboard tiles
07
Summary of changes
| Before |
After |
Why |
| 4 equally-weighted stats |
1 hero answer + 3 supporting stats |
Hierarchy answers the user's first question first |
| "-$3,141" (ambiguous) |
"Refund expected · $3,141" + green status |
Sign + colour kills ambiguity |
| 7.87% as a stat |
Donut showing tax slice of income |
Visual composition is glanceable |
| No comparison |
YoY deltas on every stat |
A number without context is noise |
| "Jan 2025 – Aug 2025" |
"Tax year 2025" + YTD framing |
Matches how users think about taxes |
| Floating "15 Sep" pill |
"15 Sep · Next quarterly · 24 days" |
Date earns its place in the layout |
| No CTA |
"Adjust estimate" + "View details" |
Dashboard widgets should always offer a next step |