A standard Upwork proposal costs $2.40 in Connects. That's not the number that matters.
At a 15% reply rate — what well-targeted agencies typically see — the cost per reply is $16. At a 25% close rate from there, cost per hire is $64. On a $2,000 contract, that's a 3.2% acquisition cost and strong ROI.
But that's the optimistic case. Platform average reply rate hovers around 5% for agencies bidding broadly. At 5% reply with 25% close, cost per hire on the same $2,000 contract is $192 — nearly 10% of the contract value gone before a single deliverable is written.
Nobody explains this when they describe how Connects work.
The metric to track instead of volume
Most agencies track proposals sent. Some track reply rate. Almost none track Cost Per Hire (CPH) — the total Connects spend to land one contract.
The formula is direct:
CPH = (Connects per proposal × $0.15) ÷ (Reply rate × Close rate)
Sending proposals at 12 Connects each, with a 10% reply rate and a 30% close rate:
($1.80) ÷ (0.10 × 0.30) = $60 per hire
Change one variable. Drop reply rate to 5% — what happens when you bid outside your lane. CPH jumps to $120. Add a Boost on top, say 20 extra Connects at $3.00, and cost per hire exceeds $180 on $500–$1,000 jobs. The math breaks before you've noticed.
CPH is the metric that reveals whether your bidding operation is profitable, or whether you're quietly spending more on acquisition than you think.
Why stale proposals cost more than fresh ones
Here's the variable most agencies ignore entirely: time from job posting to submission.
GigRadar's data across 4 million+ proposals shows reply rate drops significantly after the first 60 minutes. By the time a post has 20+ proposals and has been live for 2–3 hours, you're competing for a position in a pile the client may never fully read. Same Connects spent, fraction of the expected return.
What this does to your CPH math is significant. If proposals go out 3 hours after posting rather than within 30 minutes, the effective reply rate may run at half the baseline — meaning actual CPH could be double what raw stats suggest.
Faster isn't a preference. It's a CPH lever. A proposal sent in the first 15 minutes on a well-matched job faces structurally different competition than the same proposal sent later — not because the words changed, but because the queue did.
Calculate your actual numbers
Most agencies estimate CPH. The calculator below lets you use real numbers — or targets — and see exactly what your bidding operation costs per contract won.
[INSERT INTERACTIVE CALCULATOR — paste the Connects CPH Calculator embed code here]
A reasonable benchmark: CPH under 5% of average contract value for well-targeted lanes. If the typical Upwork contract is $1,500, a healthy CPH target is under $75. Running significantly above that usually traces to one of three causes: low reply rate (fit or speed problem), low close rate (proposal structure or scope problem), or excess Connects per bid from over-boosting on wrong-fit posts.
What the data shows across niches
Reply and close rates vary enough across Upwork niches to meaningfully change your CPH model.
Development agencies — Shopify, React, mobile — typically see reply rates of 15–25% when proposals mirror the client's stack and scope precisely. Design and UX work runs similar: 18–30% when a before/after visual artifact is attached. Content and SEO agencies, where proposals are easiest to personalize, often reach 20–30% reply rates when the opener references a specific finding from the client's actual site.
On close rate, the biggest single lever is how the first milestone is framed. Agencies using a paid discovery sprint — a clearly scoped 3–5 day first milestone with explicit acceptance criteria — consistently close at higher rates than those proposing full engagements upfront. A $300 discovery commitment is a smaller decision than a $3,000 full project. Win the discovery, and the full engagement usually follows.
These two levers — niche-matched reply rate and milestone-scoped close rate — are where CPH is actually determined. Connects cost is nearly fixed. The multiplier is how well your targeting and proposal structure work together.
The one filter change that moves CPH most
If there's a single operational change that moves CPH more than any other, it's setting a minimum budget floor in your job filters and holding it.
GigRadar agencies that filter to jobs above their minimum viable contract size, combined with Payment Verified client status, see materially better reply and close rates than those bidding broadly. The mechanism is straightforward: payment-verified clients with hiring history reply more, close faster, and produce less acquisition waste.
The CPH math follows directly. Better-fit jobs mean higher reply rate on the same Connects spend, which means lower CPH. Sending 10–15 targeted daily proposals consistently outperforms sending 30–50 scattered ones. The data on this is consistent, not marginal.
A second filter worth adding: sort by newest first and prioritize posts with under 5 proposals. Freshness doesn't cost extra Connects. It doubles effective reply rate on the same job quality — cutting CPH without changing proposal content at all.
The agencies reaching $15K–$50K/month on Upwork aren't sending more proposals than those stuck at $5K. They're spending fewer Connects, on better-matched posts, earlier. CPH is where that difference shows up in the numbers.


.avif)
.png)