Earnings per job is an agency's or freelancer's lifetime total earned on Upwork divided by the lifetime number of jobs shown on the public profile, giving the average value of a contract to date.
The index computes it from two public counters, total earned and jobs completed, at each observation. It is left blank when the profile shows no jobs or keeps earnings hidden, and for a freelancer whose earnings Upwork shows only as a band, because dividing a floor by a count would not be an average. It is shown in the Insights block of every agency page as "average contract value to date" and is a column in the ranking table, but it is not part of the Index Score.
The figure says something about how an agency works. A high value with few jobs suggests long engagements or large fixed-price projects; a low value with many jobs suggests small tasks or many short hourly contracts. Read with the hourly rate range it also hints at how long a typical engagement runs.
It is an average over the whole life of the account, so it hides the spread: one contract worth half the lifetime total and fifty small ones give the same figure as fifty-one medium ones. It counts jobs Upwork counts, which includes contracts that ended with little or no payment, and it says nothing about the current year; the run-rate does that. Upwork publishes contract values only for hourly work, so the per-job figure cannot be checked against the work history line by line.
How Upwork Insights uses it
Earnings per job is stated on every one of the 28,921 agency pages and in the agency ranking table as of Oct 31, 2026; across the index the agencies show 1,644,256 jobs behind $3.13B of public earnings. Method in methodology, section 2.