RotoHoundRotoHound

RotoHound

RotoHound Methodology

By Peter · Updated September 16, 2026

Projection Methodology

Summary

  • RotoHound runs its own projection system by default. It blends component stats with models re-trained each year, and rebuilds every rest-of-season line daily from usage, injuries, and roster status.
  • In a 10-season comparison, Steamer has the strongest average rank correlations. RotoHound falls between Steamer and ZiPS on hitters and slightly behind ZiPS on pitchers.
  • Playing time is the weakest part of the pre-season projection, because the system reads workload history rather than a depth chart. Hitter estimates also account for batting performance, starting frequency, and recorded injured-list time. Rest-of-season playing time is built separately from current usage.
  • The full benchmark workbook is public, with correlations and errors for all three systems. Its projection summary contains the current ten-season results; the workbook identifies older detail and valuation exports separately.

Intro

An essential feature of RotoHound is that you can upload any projection system you want to power the site’s core features (player values, projected standings, the estimated impact of trades on standings, etc.). But I knew the site would need its own projection system that runs by default, partly because it’s a better experience not to re-upload projections, and mostly because our own system lets us build daily projections, model rest-of-season playing time, and project additional stats used in custom leagues.

Therefore, I set out to make projections that were competitive with the major systems in terms of predicting player outcomes. I also wanted to ensure users could understand the methodology, both overarching and per-category. Since I don’t have the time or expertise of RosterResource’s Jason Martinez, the system uses recent usage data (along with roster status and expected IL returns) to project rest-of-season playing time rather than manual estimates.

I initially designed a simpler projection system that solely used the component framework described below (e.g., projecting pitcher K using only a weighted composite from historical results and underlying skills like whiff%, CSW, and FB velo, plus regression to league average). However, I found that I “maxed out” on the accuracy I could achieve without incorporating a model like linear regression, ending up with correlations in sniffing distance of the major systems, but clearly inferior overall. (Projecting rest-of-season playing time from usage rather than human judgment also proved more complicated than I’d expected.)

The system uses a blend of component stats and models that are re-trained each year on earlier completed seasons. In the ten-season comparison, its AVG rank correlation is close to Steamer’s, and its ERA and WHIP rank correlations fall between Steamer and ZiPS. Playing time and pitcher roles remain larger sources of error.

One thing that table does not describe is what you see on the site during the season. Pre-season playing time is thrown away once games are played, and every line is rebuilt daily from observed usage: who is actually starting, how often, and where in the order. That is a different method from the pre-season models benchmarked here, and a different method from reading a published depth chart. AVG, ERA, and WHIP have smaller gaps to Steamer than the counting categories do.

Pre-season playing time is the system’s biggest weakness, since it infers roles from workload history rather than from a depth chart. The hitter model estimates the chance of a meaningful MLB season separately from the volume of plate appearances, using prior performance and usage. Pitcher estimates use workload and starting history, with a calibration for the innings players actually accumulate over a season. In-season playing time is driven by current usage and roles.

What the system projects

RotoHound projects every fantasy-relevant statistic for all MLB players and upper-level minor leaguers (Double-A and above, with a meaningful recent sample), with a rest-of-season line that regenerates every day during the season. The inputs are MLB’s official statistics feed (season stat lines, rosters, injured-list status, transactions, daily lineups, rotation usage), Statcast data from Baseball Savant (exit velocity, barrel rate, expected batting stats, sprint speed, plate-discipline measures), multi-year park factors, and up to five years of major-league history, plus minor-league history.

Design rules

