Sleeper pts_ppr Explained โ What the Field Means and How to Use It

If you've ever poked at Sleeper's data โ through the public API, a stats export, or a community tool โ you've run into a field called pts_ppr. It looks simple, but it trips people up because Sleeper actually returns several points fields side by side, and picking the wrong one quietly throws off every calculation downstream.
This guide explains exactly what pts_ppr is, how it differs from its siblings, and how to use it correctly.
One caveat up front: Sleeper's data formats and the exact set of fields returned can change over time, and Sleeper does not publish a formal schema for every stat. Treat the field names below as the well-known, widely-used ones, and always inspect a live response before relying on it in production.
What Is the pts_ppr Field?
pts_ppr is a player's total fantasy points for a given week, scored under full-PPR rules (1 point per reception). It is a pre-computed convenience value โ Sleeper has already taken the raw stats (yards, touchdowns, receptions, turnovers) and applied the standard full-PPR formula so you don't have to.
In other words, pts_ppr answers the question: "If this player were in a standard full-PPR league, how many points would they have scored this week?"
It is not the score in your specific league. If your league has custom scoring, pts_ppr will not match โ it only reflects Sleeper's standard full-PPR ruleset.
pts_ppr vs pts_std vs pts_half_ppr
Sleeper returns three parallel points fields for skill-position players, one per common scoring format:
| Field | Scoring format | Points per reception |
|---|---|---|
| pts_std | Standard (non-PPR) | 0 |
| pts_half_ppr | Half-PPR | 0.5 |
| pts_ppr | Full PPR | 1.0 |
The three values differ only by the reception bonus. The passing, rushing and receiving-yardage and touchdown components are identical across all three. So for a player who caught 6 passes, pts_ppr minus pts_std equals 6.0 (6 catches ร 1.0), and pts_half_ppr minus pts_std equals 3.0 (6 catches ร 0.5).
That relationship is a handy sanity check: if pts_ppr minus pts_std isn't a clean multiple of the player's reception count, something is off in your data.
For a quarterback or kicker โ positions that don't catch passes โ all three fields are usually the same value.
Where the pts_ppr Field Appears
pts_ppr shows up inside the stats object for a player, in weekly stats data. Conceptually, a player's weekly stats blob contains the raw counting stats (rec, rec_yd, rush_yd, pass_td, and so on) plus the three pre-computed points fields.
A trimmed example of what a single player-week record contains: rec is 6, rec_yd is 82, rec_td is 1, rush_yd is 0, pts_std is 14.2, pts_half_ppr is 17.2, and pts_ppr is 20.2.
You can verify the math: 82 receiving yards ร 0.1 = 8.2, plus 6 for the touchdown = 14.2 (pts_std). Add 6 receptions ร 1.0 and you get 20.2 (pts_ppr).
How to Pull a Player's Weekly Points
The general pattern for getting a weekly fantasy total is: request the stats for a season and week, then read the pts_ppr field off the player you care about.
Sleeper's public stats endpoint follows the shape api.sleeper.app/v1/stats/nfl/regular/{season}/{week} โ for example, the URL for 2024 week 1 is api.sleeper.app/v1/stats/nfl/regular/2024/1. The response is a JSON object keyed by player_id. In JavaScript, you fetch that URL, parse the JSON, look up your player by their player_id, and read the points field you want โ pts_ppr for full PPR, pts_half_ppr for half-PPR, or pts_std for standard. Always guard the lookup with optional chaining, because a player who didn't record a stat may be absent from the response.
For a quick command-line check you can pipe the same endpoint through curl into a small Python or jq one-liner and print just the pts_ppr value for a given player_id.
To map a player_id to a real name, pull the players reference data once and cache it locally โ it's a large payload and shouldn't be re-fetched on every request.
Common Gotchas
Week 0 and preseason. Some endpoints expose preseason or "week 0" buckets. These can contain partial or zeroed stats โ filter to regular-season weeks unless you specifically want preseason.
In-progress games. If you query during a live game, pts_ppr reflects points scored so far, not the final total. It will keep changing until the game is final.
Missing fields. Not every player-week has every field. A player who didn't record a stat may be missing from the response entirely, or have null or absent points fields. Always use optional chaining or a null check.
Custom league scoring. pts_ppr is standard full-PPR. If your league awards, say, 6-point passing touchdowns or TE-premium receptions, you must recompute from the raw counting stats rather than trusting pts_ppr.
Stat corrections. The NFL occasionally revises official stats after a game. Sleeper's values update to follow โ a number you cached on Sunday night can change by Tuesday.
When to Use pts_ppr vs Recomputing
Use pts_ppr (or pts_half_ppr / pts_std) directly when you want a quick, standard-format score and your league uses one of the three common rulesets. It saves you from re-implementing the scoring formula.
Recompute from raw stats when your league has any custom scoring. In that case the raw fields โ rec, rec_yd, pass_yd, pass_td, rush_td, fum_lost, and so on โ are the source of truth. For a refresher on the standard formula, see how Sleeper fantasy scoring works.
Free Download
Get the Free Scoring Cheat Sheet
All scoring rules for PPR, Half-PPR, and Standard โ one printable reference card. Plus ESPN vs Yahoo vs Sleeper platform differences.
No spam. Unsubscribe any time.
Frequently Asked Questions
What does pts_ppr mean in Sleeper?
It's the player's total fantasy points for that week scored under full-PPR rules (1 point per reception). Sleeper pre-computes it from the raw stats so you don't have to apply the formula yourself.
What's the difference between pts_ppr, pts_half_ppr and pts_std?
They use the same yardage and touchdown scoring and differ only in the per-reception bonus: pts_std awards 0, pts_half_ppr awards 0.5, and pts_ppr awards 1.0 per catch.
Does pts_ppr match my Sleeper league score?
Only if your league uses standard full-PPR scoring. Any custom rules โ different passing-TD values, TE-premium, bonus thresholds โ mean you have to recompute from the raw stat fields.
Why is pts_ppr the same as pts_std for my quarterback?
Quarterbacks rarely record receptions, so there's no reception bonus to apply. With zero catches, all three points fields collapse to the same number.
Can pts_ppr change after a game ends?
Yes. The NFL issues stat corrections for a few days after games, and Sleeper's values follow those corrections. A score you read right after kickoff may be revised later.
