Methodology
How the numbers on this site are produced, what they mean, and what we refuse to publish. Last updated July 3, 2026.
What we monitor
We continuously monitor publicly visible Upwork job postings and have done so since July 2025. As of July 2026 the corpus holds 1.5 million postings from 588,000 client accounts, growing by roughly 120,000 to 150,000 postings per month. Each posting is observed repeatedly over its life, not captured once, which is what makes outcome analysis possible.
We publish absolute volumes, never coverage percentages. We have not measured what share of all Upwork postings our monitoring captures, so we do not claim one.
Outcome resolution: the four-way taxonomy
Most published Upwork statistics count postings. Ours track what happened to them. Every posting is followed until it reaches a final state:
- FILLED: at least one freelancer was hired.
- UNFILLED: the posting closed without any hire.
- CANCELLED: the client withdrew the posting.
- EXPIRED: the posting aged out without resolution.
A posting is resolved once it carries one of these labels. Fill rate = FILLED as a share of resolved postings.
The cohort rule (why our fill rate differs from other published numbers)
Fill rates computed on recent postings are systematically inflated: jobs that hire tend to close within days, while jobs that never hire linger open for weeks before closing or expiring. Measure a young cohort and the fast, successful closures dominate. Our April 2026 cohort, measured today, shows a misleading 55.8% fill rate for exactly this reason.
Our published fill rates therefore use stable cohorts: postings old enough (roughly four months) that outcomes have fully resolved. Current stable-cohort baseline (postings from October 2025 through February 2026, n = 617,336 resolved): 43.9% filled, 41.3% unfilled, 8.7% cancelled, 6.1% expired.
This is also why published Upwork hire rates disagree with each other:
| Source | Published number | Why it differs |
|---|---|---|
| GigUp free dashboard | 22.8% | Single last-month snapshot; most eventual hires have not happened yet at observation time |
| Vollna 2024 annual report | 38% | Two-year window mixing resolved and unresolved postings, binary filled/not taxonomy |
| This site | 43.9% | Resolved postings only, from cohorts old enough to have settled |
Directionally the sources agree (our category ranking largely matches GigUp’s snapshot, and Vollna also finds translation on top and entry-level postings filling more often). The level differences are cohort methodology.
Client-level metrics
Client attributes (payment verification, lifetime hires, lifetime spend, feedback score) are captured at each observation of each posting. Client-level classifications use the maximum value seen across all observations, so a “zero hires” verdict means zero at every sighting, and postings from the last 14 days are excluded from outcome-dependent cuts so fresh postings are not misclassified as never-hiring.
Time-to-fill
Time-to-fill measures days from posting publication to detected closure, for filled postings. Closure detection runs on a cadence of roughly two hours, so figures are accurate at day granularity. We publish time-to-fill only for cohorts from April 2026 onward; before that date our closure timestamps reflect a retroactive backfill rather than true close times, and we treat them as unusable for duration analysis.
What we deliberately do not publish
- Per-posting or per-client raw data. Everything published is an aggregate or a bucket.
- Applicant-count statistics. Our stored applicant figures sit well below freelancer folklore and pass internal consistency checks, but until we finish validating what the counter measures against live postings, no competition statistics ship.
- Pre-April-2026 time-to-fill (see above).
- First-posting flags. The signal is unreliable in recent data and is excluded until traced.
- Coverage percentages (see “What we monitor”).
Known limitations
- Fill rates describe resolved postings; a posting can hire after unusually long delays and outcome labels are only as current as our last observation of the posting.
- Cohorts from July through September 2025, our first months of monitoring, show fill rates of 36-42% versus 43-45% afterward. We verified this is not a category-mix artifact and have not yet established the cause, so those cohorts are excluded from headline claims and disclosed here instead.
- A legacy timestamp offset affects roughly 830,000 early rows at sub-day precision. It has no effect on day-granularity statistics.
- 51 closed postings carry no outcome label (0.005% of closed postings). 38 postings show reopened-after-closure edge states. Both are excluded from fill-rate denominators only in the sense that unlabeled rows cannot be counted as resolved.
- Numbers describe the postings we monitor and may differ from Upwork’s internal accounting.
Corrections
If you believe a published number is wrong, write to contact@freelancingstats.com. Corrections are noted inline with the original figure struck through, not silently edited.