Every statistic follows the same four rules:

  1. Incorporate historical results and skills. Every projected rate blends the player’s track record of outcomes (prior seasons’ category stats like hits, HR, and K, weighted toward recent seasons and larger samples) with his underlying skills (measures like contact rate, barrel rate, and whiff rate, which often stabilize faster than outcomes and predict them better).
  2. Small samples are regressed more heavily than large ones. A thin record is pulled hard toward league average and toward what the skills imply; a long record mostly speaks for itself. For example, entering the 2026 season, Jakob Marsee’s track record (234 career PA) is regressed more heavily than Manny Machado’s (8,195), and more of Marsee’s projection depends on his demonstrated skills (e.g., K%) relative to his results (e.g., AVG).
  3. Playing time is modeled from usage. Hitter PA and pitcher GS & IP are modeled from recent usage, track record, and MLB roster / IL status. Team-dependent stats such as runs, RBI, wins, saves, and holds are allocated from team-level budgets so league totals stay coherent.
  4. Performance is read in the context of its own season. A 25-homer season in 2019 and a 25-homer season in 2014 are different accomplishments. In the system’s model portion, each of a player’s seasons is expressed relative to that season’s league rate, so his record is read against the run environment it happened in. This helps prevent league-wide changes like the 2019 juiced ball, 2021 sticky-stuff crackdown, and 2023 SB-friendly rules from distorting a projection.

Projection framework

Each category is projected by combining projected performance on a rate basis with projected playing time.

How RotoHound projects performance on a rate basis

  • The system uses a player’s historical results and skills to project performance per unit of playing time (e.g., HR per PA, K per batter faced).
  • Components are regressed to league average by amounts that vary depending on the stat (e.g., K% is more stable than LD%) and player track record (e.g., a rookie’s historical performance carries less weight in his projection than a veteran’s).
  • Park effects are removed before skill estimation and re-applied for the projected home park.
  • Most categories are projected using a blend of two methods: a linear regression model, and a component-based calculation.

To give a concrete example, here’s how the system generates HR estimates:

  • The model’s central input is the player’s own HR per PA over the last five seasons, expressed relative to each season’s league rate and weighted toward recent seasons and larger samples. That average is then shrunk toward league average by adding 600 PA of league-average performance to his record, so a veteran with 2,000 PA mostly keeps his established rate while a rookie with 300 PA gets pulled most of the way in. Seasons under 200 PA don’t count toward it.
  • The model’s other inputs are three-year averages of his HR/FB, FB%, ISO, pull%, and hard-hit rate, each shrunk toward league average by its own amount, plus age.
  • Each year, the model’s coefficients are re-derived from every completed season since 2011, so the model updates itself as seasons finish. A hitter’s 2026 projections use coefficients derived from 3,291 player-seasons across 2011–2025.
  • The component estimate is HR = BIP × FB% × HR/FB, where FB% and HR/FB are regressed at their own backtest-tuned rates (65 PA and 100 PA, respectively), and HR/FB is adjusted to incorporate Barrel% and park factor.
  • The model and component estimates are blended at a rate of 80%/20% for veterans, with the component percentage increased for players with <1,000 PA. Players with no MLB history are projected 100% using the component estimate. (Note this is for HR; the model/component blend, and how it scales with playing time, varies from stat to stat.)

Stolen bases. A separate model estimates steals per plate appearance from three years of steal rates relative to each season’s league, speed score, age, the amount of batting history, and stolen-base success rate. Small samples are pulled toward league averages. Training includes part-time players and debut seasons with at least 100 PA, and gives more weight to larger samples. The fitted rate supplies the stolen-base estimate when the required history is available; otherwise the component estimate is used.

Pitcher strikeouts. Pre-season projections blend a fitted strikeouts-per-inning estimate equally with the existing history-and-skills estimate. The fitted model uses three years of league-relative strikeout rates, recent performance, age, starting share, and time since the last qualifying season. It learns from earlier seasons and reduces the influence of small samples. Projected innings convert the rate to a strikeout total; K/9, K/BB, and FIP use that final total. Pitchers without sufficient MLB history retain the history-and-skills estimate.

How RotoHound projects playing time

