Search

James Tjoa

Seattle, WA
3.5C year-end 2025
155 matches · 68W–87L · seasons 20192026
Bump probability
3.03.54.0lowhigh

Where this rating stands today. Taller means more likely. The dashed lines are the band edges, and the three shaded areas are the three percentages below.

3.31
estimated dynamic rating
Where the rating sits now, on 23 matches this season · USTA never publishes this number
0%
down to 3.0
99%
stay 3.5
1%
up to 4.0

A 3.5 runs from 3.01 to 3.50. This rating sits in the upper half of the band, and every match moves it.

Our estimate, not a USTA figure — scale measured at this point of 2023 on 2160 players. Graded publicly in December when USTA publishes year-end ratings. It moves when you play, and occasionally when we improve the model.

Where you rank
Seattle · 3.5
127 of 256
WA · 3.5
530 of 1209

James is ranked among players at the same level in the same place, by our estimated dynamic rating — not the published level, which is the same for everyone in the band. Groups smaller than five are not ranked, because a placing out of two is noise dressed as standing.

Over timerating by season, and how you rank
Rating by season

James has been 3.5 for all 8 seasons on record, but moved a long way inside it — from the bottom of the band to the middle.

3.03.520192020202120222023202420252026

The line is our estimate; the horizontal lines are level boundaries, so crossing one is a bump. Hollow points are years we inferred from the level played the following season, because USTA publishes a current rating but no history.

How you rank at your level
At 3.5, James has gone from the 46th to the 59th percentile of players at that level, 2019 to 2026.

Percentile compares the same level in the same season, by share of games won. Mixed is shown for context — USTA rules exclude it from your adult rating unless mixed is all you play.

By level6 levels played
3.5
45.2%
38W–46L · 48.5% of games
4.0
0%
0W–4L · 27% of games
7.0
77.8%
7W–2L · 60.1% of games
8.0
0W–3L
not enough matches yet
7.0mixed
43.5%
20W–26L · 48.1% of games
8.0mixed
60%
3W–2L · 47.1% of games

Games won matters more than matches won — NTRP adjusts on margins.

Match history155 matches
L
2026-07-26 · #3 Doubles · 8.0 · with Tina Zakahi
+0.000about as expected — took 20% of games against 20% expected
6-1, 6-2
L
2026-07-25 · #3 Doubles · 8.0 · with Anna Karlin
+0.000better than expected — took 25% of games against 19% expected
6-3, 6-1
W
John Walker / Jackie Oslandmixed
2026-07-05 · #3 Doubles · 8.0 · with Pamela Kraus
+0.000about as expected — took 59% of games against 55% expected
3-6, 6-1, 1-0
L
Jiaofeng Xu
2026-06-05 · #2 Singles · 3.5
+0.011about as expected — took 47% of games against 43% expected
6-7, 4-2
L
Phat Trinh / Bao Trinh
2026-05-31 · #1 Doubles · 3.5 · with Rob Vander Stoep
0.036below expectation — took 33% of games against 51% expected
6-3, 6-3
L
Sid Nagendran / Brian Ko
2026-05-22 · #1 Doubles · 3.5 · with Rob Vander Stoep
0.014below expectation — took 33% of games against 42% expected
6-4, 6-2
W
Jordan Stiebritz / Matt Prasek
2026-05-16 · #2 Doubles · 3.5 · with Tyler Fuller
+0.022better than expected — took 71% of games against 58% expected
6-4, 6-1
W
Jonathan Ochoa-Abarro / Prad Manickam
2026-05-02 · #1 Doubles · 3.5 · with Rob Vander Stoep
0.046below expectation — took 48% of games against 66% expected
7-6, 3-6, 1-0
W
Nate Hartman / Rohan Damle
2026-04-04 · #1 Doubles · 3.5 · with Rob Vander Stoep
+0.057better than expected — took 86% of games against 54% expected
6-1, 6-1
W
2026-03-29 · #2 Doubles · 3.5 · with Ra'Id Khalil
+0.016better than expected — took 60% of games against 52% expected
6-4, 6-4
W
2026-03-08 · #1 Doubles · 3.5 · with Rob Vander Stoep
+0.028better than expected — took 86% of games against 64% expected
6-2, 6-0
L
2026-02-14 · #1 Doubles · 3.5 · with Rob Vander Stoep
0.022below expectation — took 41% of games against 51% expected
6-3, 7-6
What an account addsprivate to you

Signing in lets you point an account at your own record and keep things alongside it: notes on individual matches, your racquet and string setup, restring reminders, friendly matches that never reach TennisLink, and a diary of what you changed and what happened after.

None of it is visible to anyone else. Not to other players, not on your public page, not in search. Every private table is scoped to your account at the database level, so it is enforced rather than promised. The public page you are looking at is built from USTA match results and nothing else.

Not affiliated with or endorsed by the USTA. Rating shown is the published USTA year-end figure; match data is from USTA TennisLink.