Counter
A pricing tool that shows creative students what a freelance offer really pays per hour.
Try Counter
// ROLE
Product Design
// TYPE
UI/UX, Data Visualization
// INDUSTRY
Fintech
// YEAR
2026
// DURATION
3 Weeks
// PROBLEM
Students judge an offer by its total, not the hours behind it.
// SOLUTION
Counter counts every hour, including the ones people forget, and shows what an offer really pays.
// RESULT
8 of 10 design students raised their quote after seeing the real hours. Counter scored 100 on all 4 Lighthouse audits, meets WCAG AA, and runs 169 automated tests.
// PROBLEM AND RESEARCH
The emails, revisions, and file prep never get counted.
Design students take flat-fee jobs for restaurants, artists, and photo shoots. The total sounds fair, so nobody adds up the hours behind it.
I started with classmates, then checked the tools they already use.
01 · In person
Classmates at Ringling
How design students price and accept jobs.
02 · Competitor Review
Existing pricing calculators
Text-heavy, assume you know your rate, and end at one price.
03 · Framing
Audience and contexts
Three user contexts set the limits for every screen.
04 · Audits
Accessibility tests
Five peer audits on mobile and keyboard-only. I logged and fixed every issue.
// One example, used throughout: a 2-page menu
What the client offered
Hours it really takes
Hours people usually forget
What it really pays, against a $25 target

// WHAT I LEARNED
The money is lost in the forgotten hours.
That’s communication, revisions, and delivery on the menu job.
Not every job starts with an offer.
A client asks what they charge, or names a budget. One flow handles both.
A rate means little on its own.
It needs your target beside it, and a way to close the gap.
Assumptions: job hours are Counter’s example numbers, labeled as examples on screen. The $25 target is an example rate users replace with their own.
// DESIGNED FOR THREE REAL SITUATIONS
Ideal
At a laptop with the client’s email open
Share link, Save image, Projects dashboard
Budget
Old laptop, no admin rights, spotty wifi
Nothing to install, no account, fonts stored with the site
Chaotic
On a phone between classes, 17 tabs open
Autosave, one-taps, a bottom bar with the answer
// KEY DECISIONS
01
One flow, offer optional
Answers “what should I charge” and “is this fair” without two modes.
02
Cut what I couldn’t defend
A 20% add-on and a “fair price range” came out. No basis I could explain.
03
Change the work, not just the price
Pages and rounds stay live on the result.
// DESIGN SOLUTION
// 01
Count the work
Hours come in four groups. The forgotten ones are labeled and striped, and a live total updates as you type.

// 02
The answer first
The button’s sunset circle grows into the result, and the rate counts up.

// 03 · Try it: charts that explain the number
Both charts tell the same story: the money runs out at 7.2 hours.
$180 ÷ $25/hr = 7.2 hrs paid
11.5 − 7.2 = 4.3 hrs unpaid
- paid by the offer
- unpaid
Before expenses: $17.39/hr
To pay your target: $307.50
// 04
Ways to close the gap
Three options on the same hours scale: raise the price, trade a round of changes, or take their $200 for less work.

// 05
Same chart, two audiences
The image for the client keeps the chart and changes the words.

// 06
Your pricing so far
One offer is a decision. Saved offers become a pattern.
Projects turns every saved job into a dashboard of how you price. Each card answers one question, and each chart can switch to a table.
// On a phone, the waterfall reads top to bottom
// Cards stack in the same order
// 07
Brand and motion
Quiet grays and ink, with one sunset gradient that always means the answer. Motion plays once, then gets out of the way.
raisedGeist 300
tracking -0.06emUnit in
Geist Mono
Mono
↓
#F7F7F5Role
↓
Page
↓
The answer
↓
#E8432ERole
↓
This job
↓
#161616Role
↓
Text
// TRUST AND ACCURACY
A pricing tool only works if people believe the number.
$307.50 → $310
Exact math, shown
Full precision, rounded up to $5 only at the end.
$17.39 · $15.65
Two rates, clearly labeled
Before and after expenses. Neither called take-home pay.
Example numbers
No invented benchmarks
No fake market rates. Not financial advice.
// RESULTS
100
All 4 Lighthouse audits
AA
WCAG contrast, keyboard, screen readers
169
Automated tests, run on every push
8/10
Raised their quote after seeing the hours
// TAKEAWAYS
01
Honest beats impressive
In finance, a number people can’t trust does more harm than a missing feature.
02
Let the insight drive the visual
The hours chart is built around one moment: the paid fill stopping short.
03
A precise spec is design work
Directing an AI build worked because every rule was written down.
// MY ROLE, SKILLS, TEAM
My Role
Product Strategy
UX and UI Design
Data Visualization
Brand and Motion
Build Direction with Claude Code
Skills
Financial Data Visualization
Design Systems
Interaction Design
Technical Specs and QA
Accessibility (WCAG AA)
Tools
Figma
HTML, CSS, JavaScript
Claude Code
WebStorm
GitHub Pages
Team
Kayla Tang (Solo Project)
// SAY HELLO
Let’s Connect
Have a project in mind, a question, or just want to say hello? I’d love to hear from you!
ELSEWHERE