TL;DR

  • Quota attainment is (actual ÷ quota) × 100, and 43.6% of B2B reps cleared their number last quarter across 252 software companies (RepVue Cloud Sales Index, Q2 2026). On a bidding team the number lies for a different reason than it does in SaaS.
  • GigRadar pipeline data for June 2026 (n = 65,838 proposals) puts the market-wide reply rate at 5.1%. Any quota built on 10% will miss by half before your bidders do anything wrong.
  • Reply rate does not improve with volume. Teams sending 1,000+ proposals reply at the same rate as teams sending 51 to 100, so raising a send quota buys you spend, not conversations.
  • Inside a single team, the best bidder out-replies the worst by 3.8 points at the median and 19.2 points at the extreme, on the same template. That is a routing problem, not an effort problem.
  • Reply data takes 75 to 90 days to finish arriving, so a month-end attainment review is grading a photograph that is still developing.

43.6% of B2B reps hit quota last quarter, measured across 252 software companies and roughly 58,500 sales-professional ratings by RepVue's Cloud Sales Index.

Every article about quota attainment quotes that number and then prescribes the same five fixes: better enablement, cleaner CRM data, realistic quota setting, more coaching, smarter territory design.

None of that applies to an Upwork agency, because your team has no territory, no CRM-sourced pipeline, and no inbound. It has a scanner, a Connects balance, and a bidder pool.

I have watched agency owners set a "100 proposals a week per bidder" target, hit 104, and book two calls.

The quota was met. The month was still a loss.

Quota attainment is one number hiding two very different failures

The arithmetic is not where teams go wrong:

Quota Attainment (%) = (Actual ÷ Quota) × 100
A bidding pod with a 12-call monthly target that books 9 calls is at 75% attainment.

Two different measurements both get published under the name quota attainment. Participation is the share of reps who cleared 100%, which is what RepVue and The Bridge Group report, and average attainment is the share of quota the typical rep closed, which almost nobody publishes.

For a bidding pod the distinction decides where you look next. A pod at 43% with every bidder clustered near the same number has a target problem, and a pod at 43% with two bidders carrying the other four has a routing problem.

Most Upwork agencies I look at are the second kind and treat themselves as the first. The rest of this article is about how to tell them apart.

RepVue Cloud Sales Index chart showing quota attainment holding in a narrow band across nine quarters from Q2 2023 to Q2 2025
Nine quarters to Q2 2025, every one of them inside a band barely more than a point wide (RepVue restates prior quarters as new ratings land, so the chart series and the quarterly headlines differ slightly). Source: RepVue Cloud Sales Index, Q2 2025.

Nine consecutive quarters land inside roughly one point of each other.

Widen the window and it holds. Attainment troughed in Q2 2025, climbed for three quarters to a recent high of 44.22% in Q1 2026, then slipped back to 43.60%.

RepVue revises prior quarters as new ratings land, so every figure here is quoted from that quarter's own report. The decimals move a little between reports, the shape does not.

From Q3 2023 to today, across hundreds of companies, the number has not left a two-point corridor.

That is not a coaching outcome. It is a structural property of how targets get set.

SourcePeriodFigureWhat it measures
RepVue Cloud Sales IndexQ2 2026 (latest)43.60%Share of reps who met or exceeded quota, ~58,500 ratings at 252 companies
RepVue Cloud Sales IndexQ1 202644.22%Share of reps who met or exceeded quota, recent high
RepVue Cloud Sales IndexQ2 202542.69%Share of reps who met or exceeded quota, as published in the Q2 2025 report, ~47,000 ratings at 246 companies
The Bridge Group202648%Share of AEs who achieved annual quota, down from 51% in 2024
QuotaPath (on RepVue Q2 2025)Q2 202557.31%Share of reps who missed quota entirely

RepVue and The Bridge Group are measuring the same thing on different panels and periods, which is why 43.6% and 48% can both be right. Neither tells you what the typical rep actually delivered, and neither was measured on anything resembling an Upwork pipeline.

Calculate the quota attainment your funnel can actually support

Before you argue about whether a bidder is underperforming, run the arithmetic on what their assigned activity can produce at your real conversion rates.

The reply-rate default is our June 2026 market-wide number and the connects default is our measured average per send. The pod size, send rate and reply-to-call rate are placeholders, so replace all three with your own once you have 90 days of settled data.

Interactive Tool

Quota Attainment Calculator

