Basically, I created an improved version of VBD that operated on a per-game basis instead of a per-season basis, and which compared to two different baselines- true replacement level, and average fantasy starter. I then dug through a bunch of MFL leagues from last year and recorded what the actual observed replacement level and average starter values were, and from this I came up with a formula to calculate EVoB (estimated value over baseline) and EVoS (estimated value over starters).
Then I copied every season from a skill player from 1985 to 2014 from PFR, ran them through my EVoB / EVoS calculations, and built a database of historical fantasy values, (if anyone cares, I've uploaded them to Google Sheets and you're free to play with them.
Read more here.) From this database, I started digging around into player aging patterns and discovered that, while the population average at each age forms the pleasant age curves with which we are so familiar, applying those curves to individual players was an example of ecological fallacy.
Instead of slowly declining, the players who didn't implode entirely actually held remarkably steady in fantasy value year after year, (
see this chart), but as players age the odds of them imploding went up, (
see this chart). That's why the population average was declining, because more and more players were just imploding outright.
Anyway, this finding suggested that, apart from a ramping-up period at the beginning stages, players basically hovered around a stable "true performance level" for their entire fantasy career until they suddenly and unexpectedly fell off the cliff. Which means that if we can estimate their "true performance level", and we can estimate their remaining career, their fantasy value can be estimated by multiplying the two figures together.
To estimate remaining career, I built a "mortality table" to calculate life expectancy. It's the same thing life insurance agencies do when they offer you a policy. They don't know when you're going to die, but they can at least rig the odds in their favor so they can expect more money coming in in the form of premiums than going out in the form of claims. The mortality table was built on historical aging patterns from my value databases.
Estimating "true performance level" is really the tricky part. Up to this point, everything's pretty well supported by actual historical patterns. I mean, I'm no actuary, so I'm sure the "estimated career remaining" part could be improved a bit, but everything is theoretically sound and I'm pretty confident it's at least all in the right ballpark. But just like VBD is only as good as the projections on which it's based, my dynasty values are only as good as the "true performance level" I'm inputting.
Since estimating that is really freaking hard, I decided to cheat. Bob Henry was FantasyPros' most accurate ranker last year, and he does the top 200 forward for FBGs during the season. So when it comes out on Tuesday, I just copy it, dump it into a spreadsheet that automatically breaks it out for me, and use that as the starting point. I assume that, since players tend to play at their "true performance level", their projected production for this year is often going to be pretty close. And since we already know that Bob is good at what he does, it kind of gets around any lingering questions about how good I am at what I do.
From that skeleton, I make necessary adjustments. I build in assumptions of improvement into the rookies, create projections for the veterans who are sitting out this season, (Jordy, Gordon, Benjamin, etc.), and basically just tweak things here and there. I mostly aim for the low-hanging fruit and try to leave well enough alone whenever possible.
Then, once all of that is done, I apply a time discount formula to represent the differences in mindset between contenders and rebuilders. The biggest difference between the two is how they value this year relative to the next, and time discounts are the perfect tool to model that. My standard discount, which I call my "balanced" values, is a flat 10%. Next year is worth 90% of this year, the year after is worth 81%, the year after is 73%, and so on. This covers things like risk of the league folding and just general impatience. In my value charts, I also submit charts with a 30% time discount to represent gung-ho "win now" contenders and with a -10% time discount, (i.e. "next year is more valuable than this year") to represent a heavy rebuild. But for my own teams, I'm mostly just using the 10%.
So anyway, "how accurate the system is" is kind of a moot question. The system is fine. I know it works, because it's modeled on actual historical fantasy values. I could go back to any point in the past, use my knowledge of players' "true production levels", and reverse-engineer a pretty rad set of dynasty trade values for that specific time. There's still a lot of stuff I'm learning, and there's plenty of room for me to improve my formulas, but from a high-level conceptual standpoint, I feel really good that the framework is on point.
In terms of how accurate my value charts are... that's the real question. It all hinges on how accurately I'm able to estimate true performance level. It's just like redraft projections- the concept of VBD is unassailable, prima facie true based on simple logic. But actual projected VBD values are only going to be as good as the projections from which they're built. Footballguys sells a lot of subscriptions in large part because they've got an awfully long track record of strong projections.
I'd be really interested to measure the accuracy of my assumptions. I can tell you right now from some informal testing I've run on my numbers that for 2015 so far, I've been absolutely murdering it. I can also tell you right now that the sample size is three weeks, (plus a couple other preseason data points). How confident am I that my hot start is a reflection of the quality of my processes vs. just blind, stupid luck? Not even the slightest bit confident. The sample size is pathetic. I've had hot three week stretches before, and until I get a lot more data coming in, I'll assume that this one means exactly as much as the last ones meant. Which is not much at all.
When I have time this offseason, I'm going to do a lot more tinkering around the edges, improving my calculations a little bit, back-testing my results and seeing if I can improve my methodology, that sort of thing. I also want to add a lot more features to the mix. These generic pre-generated value charts are just the tip of the iceberg. I just need to put them through their paces first and make sure they actually hold up before I try anything really crazy with them.
In the meantime, in the name of informal testing, I've been creating bespoke value sheets for both of my dynasty leagues and running my teams by them. If you see me posting any trade in the dynasty trades thread, you can be pretty confident it's something I did because the numbers told me to. Some of them are going to look pretty out of whack with established market values, but I think that's just kind of the nature of the exercise.
In short, if the final product sucks, I'll probably ruin my own teams with it long before I get far enough along to ruin anyone else's teams.