It’s Not Fantasy, It’s Simulation

Jack Gonzalez

I rescued this post from an old blog that I’m not updating anymore. It has become a handy piece to point folks to when I try to tell them about my baseball simulation league. This post was originally published June 16, 2006.

I never understood fantasy baseball.

I have all the symptoms of a fantasy baseball addict. I love baseball. I love baseball statistics. I love tracking how my favorite players are doing. I love putting myself into the shoes of Major League general managers, debating what I would have done in a particular trade or signing situation. I love drafts. I’m web savvy and online a good chunk of the day. I enjoy making a deal.

But I have picked a different kind of poison. My drug is not fantasy baseball. Instead, I am addicted to baseball simulation.

There are very important differences between fantasy baseball and baseball simulation. One of my problems with fantasy can be summed up in an example that I often use.

Let’s say my brother in law is sitting at a bar with his friend, watching the Red Sox game. Their fantasy teams are facing each other this week. Jason Varitek lifts a sacrifice fly. David Ortiz tags up and scores. The friend shouts, “Ha! There’s a point for me! I have Varitek!” My brother in law replies, “Yeah, but I have Ortiz. We’re even.”

I have three very big problems with this scenario. The first is “this week.” A baseball game that is one week long? What is this, football?

Secondly, in fantasy baseball when your player drives somebody in, he’s (usually) not driving in a fantasy teammate. In simulation, when my player drives someone in, he is actually driving in a teammate and I am watching that run add to my score.

And finally, say I don’t have Jason Varitek on my fantasy team. Say I do have Kevin Millwood and he’s facing Varitek. I’m a big Jason Varitek fan. I could never root against him. It would just feel wrong. So, I’d find myself not rooting, just sitting there… torn.

Baseball simulation is, at the very least, a great way to avoid these problems. The games are not dependent on the Major League Baseball season. It is all run in a software program. In simulation, Jason Varitek is not the real “Jason Varitek”. He is a software model of Jason Varitek at one point in is career. From that point on, the simulated Jason Varitek can evolve differently than he does in Major League Baseball.

At this point, I’ll invoke the Back to the Future comparison. Remember when 2015 Biff finds the sports facts book in an antique shop, hops into a time machine, and gives the book to 1955 Biff? (Don’t lose me, now.) That action ended up creating an “alternate 1985″ in which all events after young Biff received the book deviate from the original history.

I am the Commissioner of a baseball simulation league. For my league, The Ted Williams Memorial League, our “1955″ (the point where the alternate history deviates from the original) is 2000. The league begins with the 2000 season and the players are generated from a database of all players and prospects from 2000. From the point that our league begins, however, players can evolve differently than they do in Major League Baseball.

Here are three examples:

In 2000, Rick Ankiel was the hottest prospect in all the land. He ran into post-2000 problems in Major League Baseball and has since given up pitching. In my league, he is looking like one of the best pitchers in history (certainly the best in our young league).

In 2000, Barry Zito was not a highly regarded prospect. So, in my league he never really panned out and recently retired with just three career wins.

Mark Teixeira was drafted in 2001. Therefore, he does not even exist in my league.

Trading is far different (and far more rewarding) in simulation. In fantasy, if you need a player, you trade for him, and his points are added to your totals. In simulation, you must find a player that appropriately fits into your lineup, into your payroll, and into your future. Many baseball simulation leagues span over multiple seasons (think “Career Mode” in console games). For example, in the TWML we are about to start 2013, our fourteenth season. Trading for a 37 year old star is great for the short term, but doesn’t make much sense if you’re not going for it all this year. With the exception of keeper leagues, In fantasy your roster is refreshed from scratch from year to year. Even keeper leagues only allow you to keep a few players.

Drafts are far more rewarding in simulation as well. In fact, this is the favorite aspect of many simulation owners. In fantasy, you draft a team of major leaguers from a pool of the top talent. In simulation, you have a very similar draft at the very inception of the league (in order to fill the rosters). Then, each year you have an amateur draft, just like Major League Baseball.

