An agency contract is an Upwork contract in which the agency, not an individual freelancer, is the contracting party, with one of its members assigned to do the work and the payment made to the agency's financial account.
On Upwork a client always hires a profile. When that profile is an agency, or a freelancer proposed by one, the contract is drawn up with the agency: the agency's name is on it, the agency's owner or business manager accepts the offer, and the agency chooses which member is assigned, which it can change mid-contract if the client agrees. An agency contract can be hourly, in which case the assigned member logs time in the Work Diary and Hourly Payment Protection applies as it would to an individual, or fixed-price, with milestones funded into escrow in the usual way. The flat 10% service fee is charged to the agency on each payment.
Everything the contract produces belongs to the agency's record. The earnings add to the agency's total earned, the hours to its hours billed, the client's feedback to the agency's Job Success Score, and the agency's badges depend on the sum of these contracts rather than on the members' own histories. That is why an agency's public figures do not equal the sum of its members' profiles.
For the client the practical differences are a single counterparty for a team, and the right to ask for a different person without ending the contract. For the member it is that the client's money never passes through their own account; the agency pays them on its own terms, outside Upwork.
How Upwork Insights uses it
The figures the index reads from an agency page are the accumulated result of its agency contracts: total earned, jobs and hours. Across the 28,921 agencies indexed as of Oct 31, 2026, that comes to $3.13B of public earnings, 1,644,256 jobs and 176,439,975 billed hours. The methodology lists exactly which fields are read.