Pre-season: Hitters use a fitted model; pitchers use the rules below. Both are worse than Steamer at ordering players by expected playing time, because neither reads a depth chart (the numbers are in the Benchmarking section).

  • Hitters. Two estimates are multiplied together: the probability of reaching 50 MLB plate appearances, and the expected PA conditional on reaching that threshold. Inputs include three years of PA, prior-season games and PA per game, peak workload, age, and prior batting production measured by wRC+ (run creation relative to league average), with small samples pulled toward average. Where available, the model also reads prior-season starting frequency, final-60-day usage, starting share while healthy, recorded IL games, and changes in healthy starting share. Completed-season lineups and IL records supply those features. Missing role history falls back to the workload-and-batting model. Both estimates are re-fit using earlier seasons, including players who did not return to MLB. The result has no full-time-player floor, and games played follow from PA.
  • Pitchers. A starter with a full prior season (150+ innings, 25+ starts) anchors on last year’s innings, held between 170 and 220. Coming off an injury year (healthy two years ago, short last year) he gets 85% of the healthy season. A reliever gets 95% of last year’s innings, held between 55 and 90.
  • Starter innings floors. Innings are then floored by demonstrated starting evidence, so a pitcher with real starts is not priced as a reliever: 8 or more starts last year at a 40% start share floors him at 150 innings; 3 or more starts floors 130; any start in the last two years for a young pitcher with a thin career floors 110; a 13-start Triple-A season floors 120; a rookie projected for 10 or more starts floors 130. Closers are exempt. The floors raise innings only. They never change a pitcher’s role. After these rules, pre-season innings are multiplied by 0.8 to account for the gap between a workload baseline and realized season volume. This calibration applies before counting stats are assembled; explicit workload overrides and usage-based rest-of-season innings retain their own estimates.

In-season: Pre-season playing time is discarded once the season starts, and every line is rebuilt daily from observed usage.

  • Hitters. Rest-of-season PA = (remaining games he is available for) × (his projected share of those games as a starter) × (his PA per start)
    • Start share. There are two main inputs. The first is the last 14 days of lineup cards. The second is his season-long start rate, measured as starts divided by the games he was actually available for, with injured-list time removed from the denominator so a player who missed six weeks is not punished for it. The season-long role sets the expectation, and the recent window updates it. How much the season role resists the window depends on how much he has played: an established regular (250+ PA, starting at least 70% of games) is anchored with weight on the order of his season games played, capped at 70 games, so a cold two weeks cannot cost him his job on paper. A thin-sample player is anchored at the equivalent of 10 games, so recent usage moves him quickly. The season-long expectation he’s anchored to is not his raw rate but the center of his role tier (assumed as .92 for everyday, platoon .62, bench .18, etc.).
    • Batting order. PA per start comes from where a player hits: leadoff 4.65, second 4.55, third 4.45, cleanup 4.35, fifth 4.20, sixth 4.10, seventh 4.00, eighth 3.90, ninth 3.80. The slot is his average lineup spot with ten games of a neutral middle slot mixed in, so one day at leadoff does not reprice him.
  • Pitchers.
    • Starter role. Rotation membership is inferred from actual recent starts, taking each team’s five most recent distinct starters, and a member is projected for one turn in five of the remaining games. Six-man rotations are detected from usage (six pitchers with two or more of the team’s last twelve starts, all active within the past week) and members get one turn in six. A pitcher who skipped a turn but has a real season starting record and started within the last 21 days still counts as a member, because ordering by last start alone would drop an ace on extra rest. A pitcher outside the rotation gets a small residual capped at 6% of remaining games, since he might spot-start. A team whose recent start log is too thin to read gets no rotation inferred at all, and its pitchers fall back to their own start rates. Innings are starts multiplied by his own innings per start (5.3 by default, held between 3.5 and 7.0). Finally, a team cannot start more pitchers than it has games. When there’s a playing-time clash (projected starters exceed about 105% of the remaining schedule), the system prioritizes the pitchers with better FIPs and more career innings, and a pitcher with 8 or more starts this season keeps his turn regardless of his ratios.
    • Reliever role. A reliever’s expected games% is his season-to-date appearances divided by the games he was available for, blended with a prior for his role (closer .40, setup .38, middle relief .26 to .30), and capped at .52, since no reliever in the modern era appears in more than about half his team’s games. Available games exclude injured-list and option time. Innings per appearance use the player’s season-to-date rate for relief appearances only, held between 0.7 and 2.6. For a swingman, rotation turns are removed from the relief window.
  • Injuries. An injured player is given an estimated return date and loses the games he’s expected to miss. The estimate starts from historical patterns for the injured list and the injury type in question (e.g., the median IL-10 stint is 15 days, and the median oblique injury costs ~28 days). A published return date or range (for example, the Guardians saying José Ramírez is out 5–7 weeks) can push the estimate later, and the system always takes the longest of what it has, because list minimums and early reports tend to be optimistic. A player returning from a 15- or 60-day list carries an additional 8% reduction after his return.