These drafts allow players to choose from a rookie crop of youngsters generated by the software model each season. Some rookie classes are better than others. Some prospects are studs while some are mediocre. Some will develop better than you thought—others worse. Where simulation drafts are really rewarding is when you draft a player, develop him in your minor leagues, and then watch him succeed. In fact, this one aspect of simulation is what I will base the rest of my article on.

After I took over a team in our simulated year 2000 (my original plans were to just act as Commissioner, but I adopted a team with an AWOL owner and dismantled it), I was in line for the third overall pick in 2001, our first rookie draft (our rookie drafts occur in the offseason). Right away, I knew who I wanted, and I got him.

Jack Gonzalez was a 21 year old catcher who was pretty much average in most aspects of the game. But Jack possessed two unique skills: a rifle of an arm and a bat with brilliant power potential.

Jack was sent to my Class A team to start the 2001 season (we have three minor league levels in my sim league). In 88 games, he hit 24 homers and drove in 58 runs while hitting .264 with a .873 OPS. He earned a promotion to AA. While in AA, he again hit 24 homers, this time in only 68 games. His average dropped to .250, but his slugging percentage skyrocketed to .617. His OPS was .934. He drove in 53 runs. For the last two days of the season, he went to AAA, where he was 3-for-9 with a homer.

After hitting 49 homers at all three levels in his first minor league season, I wanted to see how my boy did with a full season at AAA. At this point, he was my top prospect and I had a very capable starter in Ben Petrick (.289, 12 homers, 61 RBI in 2001). There was no need to rush Jack.

My big league catching tandem of Petrick and Javier Valentiin was very good in 2002, allowing Jack to stay in AAA all year long. He showed he had nothing left to prove and blasted 57 home runs while driving in 138 in 159 games. He hit .269 with a .338 OBP and .596 slugging percentage (.934 OPS). Jack was ready.

At age 23, Jack was called up for the start of the 2003 season. Valentin departed as a free agent and Petrick would spell Jack and provide a solid bat off the bench, all while trying out some third base. Gonzalez, as expected, had some trouble with contact hitting, batting .230. He showed power potential, though, hitting 24 homers with 87 RBI. He even showed an element that wasn’t expected, stealing 11 bases. It was all a good start, but just a .285 OBP needed improvement and the low average brought his slugging percentage to just .399. Still, Jack ranked second in Rookie of the Year voting, collecting four of fifteen first place votes.

We hoped 2004 would build on 2003, but it didn’t. My team moved to our equivalent of the National League and the team average dipped from .272 to .247. Jack was one of the biggest offenders, dipping to just .193 with a .252 OBP and .373 slugging percentage. He did hit 20 homers and drive in 62 runs, but those averages were unacceptable. It was sad to see my homegrown “star” struggling like this. Alas, he was just 24.

The next season, Jack seemed to wake up a bit, getting his career highs in batting average (.234), homers (25), OBP (.309), and slugging percentage (.439). In a truly proud moment for me, he was selected as an All Star. At that point, he was just the second player ever created by the software to be an All Star.

In 2006, Jack gave me the type of season that makes a general manager proud. He hit .254—not stellar, but a career high again—and bashed 34 home runs. He slugged a robust .535 with a .312 OBP. His 26 doubles were a career high and his 82 runs batted in were his most since his rookie season. It is worth noting that Jack turned 27 in July of this season, essentially hitting his prime.

The team underwent a big change in 2007. After 2006, the team’s eventual Hall of Famer and franchise cornerstone Mo Vaughn opted for an early retirement at age 38. (It’s worth noting that MY Mo Vaughn had 2510 hits, a .295 career average, and 521 homers in his illustrious career). Vaughn homered 31 times and drove in 119 in his final season. His retirement sent the team into a tailspin and, eventually, a rebuilding phase.

