How I price on Upwork after 7 years: hourly, fixed, and the number I never go below
From $8 an hour in 2017 to $45 now. The formulas, the proposals, and the clients I say no to.
Contents
My first Upwork job in 2017 was $8 an hour fixing a WordPress contact form. Today I charge $45 an hour for Laravel and React, and fixed projects are priced from the same number. Here is how I think about it. Numbers are mine, from Lagos, Top Rated Plus. Your market may be different.
1. Pick a floor and never go below it
My floor is $35 an hour. If a job cannot pay that, I do not apply. The floor comes from simple math: what I need per month to live, support my family and save, divided by the hours I can realistically bill. Not the hours I work. The hours I bill. Mine is about 100 a month. Proposals, calls, invoices, learning: none of that is billable.
2. Hourly for unclear work, fixed for clear work
- "Fix our checkout bug" on a codebase I have never seen: hourly. Nobody knows how deep the hole is.
- "Build this admin panel with these 6 screens, here are the designs": fixed.
3. My fixed price formula
Estimate hours honestly. Multiply by 1.6. Multiply by my rate. That 1.6 is not greed, it is the meetings, the "small change", the deployment that breaks because their server is from 2015. After 7 years, my real hours divided by my estimate is around 1.5. The extra 0.1 is my rent.
4. Milestones or nothing
Never start a fixed job without a funded milestone. Never deliver all the source code before the last milestone is released. Break big projects into milestones of 1 to 2 weeks. If the client refuses milestones, that is your answer about the client.
5. Connects are money, spend them like money
Every proposal costs Connects, and Connects cost real dollars. I only apply to jobs where:
- The client has a verified payment method
- The client has hired before, and their reviews of freelancers are not all angry
- The description has real details. "Need app like Uber, simple" is not a job, it is a trap
6. The first line of the proposal is the whole proposal
Nobody reads past two lines. My first line answers their problem using their own words. "Your checkout fails on mobile Safari after the coupon step, I have fixed this exact bug in two Laravel shops." Then one line of proof. Then a question. No "Dear Sir, I have read your job description carefully".
7. Raise your rate on new clients first
Every 6 months I add $5 for new clients. Old clients get a polite email with one month notice. Most stay. The ones that leave were already the ones paying late.
8. What I see in my pocket
After the platform fee, withdrawal and the Payoneer rate, I see roughly 85 to 87 percent of what I invoice. Price for that, not for the number on the contract.
Na so. If you are starting, you will start low. That is normal. Just do not stay low because you are scared to ask. Ask, my brother. The worst they can say is no.
Written by
Oluwatobi Adeyemi
Upwork Top Rated Plus since 2019. Laravel, React, a bit of everything clients pay for. Lagos. I have been paid in USD, GBP, crypto and once in "exposure". Freelance Files is where we talk money.
Get the best of #freelance_files weekly
One email each Monday with the most useful posts. No spam; unsubscribe in one click.
Comments
Sign in to join the conversation.
Sign in to comment