Enter your bidding pod's setup and the calculator back-solves attainment, the connect bill, and what each lever is actually worth. Connects default to 2 per send, roughly the platform-wide average we measure, and heavily boosted bids run far higher.

Projected quota attainment
·
Press calculate to run your numbers.
·
proposals / month
·
replies / month
·
booked calls / month
·
connect spend / month
·
connect cost / booked call

Three ways to close the gap

1. Buy the gap with volume

·

2. Earn the gap with reply rate

·

3. Route the gap to your best profile

·

Connects priced at $0.15 each per Upwork's Connects documentation. The routing lever uses 1.9 points, half of the 3.8-point median best-versus-worst within-team spread, because routing moves a pod from its average profile to its best rather than from its worst to its best (GigRadar pipeline data, Dec 2025 to Feb 2026, n = 133,872 proposals).

Watch out

If the calculator returns under 70% on your current setup, stop the performance conversation. You assigned a number your funnel cannot produce, and no amount of coaching changes arithmetic.

Nobody scales their way to a better reply rate

The reflex when attainment slips is to raise the activity target. Our data says that buys volume and nothing else.

Across 133,872 proposals sent between December 2025 and February 2026, median per-team reply rate flattens after the first 50 proposals and stays flat forever.

Reddit r/Upwork post from an agency owner whose four-bidder team spends 200+ Connects per boost but has seen leads and conversions tank at the same proposal volume
Four bidders, daily sends, 200+ Connects per boost, and output going the wrong way, with effort held constant throughout. Source: r/Upwork, March 2026.
Proposals sent, Dec 2025 to Feb 2026TeamsAvg team reply rateMedian team reply rate
11 to 50908.6%6.3%
51 to 100777.4%7.1%
101 to 2501277.7%6.8%
251 to 5001227.5%7.0%
501 to 1,000607.6%6.2%
1,000+137.6%6.7%

Source: GigRadar pipeline data, December 2025 to February 2026 (n = 133,872 proposals).

A team at 1,000+ proposals in the window converts at 7.6%. A team at 51 to 100 converts at 7.4%.

Ten times the volume, no conversion advantage.

This is cross-sectional, so read it as "teams that send more do not reply better" rather than "sending more lowers your rate."

The marginal bid is worse than the average bid

When a bidder stretches to hit a raised number, the extra proposals come from the crowded end of the pond. We can measure exactly how crowded, because we can see when several GigRadar customers bid on the same job.

Reply rate falls from 9.4% on jobs with one GigRadar bidder to 2.1% on jobs with 11 or more, across 59,339 proposals Reply rate by how many GigRadar agencies bid the same job GigRadar pipeline data, Jan to Feb 2026. n = 59,339 proposals across 30,964 distinct Upwork jobs. 10% 5% 0% 9.4% 1 team 7.4% 2 teams 6.6% 3 teams 5.1% 4 to 5 4.5% 6 to 10 2.1% 11+ teams 67% of proposals land on a job at least one other GigRadar team is already bidding
Reply rate drops 4.5x between a job no other GigRadar team found and one eleven of them did. We can only count our own customers here, so the true crowding is worse.

Two thirds of proposals already land on jobs another GigRadar team is bidding, and those are only the competitors we can see. The proposals you add to hit a stretched quota are, by construction, the ones your scanner ranked lowest and everyone else's scanner ranked highest.

This is why bidding strategy beats bidding volume once you are past the first hundred sends a month.

Your worst bidder is not lazy, they are wearing a worse envelope

Across 61 multi-freelancer teams, we measured the reply-rate gap between each team's best and worst bidder.

3.8pp
median best-vs-worst gap inside one team
8.6pp
gap at the 90th-percentile team
19.2pp
widest gap we measured

Those bidders sent the same template, off the same scanners, to the same kinds of jobs.

What is left is the envelope: the Upwork profile the client sees in the inbox preview. Photo, headline, Job Success Score, badge state, hourly rate, visible portfolio.

Ranked across 183 freelancer profiles with at least 100 proposals each, reply rate runs from 0.6% at the bottom to 17.8% at the top. The 90th percentile profile out-converts the 10th by 5.4 times.

Pro Tip

Give your weakest bidder a quarter of profile milestones instead of a send target: a niche headline that matches the scanner, a JSS repair plan, a better photo, two portfolio pieces in the target subcategory. An agency profile review moves attainment further than another proposal-writing session.

The routing math nobody runs