During 2007, Gonzalez appeared to regress. He tied a career low with 20 homers and drove in a career low 53 runs as we fell from an 89 win team to a 72 win team. He hit just .224. Topping it all off, this was a contract year for Gonzalez. He was re-signed at the beginning of the season for $1.6 million per season for six years. One thing to keep in mind is that the software’s financials look a little different than MLB’s. A good rule of thumb is that the software’s figures are about a third of what MLB’s would be, so Gonzalez was to be paid about $4.8 million per season—a bargain for a 34 homer hitting catcher, but a 20 homer, .224 hitter?

In 2008, he went from a .224 hitter to a .214 hitter, but he raised his home run total back to 25, making it a bit more acceptable. But still, it wasn’t enough. I was starting to wonder if Jack would get better. I was getting defensive of cracks on Jack’s hitting made on our league’s forums. One thing I did have was a great pitching staff all along, and Jack was one of the reasons. He was an excellent defensive catcher and always threw out a lot of runners.

2009 was an important season for Jack, as he turned 30 years old that July. The Battle Cats were a struggling franchise, but we got a boost when Jack got off to a huge first half. He was an All Star again for the second time. Unfortunately, his second half started off miserably. As we slipped even further, I did a lot of studying of our box scores and game logs. I found some interesting patterns.

I noticed that though I was resting Jack because his hitting was slumping, we were still losing. We actually seemed to do better when he was in there, whether he was producing at the plate or not. So I put him back in, and I put him in every day. He finished a bit better and posted a career high .255 average with 25 homers and 74 RBI. He slugged .459, his second best mark yet. And we won more.

It’s one of those things where you really don’t know how much goes into the software model. Astros pitchers love throwing to Brad Ausmus, so he always plays even if he’s not the best hitter. Could my digital pitchers feel the same for Jack? He seemed to have built the trust of my star pitchers. So, I decided to never take Jack out again.

In 2010, Jack started all 162 games of the season. He hit just .230, but he belted a career high 35 home runs and drove in a new career high of 103 runs. The season included his 200th home run.

We went from an 80 win team to a 93 win team. We won our first division title since leaving the old DH league. Though we were smacked around in the first round of the playoffs, it was a great step.

2011 was more of the same. Jack started all 162 games and we improved to 96 wins (winning the division again). Jack hit .234 with 34 homers and 100 RBI. We made it all the way to our very first World Series. Unfortunately, we lost both our top starters to injury in a dramatic 7-game LCS, so we were stuck calling upon a reliever, Billy Koch, to join the rotation. We went six games, but fell short. However, it was another big step for the franchise.

Gonzalez received one lone third place vote for Most Valuable Player. It’s not much, but it was another owner recognizing that while Jack didn’t post the average and OBP of some stars, he provided plenty that was valuable to his club. Teammate Billy Marty, a computer-generated star teammate of Jack’s, took the MVP award. The Battle Cats swept the awards that season (a league first).

I was starting to realize something. Jack hadn’t missed a game since August 25th, 2009 and we were about to start 2012. He had started every game since 8/31/09, as well. And we were winning like the old days. It was fun.

Then came 2012.

Jack was even better.

I’m the father of a toddler, so I’m not going to go overboard and say that watching what Jack did in 2012 is like watching your baby grow up, but man… I’ve experienced the sim baseball equivalent.

Jack was off and running right out of the gate in 2012. He had nine homers and 23 RBI by the end of April. Nice start, but I’d seen this before. He had just a .250 average in June (even that’s not terrible for Jack), but he gave us eight more homers and (get this) 29 RBI for the month. That’s 17 home runs and 52 RBI by the end of May. That’s okay… he’ll slow down at the All Star break, right?

Wrong. June came and Jack had his biggest month, hitting .309 with ten homers and slugging .778 for the month. He became an All Star for the third time. At about the statistical mid-way point of the season, Gonzalez had 27 home runs and 75 RBI. July came and so did ten more home runs and 22 more RBI. This was starting to get a bit crazy. Jack, with 37 homers, had already eclipsed his career high. And there were two months left of the season.