Other system features and notes

  • Dynamic in-season update. For rate projections, the current season enters as an additional weighted season.
  • Aging is incorporated in two places: a per-stat aging curve centered on peak age 27 in the component build, and age/age² as inputs to the model. The model learns its age slopes each year, and allows for more nuance than a hand-set aging curve. For example, the system’s stolen-base model learned (and therefore projects) a much steeper speed decline than a linear post-peak decline.
  • Save and hold allocation. Saves are not projected as a rate. A model splits each team’s remaining save pool among its own relievers using their save logs (14-day, 45-day, and season shares, plus holds share as an heir-apparent signal), and the pool itself is the team’s season-to-date save pace prorated to its remaining schedule. Roles are rewritten from the result, so a stale closer tag cannot keep feeding saves to a pitcher who is no longer getting them. Holds are then redistributed from a leverage-weighted team budget, blended with each reliever’s demonstrated holds, and re-run after saves so hold eligibility reflects the final save totals.
  • Minor leaguers. Minor-league performance is translated to major-league equivalents before it enters the engine: each stat is adjusted by a level-specific difficulty factor, the league and park run environments are removed, and the player’s age relative to his level is credited or penalized. Translated seasons then enter as small, slightly worse major-league seasons with heavily discounted sample sizes (Triple-A counts at 60% weight, declining to 10% for rookie ball), so minor-league evidence is used but not trusted like major-league evidence.
  • NPB/KBO and other players without history. A player arriving from Japan or Korea has no major- or minor-league record for the engine to read, so he is projected manually using a few anchor stats and rates (e.g., HR, K%), with the rest of the line derived from league-average relationships.

Benchmarking

Open the projection benchmarking workbook (Google Sheets)

The table covers ten seasons, 2012–19 plus 2024–25, and compares RotoHound against Steamer and ZiPS on 274 hitters and 176 pitchers selected by pre-season consensus each year. It reports rank correlation (Spearman), which measures how well the projections order players by their actual results. The workbook also reports Pearson correlation and absolute errors. The section below the table explains how that group of players is chosen.

Rank correlation (Spearman) with actual results, averaged across the ten backtested seasons, on the same 274 hitters and 176 pitchers per season. Bold marks the best of the three systems in each category.
RotoHoundSteamerZiPS
HR.629.689.594
R.542.632.443
RBI.556.642.471
SB.682.743.673
AVG.514.513.496
Hitters, average.584.644.535
PA.537.639.383
W.469.611.480
K.535.652.532
SV.738.833.804
ERA.415.441.389
WHIP.435.467.412
Pitchers, average.518.601.524
IP.571.669.580

Steamer leads every category here except AVG, where RotoHound has a small edge. Average rank correlation across the five hitter categories is .584 for RotoHound, .644 for Steamer, and .535 for ZiPS. Across the five pitcher categories it is .518, .601, and .524, respectively. The pitcher average includes wins, strikeouts, saves, ERA, and WHIP; PA and IP are shown separately.

How the benchmark is set up

My goal isn’t to convince you that RotoHound is demonstrably better than the leading projection systems, but that they’re a capable set of projections that can be relied on to produce reasonable values that don’t vary wildly from what you can download from FanGraphs, thereby allowing you to make decisions based on the site’s defaults without concern that it will cost you your league.