Take a three-bidder pod replying at 25%, 13% and 6%, sending 100 proposals a week split evenly. That produces about 14 replies a week.

Route all 100 through the 25% profile and you get 25 replies. Same template, same jobs, same connect spend, 78% more conversations.

1
Rank profiles, not people

Pull reply rate per freelancer profile over a cured 90-day window, minimum 50 proposals each. Fewer than 50 and you are reading noise.

2
Split 60 / 30 / 10, not evenly

Weight the scanner mix toward the top profile. Partial routing at that ratio lifts weekly replies 30% to 50% on a typical spread.

3
Respect the Connects ceiling per profile

Each freelancer account has its own Connects balance and availability. Full concentration hits that wall, which is why 60 / 30 / 10 beats 100 / 0 / 0 in practice.

A send quota is a spend quota wearing a costume

Every proposal costs Connects, and Connects cost $0.15 each on Freelancer Plus and Agency Plus alike. A send target is therefore a budget commitment you made without writing a budget.

Run your own bid mix through Upwork's Connects calculator before you sign off on a number. A standard job takes far fewer Connects than a boosted bid in a saturated category, so two bidders on the same send quota can differ threefold in spend.

The cost of one replied conversation varies more than six times across subcategories, at the same connect price.

Upwork job post detail showing proposal count, client hire history, and total spend, the qualification signals available before a bidder spends Connects
Every signal that predicts whether the spend is worth it is visible before a single Connect leaves the balance: proposals so far, invites sent, client spend, hires, active contracts.

A bidder chasing a send target scrolls past that panel. A bidder graded on cost per reply reads it, because it is the only thing standing between them and a $53 conversation.

SubcategoryProposals (n)Connect cost per reply
Other, Accounting & Consulting1,554$8.28
Video & Animation17,808$9.55
Lead Generation & Telemarketing15,816$10.24
Marketing, PR & Brand Strategy10,164$12.82
Web & Mobile Design116,664$34.88
Web Development222,594$36.64
QA Testing8,022$53.04

Source: GigRadar pipeline data, December 2025 to February 2026, Connects priced at $0.15. These dollar figures come from a wider proposal set than the category reply rates quoted elsewhere in this article, so use them to compare segments against each other rather than to back-derive a reply rate.

A bidder who hits 100 of 100 sends in QA Testing burns more budget per conversation than a bidder at 60 of 100 in Video and Animation. A send-count scoreboard ranks the first one higher and promotes their habits.

Grade on connect cost per reply instead, with a ceiling per bidder. Start the ceiling at $20 and tighten it each quarter, and read our Connects cost-per-hire breakdown for the downstream version of the same math.

You are grading a month that has not finished happening

Reply data arrives late. Measured on one snapshot date, proposals aged 45 to 60 days showed a 4.5% reply rate while proposals aged 75 to 90 days showed 9.6%.

Read the whole curve before you use it, including the part that does not flatter the story.

Days since the proposal was sentProposals (n)Observed reply rate
45 to 6014,4164.5%
60 to 7525,7995.5%
75 to 9022,2039.6%
90 to 10525,9799.6%
105 to 12017,4757.6%
120 to 1355,0837.0%
135 to 15022,9177.0%

Source: GigRadar pipeline data, proposals sent December 2025 to February 2026, measured on 2026-04-26.

Read the whole curve

These are different cohorts on one snapshot date, not the same proposals tracked over time, and the tail falls back to 7% rather than holding at 9.6%. Part of the climb is replies still arriving and part is the older cohorts simply being different, which is exactly why you compare like-aged windows instead of adjacent calendar months.

The month-end ritual compares a 30-to-60-day-old month against a 60-to-90-day-old month. The older one has had more time to collect replies, so the current month starts at a disadvantage no bidder can close.

Owners have coached, demoted and fired people over that artifact. The fix is two scoreboards on two different clocks.

Grade this month

Proposals sent, connect spend, scanner-mix compliance, response time to a reply. All complete the day they happen.

Grade on a rolling 90

Reply rate, replies per dollar, calls booked, close rate. Draw the window from data 75 to 165 days old and publish the start date next to the number.

Our own market read follows the same rule. GigRadar pipeline data shows a market-wide reply rate of 4.6% in March 2026 (n = 86,043) and 5.1% in June 2026 (n = 65,838), and the June figure is still curing.

5.1%
market-wide reply rate across 65,838 outbound proposals in June 2026, with Sales & Marketing at 8.3% and Web, Mobile & Software Dev at 3.5%. Set category-specific quotas or you have set one quota that is wrong twice.
GigRadar