In August, Jack “dipped” to eight homers, but hit .316. During the month, I decided to go ahead and extend him even though he was not due for a contract until the end of 2013. For $2.3 million per season (remember, about $6.9 million in MLB money), I had Jack signed up for five more years (six including 2013). He would be a Battle Cat through age 39.

Finally, in September, Jack showed signs of slowing down. He hit five homers, giving him a grand total of 50 on the year. He hit just .238, but that only brought his average down to .275, still a career high. He still drove in 21 (meaning that in all six months, he drove in 20+ runs), giving him 141 on the year. He posted a .338 OBP and .590 slugging percentage, both career highs, and also reached new highs in hits (167), doubles (34), runs (97), and triples (4), while tying his high in walks (53).

In September, he also passed the 500 consecutive games started mark, simply remarkable for a catcher. His current totals are 515 consecutive games played, 511 consecutive starts. This season was also his tenth straight 20 homer season from the start of his career, a feat no other computer-generated player in the league can boast.

In addition to his gaudy numbers, Gonzalez posted excellent numbers with runners in scoring position: .301/.343/.613 with 12 homers in 163 at bats. His Close/Late numbers were .311/.373/.622 with 6 homers in 74 at bats. These numbers, and his league leading home run and RBI totals, helped him win his first Most Valuable Player award. Gonzalez was named first on twelve of the twenty ballots. Needless to say, I was ecstatic.

We won our third straight division title and tied our club win record of 98 (originally set back in 2003). After dropping the first two games of the LDS, we unfortunately found ourselves with our backs against the wall in the playoffs. Jack had enough in him for one more dramatic showing. We pulled off Game 3 on a 2-run ninth inning homer by Jack’s teammate, Billy Marty. In Game 4, with our season still hanging by a thread, Jack hit a pair of two-run homers to power us to an 8-0 win. However, we dropped Game 5, 3-0, ending what should have been a much better season.

As we’re heading into 2013, Jack’s 11th season with the club, he is 33 years old and is starting to build some impressive career totals. He is only batting .235, but with 1229 hits so far, he seems to have a good shot at 2000 (especially with playing every day now). He has 292 homers, making 400 for his career seem very likely. If he keeps hitting homers at a 50 homer pace, of course he could get more. He is under contract for six more seasons. If he averages 30 in those years (a dropoff of 20 from last season), that would put him at 472. Can’t complain about that.

This article was not meant to be a biography of Jack Gonzalez. But I think his story really illustrates my point about baseball simulation. In fantasy baseball, there certainly is some sense of pride if you draft a Justin Verlander and he dominates. But how much pride can you take? It was the scouting director that found him and the general manager that drafted him to the pros, not you. With simulation, you can take more pride in this because you did it yourself. Nobody did the dirty work of getting the player to the big leagues besides you.

There are many reasons why I prefer baseball simulation over fantasy baseball. But I have to say that #1 on the list is definitely Jack Gonzalez, and all that goes along with him. He’s my baseball pride and joy—the guy I’ve brought up. Can you get these types of feelings in fantasy baseball?

I never did.

Editor’s note: In the several years since this article was written, Jack Gonzalez has retired. He played his entire career with the Battle Cats, in fact becoming the player-manager during his final season. In that final season, he reached his 500th home run. He was inducted into the Hall of Fame in 2019 (his first year of eligibility) with 80% of the vote, becoming the first software-created player enshrined. He provided another highlight in 2014 by homering seven times in back to back games (four in the first and three the very next day). He drove in a total of 12 runs (eight and then four).

His final career numbers:

