How to answer "What is your hourly rate?" when the post only says "make an offer"
Clients want a number without committing to scope. Here is a rate answer that stays honest, protects you, and still moves the thread forward.
Some job posts are almost empty. The client still asks for your hourly rate, or the platform forces a rate field before you can send anything useful.
You are stuck between two bad outcomes:
- You throw out a number with no scope, and you anchor yourself to the wrong work.
- You refuse to give a number, and you look evasive next to ten other freelancers who typed a clean integer.
The goal is not to dodge. The goal is to pair the number with assumptions, so the client understands what the rate actually buys. That is the same posture we use in fixed-price conversations, just with a different currency. If you have not read it yet, see how to write a proposal for a fixed-price project without underpricing yourself for the broader “scope before price” habit.
What the client is really asking
Most clients are not trying to trick you. They are trying to filter fast.
They want:
- A ballpark so they can compare candidates
- A signal that you are not wildly outside their budget
- A reason to keep reading the rest of your message
They often do not yet know:
- Whether they need discovery, build, maintenance, or all three
- How many revisions they will want
- Whether “simple” means simple for you or simple for their cousin who once used Wix
So your answer should do three jobs at once: give a usable number, name what that number assumes, and ask the smallest set of questions that prevent a mismatch.
A simple structure that works on almost every marketplace
Use this order:
- One sentence that proves you read the post (even if the post is short).
- Your hourly rate, stated plainly.
- A short “this rate assumes” line (3-5 bullets max).
- A conversion path: a short call, a paid discovery block, or a first milestone.
Here is a tight example you can adapt. Swap the bracketed parts. Keep the logic.
Thanks for posting this. My hourly rate is $[rate]/hr.
That rate assumes [assumption 1], [assumption 2], and [assumption 3]. If the scope is heavier (for example [example]), the effective cost usually lands higher because the work spreads across more hours.
If that range works on your side, I can outline a clean first milestone after you confirm [one or two scope questions].
This reads confident because it is specific. It also protects you from the client who hears “$60/hr” and imagines a full brand system, three languages, and weekend support.
When the post is vague, anchor with scenarios
If the brief is thin, you are not guessing for free. You are offering labeled scenarios.
For example:
If this is mostly [light scenario], I expect roughly [X-Y] hours for the first usable deliverable.
If you also need [heavy scenario], hours move closer to [A-B] until we lock requirements.
That pattern pairs well with the mindset in how to write a winning proposal for a short or vague job post, because vague posts reward freelancers who show judgment without rambling.
Upwork-specific reality: the rate field and the message
On Upwork, you often have to enter a number in a box and still write a cover letter. Treat them as one system:
- The box number should match what you say in text, or you look sloppy.
- The text should carry the assumptions the box cannot carry.
If you need a strong opening that does not waste the first line, borrow patterns from freelance proposal opening lines that do not sound fake.
Mistakes that quietly cost you
A rate with no assumptions. The client fills the gap with their imagination.
Apologizing for your rate. Confidence is not arrogance. You can be warm without sounding unsure.
A wall of questions before any number. You can ask questions, but if you give nothing, many clients bounce.
A number that only makes sense if you work unpaid nights. Burnout is not a pricing strategy.
FAQ
Should I give a discount in the proposal?
Only if you have a clean reason tied to scope, timeline, or long-term volume. Random discounts train clients to negotiate everything.
What if their budget line looks fake?
Treat it as unknown. Anchor to your work, then invite them to confirm scope. If you want a calmer tone for English nuance, read non-native English mistakes that make proposals sound off.
What if they want a fixed price but asked hourly?
Answer hourly, then bridge: “If you prefer fixed, I can price milestone 1 after we confirm X.” That connects directly to the milestone logic in fixed-price proposal pricing.
Before you send: a fast quality pass
Run the mental version of the proposal checklist:
- Does your rate line match the assumptions you stated?
- Did you name at least one “scope gets bigger if” case?
- Is your next step a small yes, not a vague “happy to chat anytime”?
If you want this to feel less repetitive over time, build a reusable “rate + assumptions” block, then rewrite the top line for each post. Tools like Lervos help when you paste the job post and keep your saved positioning consistent, so you are not reinventing your rate story from scratch at 11pm.
Bottom line: a good hourly answer is not only a number. It is a mini contract for what that number means, plus a polite path to confirm the parts you cannot see yet.
Turn the job post into a rate answer that still sounds human
Save your experience, wins, and positioning once in Lervos. For each new lead, paste the job post. Our curated proposal AI builds a structured draft that sounds like you, not a generic template. Edit what you want, send when you are ready.