Free for Upwork agencies

Stop setting quotas on numbers you cannot see

GigRadar operates a real Upwork Business Manager account that your agency invites in through Upwork's native invitation flow. Proposals submit from our BM under our team's supervision, your freelancer account is never touched, and every send lands in one pipeline view with reply rate per profile, per scanner and per category.

Get Your Free Agency Audit →

How to set a bidding quota that can actually be hit

Five steps, in order. Each one takes an afternoon.

1
Back-solve from the outcome, never from a round number

Start at revenue, divide by average contract value, divide by close rate, divide by reply-to-call rate, divide by reply rate. The proposal target is whatever falls out, not 100 because 100 sounds like effort.

2
Cap the number at your connect budget, then stop

If the back-solved target costs more in Connects than the pipeline it produces is worth, the answer is a narrower scanner, not a bigger number. Volume becomes a budget you spend down.

3
Quota the inputs each bidder controls

Sends, first-response time, scanner compliance and connect spend belong to the bidder. Reply rate belongs to the profile and the targeting, so it belongs to you.

4
Set the quota per category, not per team

At 8.3% in Sales & Marketing and 3.5% in Web, Mobile & Software Dev, one blended target is generous to one pod and punitive to the other.

5
Re-baseline quarterly on cured data

Recalculate the funnel rates every quarter from the 75-to-165-day window, then reset the target. A quota built on last year's reply rate is a fiction with a spreadsheet attached.

The bidder scorecard we use

Paste this into your weekly pod review. It separates the two clocks so nobody argues about a half-cured month again.

BIDDER SCORECARD / [bidder name] / week of [date] GRADED THIS WEEK (complete the day they happen) Proposals sent ............... ___ / target ___ Connect spend ................ $___ / cap $___ Scanner-mix compliance ....... ___% on-target categories First response to a reply .... ___ min median GRADED ON ROLLING 90 (window start: [date 165 days ago] to [date 75 days ago]) Reply rate ................... ___% (team median ___%) Connect cost per reply ....... $___ (ceiling $20) Booked calls ................. ___ Reply-to-call rate ........... ___% PROFILE HEALTH (owner's job, not the bidder's) JSS .......................... ___ Badge: ___ Headline matches scanner ..... yes / no Portfolio pieces in niche .... ___ Routing share this quarter ... ___% of pod volume ACTION FOR NEXT WEEK 1. ________________________________ 2. ________________________________

The quota clause that routes your team into the worst jobs

Plenty of agencies add a quality gate to the quota: only bid jobs above an 80% match score. That clause inverts.

In our data, jobs in the top decile of scanner-match score reply at 5.2%. Jobs in the bottom decile reply at 8.2%.

Match score is not deal quality, it is competition density. A job your scanner loves is a job every other agency's scanner loves too, which lands you back on the right-hand side of the crowding chart above.

Delete this clause

"High-quality bids only, minimum 80% match." Replace it with a targeting rule you can defend: payment-verified client, budget floor, posted under an hour ago, category on your pod's list. See our healthy pipeline checklist for the full filter set.

Take the benchmarks with you

Download the funnel benchmarks below and drop them into your quota model. The rates are the defaults in the calculator above.

Reply rate by category, cost per reply by subcategory, and the curing curve, as one CSV.

What I would change first

If your attainment is under 70%, do not touch the target this month. Pull reply rate per profile over a cured window and look at the spread.

If the spread is above five points, you have a routing problem worth 30% to 50% more replies at zero extra spend. That is a bigger number than any coaching plan will produce, and it takes one afternoon of scanner reassignment.

If the spread is tight and everyone is low, the target was never reachable. Rebuild it from the funnel rates, cap it at the connect budget, and tell the team the old number was yours, not theirs.

Under 70% attainment

Freeze the target. Pull reply rate per profile on a cured window and measure the spread before anyone gets a performance conversation.

Spread above 5 points

Routing problem. Reweight the scanner mix 60 / 30 / 10 toward the strongest profile and put the weakest bidder on profile milestones for a quarter.

Spread tight, everyone low

Target problem. Rebuild the number from your funnel rates, cap it at the connect budget, and say out loud that the old number was yours.

For the operating layer underneath all of this, our pipeline ops guide covers the weekly cadence, and the KPI set covers what else belongs on the board. If you want the funnel instrumented without building it yourself, GigRadar's plans start with the audit.