π TTR Calculator (Table Tennis) β Points, Probability & Scenarios
Simulate your TTR change after a matchday/tournament: Expected profit, point gain/loss, "What-if" scenarios, and Live-Mode β everything directly in the browser (no tracking).
Mode
Inputs Editable
β‘ Quick Input (Bulk) optional
Per line: OpponentTTR, W or OpponentTTR, L.
Example:
1520, W
1410, L
Matches
Result
β
π Scenarios (What-If?)
In Event mode, the change depends only on V (wins) and the Sum of Expectations P. Therefore, you can quickly simulate here how many wins you "need" to gain e.g. +10 points.
π Explanation (short but useful)
The TTR Value (Table Tennis Rating) is a number that represents your current playing strength in official, TTR-relevant singles. The principle is similar to Elo: You gain points if you win more often or "better" than statistically expected β and lose points if you lose more often than expected. The key is the Profit Expectation: Against stronger opponents it is low, against weaker ones high. That's exactly why an upset feels so good β and is also more rewarding rating-wise.
This calculator shows you two perspectives: In "Event (Official)" mode, a team match or tournament is calculated as a block. You enter your opponents, the tool sums up the expectations P (i.e., expected wins across all matches) and compares them with your real wins V. The change is then ΞTTR = (V β P) Β· k. Important: In this block mode, it doesn't matter against which opponent you get the wins β only how many you get is decisive, because P is derived from all opponent values and your start TTR.
In "Live (Match by Match)" mode, however, you see how an intermediate score would feel if a partial change were applied after each match. This is great for following along at the table or for "What happens if I win the next one..." scenarios. Officially, values are kept as integers at the end β so you can set whether rounding happens only at the end or after each game.
The parameter k (Change Constant) determines how strongly your TTR can react. Standard is k=16, but in practice, k can vary depending on the situation (e.g., with very few rated games or certain age/development cases). To ensure the calculator remains useful for you, you can choose k as a preset or set it freely. Also, the scaling (Standard 150) is visible: It controls how quickly the profit chance tips with the TTR difference.
The added value here is transparency: You see your win probability against a specific opponent, the Sum of Expectations, and via the scenarios immediately the Best and Worst Case. This allows you to realistically assess why a 2:0 against weaker opponents moves "less" than a 1:1 against significantly stronger ones. And you can set goals: "About how many wins do I need to make +10 points?" β without having to wait for the next update.
Privacy: All calculations happen locally in your browser. No data is sent to servers.
β FAQ (Frequently Asked Questions)
1) Why does the calculator show a "k" value β isn't it fixed?
Often k=16 is used. In reality, however, k can be higher depending on conditions. To allow you to calculate meaningfully, k is deliberately selectable here (Standard remains 16).
2) Does it really not matter who I win against?
In "Event" mode, only the Count of Wins and the Sum of Expectations count for the final change. The expectations result from all opponents together β therefore, in this block model, the specific win-opponent is not relevant.
3) Why did I get only a few points despite winning?
If your win expectation was high (you were clearly favored), then a win is "normal" β so there is little plus. A surprising win against stronger opponents is rare β therefore usually significantly more points.
4) What is the use of Live Mode?
It is ideal for following along and for motivation ("If I take the next one..."). Officially, it is usually calculated as a block, but Live is great for the feeling and quick intermediate statuses.
5) Why does it say "Rounding at end"?
TTR is kept as an integer. To remain traceable, we calculate internally with decimals and round (recommended) at the end, so you don't see "phantom points" due to rounding artifacts.
6) Can I also just enter the opponent TTR and set the wins later?
Yes: Use the Scenario Area and slide "Simulate Wins" from 0 to N. This is often faster than clicking each result individually.
7) Why are inactivity or initial rating not calculated?
These are special rules that require additional data and cut-off dates. The calculator is intended as a clear, fast simulator β with a focus on expectation, wins, and k.
8) How can I enter values "like a real match day"?
Enter all opponents (e.g., 2β4 singles in a league match or several rounds in a tournament) and set the results. For multiple days/events, it is best to use multiple separate calculations.
The TTR Formula Explained
TTR (Table Tennis Rating) uses the Elo-based profit expectation formula. Before each match, the calculator determines how likely you are to win based on the TTR difference to your opponent. After the results are in, your rating is adjusted proportionally:
- Profit Expectation PFor each opponent with TTR_o, your win probability is P = 1 / (1 + 10^(−Ξ/s)) where Ξ = TTR_o − TTR_you and s = Scaling (default 150). A negative Ξ means the opponent is weaker; a positive Ξ means they are stronger.
- Sum of Expectations Ξ£PAll individual win probabilities P are summed across all matches in the session. This is your "expected wins" total.
- Point Change ΞTTRΞTTR = k Γ (W − Ξ£P) where W = actual wins and k = change constant. If you win more than expected, TTR rises; if less, it drops.
Example: Your TTR is 1450, opponent is 1520 (Ξ = +70). With s = 150: P = 1/(1+10^(70/150)) β 0.41. If you win (W=1) with k=16: ΞTTR = 16Γ(1−0.41) β +9.4 points.
Which k-Factor Should You Use?
The k-factor controls how strongly a single result changes your TTR. Different leagues and associations use different values:
| k-Value | Name | Use Case | Point Change Range |
|---|---|---|---|
| k = 16 | Standard | Most German state leagues and DTTB club competitions. Default for established players. | Β±0 to Β±16 per match |
| k = 20 | Dynamic | Youth players, new entrants with fewer than 30 rated games. Some regional associations. | Β±0 to Β±20 per match |
| k = 24 | Very Dynamic | Provisional ratings (fewer than ~15 games), rapid establishment phase. | Β±0 to Β±24 per match |
| Custom | Free | International/ITTF variants, test scenarios, or specific tournament rules. | Depends on value |
If unsure: use k = 16 (Standard). The calculator defaults to this value and it matches the most common German competition rules.
Live Mode vs. Event Mode
Live Mode
Each match result is applied sequentially to the updated TTR. Your TTR changes after each game. Best for simulating a series of individual matches where the TTR evolves step by step.
Event Mode
All matches in the event are evaluated together using your starting TTR. Only the total win/loss ratio matters. This mirrors how German league seasons officially calculate TTR changes at season end.
Bulk Input
Enter multiple matches at once. Format one per line: OpponentTTR, W (win) or OpponentTTR, L (loss). Click "Apply Lines" to import. Great for entering a full match day quickly.
Probability Curve
The SVG chart visualizes the win probability across all TTR differences from −300 to +300 with a colored dot for the currently selected opponent. The gradient runs green (strong favorite) to red (heavy underdog).
Frequently Asked Questions
Why does my TTR sometimes differ from the official published value?
The calculator replicates the core TTR formula but does not include all special rules: inactivity deductions (if you haven't played for 12+ months), initial ratings for complete newcomers, age-related k-factor adjustments in some associations, or end-of-season rounding procedures. The official DTTB system also applies specific sequence rules that may differ slightly from the live simulation.
What scaling value (s) should I use?
150 is the standard scaling value used in most German TTR calculations and is the default. The scaling controls how "steeply" the win probability curve falls off with TTR difference. A lower s makes the curve steeper (bigger differences matter more); a higher s flattens it. Unless you are calculating for a specific system that uses a different scaling, leave it at 150.
I entered a match and my TTR went down even though I won. Why?
This is normal and mathematically correct. If you are significantly stronger than your opponent (e.g., your TTR is 300+ above theirs), the expected win probability P is very high, for example 0.95. When you win (W=1): ΞTTR = k Γ (1 β 0.95) = only +0.8 points. In Event mode, if you win fewer games than statistically expected across all matches combined, the total can still be negative even with a winning record.
How do I enter a draw in table tennis?
Table tennis matches at club level are typically played to a definitive win (best of 3, 4, or 5 sets). Draws at match level are very rare and not standard in the German league system. If you encounter a draw situation (e.g., a specific tournament format), you can enter 0.5 wins manually in Event mode for that entry, or simply split it as one W and one L for the two possible outcomes and compare.
Can I use this for ITTF World Ranking calculations?
Partially. The underlying Elo formula is similar, but the ITTF system uses its own rating factors, decay rules, and tournament multipliers that are more complex. This calculator is designed for the German TTR system (DTTB) and European club formats. For ITTF-specific calculations, use the official ITTF rating tools.
Embed this Calculator on Your Website
You can integrate this calculator for free into your own website. Get the embed code on our overview page.