The ten-season correlation table uses 2012–19 plus 2024–25, chosen to exclude the COVID-shortened 2020 season and the three years whose recent (three-season) history windows include it. A projection for 2024 or 2025 reaches 2020 only as a distant, lightly weighted fifth season, so those years are kept.

The pool is selected using pre-season projections, and sized from roster slots rather than a round number. An NFBC Main Event is 15 teams by 30 picks, so 450 players are drafted, and its active lineup is 14 hitters and 9 pitchers. Splitting 450 at that ratio gives 274 hitters and 176 pitchers. The same 14-to-9 ratio holds for a standard 12-team league (168 and 108), so it reflects how rosters are built rather than one format’s quirk. Players are ranked by the consensus of all three systems, using league constants from the preceding season. All three contribute to pool selection and are scored on the identical set. Players with no MLB appearances count as zero for counting stats; undefined rate stats are excluded from rate comparisons. Actual results from the projected season do not determine selection.

I compared against Steamer and ZiPS because their historical projections are readily available. (I assume RotoHound trails ATC’s composite approach, and am curious how it compares to newer systems like THE BAT X and OOPSY.) The sheet carries correlation and error metrics for every 5x5 stat, including saves, plus the playing-time inputs PA and IP.

Historical forecasts use earlier-season player data and fit annual models on earlier target seasons. Current roster, injury, and closer information is excluded from those runs. Park adjustments use dated historical information where available and neutral factors where it is unavailable. Historical lineup and injured-list records inform prior usage, but do not fully reconstruct every roster move or expected role.

RotoHound was developed in 2026, so model choices and fixed calibration settings were informed by these historical years. The results are retrospective, rather than an untouched forecast test. Source archives can also contain later corrections. Steamer and ZiPS are represented by their archived pre-season projections. These comparisons measure pre-season accuracy; rest-of-season accuracy requires a separate evaluation.

Strengths

RotoHound’s AVG rank correlation is close to Steamer’s (.514 versus .513), while ERA and WHIP are within about three hundredths (.415 versus .441, and .435 versus .467). Its average hitter rank correlation falls between Steamer and ZiPS.

Correlation describes ordering, while error metrics describe how far projections miss the actual totals or rates. Both matter: similar correlations can coexist with different absolute errors. This comparison covers only two other projection systems.

Weaknesses

Playing time is the biggest weakness, and it is the reason the counting categories trail. The pre-season models infer opportunity from performance and workload history without a complete forecast of each team’s depth chart. PA rank correlation is .537 against Steamer’s .639, and IP is .571 against .669. Mean absolute error is 138 PA against Steamer’s 117, and 43 innings against 37.

Pitching trails by more than hitting does. Saves remain a substantial gap: rank correlation is .738 against Steamer’s .833 and ZiPS’s .804. A save projection depends heavily on who holds the closer job; a rotation projection depends on who holds a starting spot. The Steamer and ZiPS lines archived for these seasons could reflect a person reading a spring depth chart; the RotoHound lines in this backtest are generated from earlier statistical history without a complete record of expected spring roles. Live-season projections can use current team and role information, but the size of any resulting accuracy improvement is not established by this pre-season comparison.

Valuation Methodology

Summary

  • RotoHound prices every player for your league’s exact settings: teams, roster slots, categories or points, and budget. It re-prices daily, using our rest-of-season projections or any set you upload.
  • For category leagues it values production above replacement on one common scale (a version of the standings gain points method, SGP). Points leagues use points above replacement.
  • On identical projections, its values reflect realized 2026 NFBC auction prices as closely as the FanGraphs auction calculator’s (full comparison).

League-specific dollar values

Dollar values are computed from a league’s actual settings: team count, roster slots, scoring categories or point values, and auction budget or salary cap. Replacement level is determined by those settings: it’s the best player who goes undrafted once every team has filled its roster, so a 15-team league with deep benches has a very different replacement level than a 10-team league.