YEAR   AVG  HR  RBI    G   AB    H  2B  3B    R  SB  CS   BB    K   OBP   SLG   TEAMS
2003  .230  24   87  147  544  125  20   0   70  11   7   38  112  .280  .399   FRB
2004  .193  20   62  154  456   88  22   0   46   4   2   31   99  .244  .373   FRB
2005  .234  25   71  153  487  114  23   1   60   8   5   46  115  .300  .439   FRB (All Star)
2006  .259  34   82  140  471  122  26   1   64   5   2   32  113  .306  .535   FRB
2007  .224  20   53  156  460  103  17   1   53   3   2   37   99  .282  .396   FRB
2008  .214  25   67  160  571  122  26   1   67   9   6   53  134  .280  .394   FRB
2009  .255  25   74  151  466  119  16   2   60   5   4   30  112  .300  .459   FRB (All Star)
2010  .230  35  103  162  578  133  16   3   74   2   3   46  128  .287  .450   FRB
2011  .234  34  100  162  581  136  22   3   76   2   0   50  138  .295  .458   FRB
2012  .275  50  141  162  608  167  34   4   97   1   0   53  120  .333  .590   FRB (All Star, Most Valuable Player)
2013  .212  29   96  162  590  125  24   0   64   1   2   47  138  .270  .400   FRB
2014  .248  45  118  162  581  144  30   6   93   1   0   47  109  .304  .552   FRB
2015  .224  40  106  162  620  139  26   6   85   3   2   49  145  .281  .479   FRB
2016  .245  47  111  162  637  156  33   0   95   0   1   45  153  .295  .518   FRB
2017  .210  36  104  162  605  127  23   0   66   0   0   58  148  .279  .426   FRB
2018  .117  11   31  104  273   32   5   0   21   0   0   14   80  .167  .256   FRB
TOTAL .229 500 1406 2461 8528 1952 363  28 1091  55  36  676 1943  .286  .454

Did Jack’s .229 average and .286 OBP warrant induction? Much attention was given to his position, his consecutive games streak (which reached a remarkable 1366 games behind the plate), and his standing as one of the first great fictional players. I am thrilled he made it, of course.

We’re now heading into 2034 and Jack has a rather brilliant second career under his belt. In his first full season as manager (2019), he managed the team to a 20-win swing. The very next season, he won his first division title with a 93-win season. In 2024, he cemented his status as a Fall River legend by finally leading the Battle Cats to the World Series. In all, he won seven division titles (in 2020, 2022, 2024, 2025, 2026, 2030, and 2032). The last one was rather triumphant as an aging team powered past the rival Vancouver Otters in the final week. The next season, a rather massive rebuild began.

Jack will guide the Battle Cats through this next rebuild, which looks to be an extensive one. Much of the team’s core was together for about 15 years and aged together. It was rewarding, but now it will be a long process to build the next core.


  1. On December 3rd, 2008 at 12:01 am Scott said:

    Is it ok if I didn’t read all of that? I really did try.


  2. On December 7th, 2008 at 12:59 am Scott McCracken said:

    I must admit, you make a very convincing argument for simulation over fantasy. Based on your post, I believe in many ways I’d prefer a simulation league. Whenever I owned a baseball video game I always opted to skip out of playing the actual games and focus on management – trades, contracts, but above all else the draft. I love stats and totally dig that you have pride for a simulated player. Maybe I should look into simulation leagues this upcoming season, any suggestions?

    I will continue to play fantasy baseball next year for a few reasons, but mainly because it’s something my Dad and I have been sharing for years (and he loves it). By the way, does this mean you’re out of the ’09 season? ;o)

  3. On April 23rd, 2009 at 3:26 pm Brad Nix said:

    I have been commish of a fantasy (originally rotisserie) baseball league since 1990 (I was 16). I have also played many sim leagues with different software. I understand your desire for sim over fantasy, but I challenge you to review one VERY important benefit that you overlooked in your scenario above…

    You were at a bar, drinking beer, talking smack about your league, while watching real baseball drama unfold on the tv, with your friends and family next to you. It’s hard to do that in a sim league.

    To solve my desire for both experiences, I turn to: