Watch the full agency-JSS playbook. How the score is actually calculated, what the Sept 2024 change broke, and the 5 protection plays. Watch on YouTube.

TL;DR

  • Agencies have one aggregated JSS that pools every contract from every exclusive and non-exclusive seat. One bad private rating on one freelancer drags the whole agency.
  • Public 5 stars don't protect you. Private feedback below 7/10 can drop a single contract's JSS impact by ~11% even when the public review is glowing.
  • Upwork killed the Top-Rated quarterly feedback removal perk on September 3, 2024. Every SEO article that still cites "remove one review per quarter" is stale. The remaining removal paths are narrower than freelancers think.
  • The dominant recovery mechanic is aging out at 6 months, not new positive contracts. Padding the score with $5 perfect jobs barely moves it.
  • Agency-specific protection plays: weekly contract close-out audit, exclusive-vs-non-exclusive seat math, instructed contract endings, and refunding before the dispute escalates. Below.

A US client gave one of our students a 5-star public review on a $4,000 build. Three days later their agency JSS dropped from 100% to 88%. The private feedback rating was 6 out of 10. The client never told them.

Welcome to how Upwork actually scores agencies in 2026. The number that decides whether your invites flow or dry up is calculated from a feedback channel you can't see, on a formula Upwork won't fully publish, with a 6-to-24-month rolling window that pretends to forgive but mostly waits. And starting September 3, 2024, the one official escape hatch (Top-Rated quarterly removal) is gone for everyone.

This article is the agency owner's playbook. Not a freelancer's "how to write a good profile" article. The agency-specific failure modes (one shared score, contract contagion across seats, no JSS Insights dashboard) need different defenses than the solo advice you'll read everywhere else.

Reddit r/Upwork post: 100% Job Success Score dropped to 67% due to unfair private feedback and scope creep, freelancer lost Rising Talent badge
Source: r/Upwork. Public stars say one thing; the private rating says another. The score reacts to the second one.

The math no one shows agency owners

Upwork publishes a one-line definition of JSS: successful contract outcomes minus negative contract outcomes, divided by total contract outcomes. Then they hide every actual weight.

Reverse-engineered from Upwork's own documentation, freelancer experiments, and the patterns we see across GigRadar customer accounts:

Variable What Upwork actually does
Window Calculates separate scores for 6, 12, and 24 months. Displays the highest of the three.
Update cadence Daily since 2025. Was biweekly Sundays before. Articles still citing the Sunday cadence are stale.
Contract weight $1+ counts as 1.0 job. $251+ counts as 1.25. $1,001+ counts as 1.5. Source.
Long contracts Every 90 days of an active paid contract = +1 implicit "completed" job, capped at 8.
Public stars Visible. Influence the formula but don't override private feedback.
Private feedback Hidden. Below 7/10 = "negative" for the formula even when public is 5 stars. This is the lever that quietly kills agency JSS.
Contract-end reason Anything other than "Project completed successfully" counts negative regardless of stars.
No-feedback contracts Officially neutral. In aggregate they create denominator drag because they don't earn a positive slot.
Disputes Count negatively even if you win the dispute. Source.

The JSS Formula lesson in our Agency Success course walks the math through a worked example, including the trick where adding more cheap perfect contracts barely moves the score because they're capped at 1.0 weight while a $1,000+ bad contract counted at 1.5 against you:

From GigRadar's Agency Success Course: the JSS Formula lesson breaks down the calculation with worked examples.

Recovery calculator: how bad is this actually?

Plug in your current JSS and the bad contract that hit it. The calculator estimates the size of the drag, the months remaining until the contract ages out of the dominant window, and the rough $-volume of new clean contracts you'd need to dilute it.

Interactive Tool

Agency JSS Recovery Calculator

Estimate how a single bad contract drags your agency JSS and roughly how to dilute it.

Estimate, not Upwork's number

Upwork doesn't publish the exact weights. The calculator uses the published 1.0 / 1.25 / 1.5 contract-weight tiers and the 6/12/24 month rolling-window structure to give you a ballpark. Your actual displayed score depends on the full contract set, not one bad row.

Why agency JSS is more fragile than solo JSS

Three structural differences make agency JSS easier to break and harder to fix:

1
One score for the whole team

Per Upwork's own help page, the agency JSS pools every contract from every exclusive and non-exclusive seat. Five great freelancers and one freelancer who sent low-effort drafts last quarter all share the same number. Clients viewing an exclusive member's profile see the agency score, not the individual's.

2
Non-exclusive seats hit two scores at once

Every contract a non-exclusive freelancer closes leaves private feedback on both the agency and the freelancer's solo profile. One sour 6/10 from a hard-to-please client drags the freelancer's solo JSS AND your agency JSS in the same hour. We covered the operational math on when to flip a freelancer exclusive in the exclusive vs non-exclusive freelancer mistake that kills most upwork agencies.

3
No JSS Insights dashboard for agencies

Solo freelancers got a per-contract JSS Insights dashboard in late 2024 with check / warning / X markers showing which contracts are dragging the score. Agencies and exclusive seats cannot see this. You're working in the dark while the score moves daily.

The fragmentation tax

When an agency owner lets every team member also bid solo, signal density splits across N profiles. The algorithm sees N mediocre track records instead of one dense 100% record. We unpacked this in how to get more upwork invites as an agency.

The September 2024 policy shift killed the old recovery playbook

Until September 3, 2024, Top-Rated and Top-Rated Plus freelancers and agencies could remove one piece of public feedback every three months (or every ten contracts, whichever came first). It was the safety valve everyone planned around. It is gone.

If a current SEO article tells you to "use your quarterly removal slot to wipe the bad review," it was written before September 2024 or just copied another stale piece. Treat it as the test for whether the rest of the article is worth reading.

What remains, per Upwork's current support documentation:

Path 1

Client volunteers an edit

Public feedback only. 14-day window after contract close. Triggered by the Feedback Revision Request tool. Private feedback can never be edited or removed by anyone, including Upwork.

Path 2

TOS-violation report

Abuse, threats, extortion, off-topic political or religious comments, or proven conflict-of-interest. 7 business days for a decision. One report per piece of feedback. Reviewed by AI-first support in 2025; document everything.

Path 3

Full refund before payment release

No payment released = no public review eligible. The visible feedback disappears. The private feedback and its JSS impact remain. Useful for cosmetic profile cleanup, not for fixing the score itself.

Reddit r/Upwork post: agency owner's JSS dropped from Top Rated to 81% after client left unfair private feedback, lost Top Rated badge despite delivering doubled performance metrics
A real recovery story posted to r/Upwork. Top Rated lost on a single 81% reading after a sabotage rating. The escalation path took weeks; the score took months.

The aging-out mechanic is doing most of the work

The 6-month rolling window is the recovery engine. A bad contract from seven months ago no longer sits in the dominant window even though it stays visible on the profile forever. Once the formula's "best of 6/12/24" picks the cleaner 6-month bucket, the score climbs.

"3.8 stars on a $350 job dropped me from 100 to 97 instantly. Three new $4K perfect contracts in the next month moved it to 98. The actual fix came at exactly month 6 when the bad job dropped out of the window. Recovery wasn't more positives. Recovery was patience."

Paraphrased from a $600K Upwork freelancer's January 2025 walkthrough.

This rewrites the agency owner's incentive. Instead of frantically chasing 10 perfect $5 contracts to "reset" (the myth, see Morgan Overholt's recovery walkthrough), the smarter move is to pause risky bids until aging-out does the lift, and protect the 6-month window from a second hit.

The five protection plays for agency JSS

Ranked by impact-per-effort. The first three cost almost nothing and prevent the situations where bad private feedback lands in the first place. The last two are operational hygiene most agencies skip.

1
Instructed contract endings (every contract, no exceptions)

Send a 4-line message before the client closes the contract. Reason: "Project completed successfully." Public stars: 5/5. Private rating: 10/10. English fluency: fluent. Without this, the client picks defaults and "needs more time and resources" sometimes shows up as the contract-end reason. That single dropdown click counts negative regardless of stars.

2
Weekly ghost-contract close-out audit

Every Monday: list contracts with no payment in the last 60 days. Confirm intent. Close the dead ones with a clean reason and a 5-star mutual. Idle open contracts read as unresolved and quietly drag the score. We reference this hygiene in the exclusive vs non-exclusive freelancer mistake.

3
Refund-before-dispute on flag-prone clients

When a contract starts going sideways and you can already feel the 6/10 coming, full-refund before the payment releases. Public review disappears, dispute is avoided. The private rating still hits, but you've at least removed the visible 4-star damage and avoided the dispute counting separately. Don't refund $5,000 to dodge feedback; do refund $300.