For category (roto) leagues, the engine measures each player’s contribution to each category relative to replacement level. Rate stats are weighted by volume, so a .300 average over 600 AB counts more than .300 over 200.

Each contribution is measured against how much players typically vary in that category (a standard deviation), so one typical spread above replacement counts the same in steals as in homers, and no category dominates just because its numbers run bigger. (This standardized, or z-score, method is the approach behind Razzball’s Player Rater. It is a close relative of the classic standings gain points, or SGP, valuation formalized in Art McGee’s “How to Value Players for Rotisserie Baseball” and taught to many current players by Tanner Bell’s Smart Fantasy Baseball. Both approaches put every category on one scale and price production above replacement.)

Positional premiums equal the gap between the best undrafted player overall and the best undrafted player at each position, which makes catcher the scarcest slot: in a standard 15-team auction, the premium is worth about $10 to a catcher and about $0.50 to an outfielder.

Starters and relievers are measured against separate replacement levels, and swingmen against a blend proportional to their usage.

The dollar scale is set so that a replacement-level player is worth exactly $0. Players below replacement are shown at $0 rather than negative, and positive value is scaled to sum to the league budget, split 65/35 between hitters and pitchers by default. The entire budget is priced above replacement, so replacement-level players come out at $0 rather than a $1 minimum bid. This is a minor simplification for formats that require a full bench, typically with little practical effect on valuation. Daily-lineup leagues use 60/40, since daily streaming and an innings cap mean teams roster more pitching than the active-slot count implies. (Ottoneu uses its own calibrated splits.)

Points leagues use points above replacement instead: projected fantasy points above a replacement band, plus a positional adjustment. They do not use a hit/pitch budget split. All positive value is pooled and the whole budget is distributed at a single league-wide dollars-per-point rate, because splitting it would inflate pitchers, whose pool of value above replacement is smaller.

Benchmarking

Open the valuation benchmarking workbook (Google Sheets)

Benchmarking a valuation system is trickier than benchmarking projections: the values depend on both the quality of the projections and the method of attributing value to production. A way to gauge the effectiveness of the latter is to compare what people actually paid for a given league format, versus the values different systems produce based on the same set of projections.

I ran this analysis on realized 2026 NFBC auction values, 105 leagues of 15 teams with $260 budgets. I compared NFBC AAV with RotoHound’s values and those of the FanGraphs auction calculator. Both calculators were given the same ATC pre-season projections and the same NFBC roster settings, so the only thing that differs is the valuation math.

Each system’s values scored against realized 2026 NFBC auction prices, on identical projections and settings.
RotoHoundFanGraphs
Value correlation (Pearson)0.950.93
Rank correlation (Spearman)0.880.88
MAE (mean absolute error)$2.12$2.45
RMSE (root mean square error)$2.98$3.43

Projection system: ATC. Actual values: 2026 NFBC Online Auction AAV (105 leagues, 529 players).

The two systems are basically identical in terms of their effectiveness at ranking the entire player pool (0.88 versus 0.88). RotoHound’s values land slightly closer to the average auction price, both for the whole pool and when limiting it to a smaller subset (top 50 or top 250 players, viewable in the sheet).

I hope to expand this benchmarking in the future to other league formats (e.g., Ottoneu), to measure how well it extends to different league configurations.

The NFBC comparison suggests that RotoHound valuations reflect expert market values to a similar degree as the FanGraphs auction calculator. In the RotoHound platform, the values are computed for your exact league settings automatically, every day, on our projections that update daily, or on whatever system you choose to upload.

Dynasty Value Methodology

RotoHound’s dynasty value is one number per player: what he is worth as a multi-year asset, in auction dollars, updated daily. It covers this season plus nine simulated future seasons, and it is risk-adjusted, meaning the number already includes the chance that a player gets hurt, loses his job, declines, or never arrives.

Summary

  • The engine simulates careers rather than chaining point projections. Each player gets 300 simulated career paths that age his skills, move him between roles, and sometimes end his career. Dynasty value is computed from the whole distribution of outcomes, not a single stat line.
  • Each simulated season is priced in fantasy dollars by the same valuation engine that powers the rest of the site. Published reference values use a fixed 12-team 5x5 league ($260 budgets) so players and years stay comparable; inside the app, the same seasons are also re-priced for your own league’s format and size.
  • Future seasons carry a time discount of 12% per year, and you can change both the horizon and the discount rate on the Dynasty page to match how win-now or rebuild-minded you are.
  • Prospect values combine RotoHound’s own minor-league projections with publicly available scouting information. Paid rankings services are not used as inputs.

How a veteran is valued

The starting point is the player’s current RotoHound projection, the same one the rest of the site uses. From there the engine ages his underlying component skills (strikeout rate, walk rate, power on contact, batting average on balls in play, stolen-base attempt rate, and so on) along curves fit from every season since 2009. Players age differently by type, so the engine clusters hitters and pitchers into skill-shape archetypes and fits a curve per archetype, with corrections for the survivor bias that makes aging look gentler than it is (the players who decline hardest disappear from the data).

Playing time is modeled separately from skill. Each simulated season moves the player through a role ladder (everyday, part-time, out of the league for hitters; workhorse, mid, low for pitchers) with transition probabilities fit from history and conditioned on age, performance, position, defense, and injury history. A player with two or more recent injury-marred seasons carries an explicit availability discount. This is where most multi-year value differences come from: two players with the same projection but different ages and durability profiles can differ by a factor of two or more in dynasty value.

Each year’s value is the survival-weighted central projection plus half of the simulation upside above it. The upside term is what makes a young player with a wide range of outcomes worth more than an older player with the same median projection.

How a prospect is valued

Minor leaguers are translated to MLB-equivalent skill rates using level factors, an age-for-level curve (young for the level is credited, old is penalized), and minor-league park and league run environments. The engine then simulates when the prospect arrives, using a debut-timing model fit from every minor-league-to-MLB graduation since 2010, adjusted for age and pedigree. A prospect’s value in any given year is chance-weighted: it already includes the probability that he is not in the majors yet, or never gets there.

Statistics alone cannot rank elite prospects, because the players with the most future value often have the least professional track record. For that reason prospect values blend the statistical projection with public scouting information: prospect rankings, expected arrival timelines, and tool grades from freely available sources. The weight on the scouting side shrinks as a prospect accumulates a professional track record, so the more evidence we have, the more the value rests on his own performance.

Reading the numbers

  • Dyn $ is the headline: the discounted sum of all priced seasons, presented on an auction scale so it reads like the prices you pay in a draft.
  • Per-year values show how the total splits across seasons.
  • Risk discount is the share of a season’s healthy price the dollars remove for injury, role loss, decline and, for a prospect, the chance he has not arrived yet. The stat line shows what the player does when active; the risk discount is the chance-weighting. It is separate from the time discount, which applies to all future seasons equally.
  • Floor / Median / Ceiling are the 10th, 50th and 90th percentile career paths, discounted the same way as the headline value. Shown for established players only; a prospect’s price includes scouting information the simulations do not see.
  • League values re-price every season in your own league’s format and size, so an OBP league, a points league, and a 10-team league each get their own numbers.
  • The lens (years and time discount) is how you express win-now versus rebuild. One year at any discount is a pure win-now view; ten years at a low discount is a full rebuild view.

Limitations

  • The current-season column is a full-season-equivalent projection. In mid-season it will not match the rest-of-season values elsewhere on the site, which price only the remaining games.
  • Ten-year forecasts are genuinely uncertain. The engine prices that uncertainty rather than hiding it, which is why far-out seasons carry small dollar amounts even for stars.
  • Prospect scouting input is drawn from public sources only. We track its weight in every value (shown on player profiles) and reduce it as statistical evidence accumulates.

RotoHound is free for the 2026 season. Import your league, and every number on this page is computed for your exact settings.