4
Tier your bidding ICP by client risk

High-volume small clients give you many small contracts and many opportunities for one-off bad private feedback. Larger clients with proven Upwork history (verified payment, multi-year hire history, specific avg paid hourly rate visible) almost always close clean. The proposal team should weight by client quality, not just job match. We dug into this filter in the upwork algorithm doesn't reward your best proposal.

5
Exclusive-flip math for non-exclusive seats

Flip a non-exclusive freelancer to exclusive only when they're already 20+ guaranteed hours/week, 3+ months tenure, and 2+ active contracts under the agency. Below that bar, exclusivity is JSS-contagion exposure (the agency JSS becomes their displayed JSS, drag transfers in both directions). The right framing: exclusivity is a lock-in, not a reward.

The feedback mastery routine most agencies skip

Almost every agency I audit has a sales SOP for proposals and a delivery SOP for the work. Almost no agency has an SOP for the contract-end conversation. The Feedback Mastery lesson in our course breaks down the exact instructions to give a client before they hit "End contract":

From GigRadar's Agency Success Course: the Feedback Mastery lesson covers what to send the client, how to phrase the request, and what to do if the rating still drops.

The lesson's core script (paraphrased): "Hi [client], when you end the contract, please pick 'Project completed successfully' as the reason. The other dropdown options count as negative outcomes against my agency's score even if your stars are 5/5. For the optional rating from 1 to 10, I'd be grateful for a 10. Thanks for working with us." Three sentences, sent every time. The contract-end-reason fix alone prevents about half the agency JSS drops we see in pre-audit accounts.

The bidding-ops side: where JSS actually pays off

JSS doesn't just gate Top Rated. It's roughly a quarter of the Best Match search ranking weight, per the 92-profile community experiment. A 4-point swing on the displayed score moves your invite flow noticeably.

Agency JSS band Algorithmic position
Below 80% Profile pulled out of most Best Match invite queues. Direct invites only.
80–89% Best Match suppression. Top Rated revoked. Visible reduction in invite volume.
90–94% Top Rated band. Mid-tier algorithmic visibility.
95–97% Top Rated Plus eligibility (with $20K+ in 12 months). Strong invite flow.
98–100% Algorithm preference, surfaced in client-side recommendations, priority on Enterprise invites.

The badge tier matters more than the marginal point. Going from 96% to 98% is invisible to most clients. Going from 89% to 91% reinstates Top Rated and the 10% fee discount, restores invite flow, and unlocks Specialized Profiles. How to become Top Rated on Upwork covers the full eligibility checklist.

GigRadar

Free for Upwork agencies

Filter risky clients before the bad rating happens

GigRadar runs end-to-end Upwork submissions through our Business Manager account, scoring every job by client quality (verified payment, prior hire history, average paid rate) before it reaches your bidder. Bad-rating risk drops at the bidding step, not after the contract closes.

Get Your Free Agency Audit →

What not to do

Three patterns I see weekly in agency owner DMs that make the situation worse:

  • Don't argue with a 4-star public review by replying publicly. Future clients read it. The reply is a permanent decision. The feedback you leave for clients matters covers how the reply shows up in your visible work history.
  • Don't refund $5K to dodge a 4-star. The math doesn't work. The visible review goes; the private feedback stays; you're now down $5K. Take the public 4-star and move on.
  • Don't stack 10 freelancer-bid proposals on the same low-budget client to "stack five-star contracts." Bidding multiple times under the same agency on the same client signals spam, gets the team flagged, and feedback from a $5 fixed-price contract weighs less than feedback from a $1,000 one anyway. The math from the JSS Formula lesson above tells you: pad the wrong tier, get nothing back.

The quiet 2026 takeaway

Upwork is not going to make agency JSS more transparent. The dashboard insights for solo freelancers haven't extended to agency or exclusive seats in 18 months and there's no sign that's changing. Support is AI-first and getting more so. The September 2024 removal change tightened the policy and nothing has loosened since.

Operating assumption for the rest of the year: agency JSS is a function of which clients you accept work from, how those contracts end, and time. Not new positives. Not feedback removal. Not Upwork support tickets. Filter the front door, run the close-out script every time, audit ghost contracts weekly, and let the 6-month window do its job.