Technical Info

ASFBL Technical Information

This portion of the ASFBL introduction was written by Co-Commissioner Jon Bruschke, and is designed to give new or simply interested players a deeper glimpse into the workings of the computer simulation.

The following topics will be covered on this page:

 Stock Information: How the Game is Played

The Game in Brief

This section is designed to make the game more easily understood. These info sheets also include technical details about how the game operates.

The idea is that you become the general manager of a Major League team. The first task is to set a roster. You should include five starters, a closer, two setup men, and two middle relievers. Your batting lineup should mirror a real life, Major League lineup; with fast guys first, high contact guys second, power hitters batting cleanup, and so on. The bench should be listed in the order you want the guys to pinch hit. Your team then plays a regular season of 162 games against other ASFBL teams in computer simulated series based on the year’s real life MLB schedule. And you can even call guys out of the (AAA) minors if you think they are ready, though their statistics will be adjusted for the Majors.

Here is what the simulation does: It starts by figuring out the chance that a given hitter has of getting a hit against a given pitcher. If, say, the batter is a .300 hitter and the pitcher allows a batting average of .200, he has about a .250 chance of getting a hit. A good fielder will then have a certain chance of robbing the hit, and bad fielders would be more likely to boot a routine play. On the same play, runners of different speeds will have different chances of advancing or being thrown out, stealing, and such. The program repeats the process for every hitter and goes through a normal game, making all the necessary substitutions, keeping score, and so on. At the conclusion of the game, the program records the results and prints a box score.


Roster order

You can now use any number of pitchers you want.  On the roster, spots 1-8 are reserved for the starting 8 in the lineup.  Numbers 21-25 are still for starters.  Numbers 9-20 can be either bench players or pitchers in any order you want them in.  Owners in both leagues can use a full 25 player roster.

Bullpen strategy

Instead of set roles at set roster spots, you can assign any role to any number of players.  Thus, you could designate 3 closers, 3 setup, and no long relief, etc.  Make sure you indicate which role you want for each pitcher in your bullpen.  In any pitcher change situation, the computer will first identify it as a save, setup, or middle relief situation.  If nobody is available in that role, the computer will slide down the list.  Thus, if it is a save situation and no closer pitcher is available, the computer will look to the setup guys.  If it is a setup situation and no setup guys are available, it will look to the middle relief guys.  For each bullpen pitcher you call in, please indicate one of the following roles:

  1. Closer only: The LaRussa-type closer.  He will ONLY pitch with leads, ONLY for one inning, and won’t be used in any other role, even when everyone else has been used.
  2. Normal closer: The Bruschke-type closer.  Will mostly come in during save situations, but may pitch in a tied game in extra innings, when the rest of the bullpen is shot, etc.
  3. Set up.  Same as always.
  4. Middle/Long relief.  Same as always.

As a SECOND new bullpen feature, you can tell the computer to look for either the “Best available” or “Least Used” pitcher for a given situation.  Once the computer has figured out what the situation is, it will select the player based on your strategy.  The least used pitcher is the one who has the greatest gap between his real and fantasy innings and is thus most far from going over the 150% cap.  The best available is the guy with the lowest ERA.

Pinch hitting strategy

The owner can select how the computer pinch hits for a player.  The options are “never” (the computer never pinch hits for the player), “computer choice,” (the computer will pinch hit for a player in the 7th inning or later if there is someone on the bench with a better chance of getting a hit, and “Defense only” (the computer will only replace a player for defensive reasons, meaning only when the team is ahead by 3 or more and a better defensive player is available).  As always, the computer will make late inning defensive replacements.  If you don’t indicate anything special about a player, “computer choice” will be the default.

Base running

The owner can select how the computer uses base runners.  The options are “Red light” (player never tries to steal), “computer choice,”  (player runs when computer deems appropriate), or “aggressive” (player runs 10% of the time more than the computer normally would).  “Computer Choice” is the default option.

Caps and adjustments

Normally, a player will have his real-life stats entered as his performance in the fantasy simulations.  However, there are situations where the real-life numbers are adjusted, and those generally occur when a player has not played much in real-life, when you are using a minor league player, or when the player has been used a lot more in the fantasy league than in real-life.

Generally speaking, how well a player will perform in a given fantasy week is a function of his overall seasonal average and his current fantasy performance.  Imagine there’s a hitter who started a week hitting .200, had an amazing week where he hit .500 in 30 at-bats, and raised his seasonal batting average to .300.  The computer will start with a player’s actual average (.300), and then make additional adjustments to drive the fantasy average toward the real-life average.  In other words, the computer knows that the player has to hit .500 in 30 at-bats, so the performance of that player in the fantasy week should mirror the .500 he hit in real-life, and he should finish the fantasy week at or near .500.  The same logic applies to pitching performances.

The just-described process of adjustments also occurs if a player’s fantasy performance is way off of his real-life performance (see “Why are my fantasy stats worse than the real stats?” on the Owners Links page). If, for example, a .300 hitter was only hitting .250 in the fantasy league, the computer will make an extra adjustment to make up the difference and drive the fantasy performance to the real performance.  In this example, the player might hit .350 for a week, even though his actual batting average is .300, in order to get the fantasy average from .250 to .300.

I will say that I believe all the single most important factor in all this is your karma and overall alignment with the baseball universe.  Have you stepped on a foul line recently?  Is it time to shave an unlucky beard?  Are the baseball gods for or against you?  Having watched the league unfold over the past decade, different owners, all of them successful in fits and starts, have different approaches.  Some try to find the players under-performing in fantasy life and rely heavily on the adjustments.  Others try to find the low at-bat and IP players who are tearing it up and milking them for all they’re worth.  Others rely on bullpen depth or platoons.  It is my belief that, in the end, the owners who field the best team week in and week out are the ones who win by the end of the season, and there’s something to be said for putting together a good team overall and making weekly tweaks that try to get the most out of the roster you have.  In a sentence:  Be aware of the adjustment process, but don’t let it become your sole focus.  In slightly different words:  Balance your yin and your yang.

A sliding scale will be used for players with low at-bats or innings pitched, with some minimal caps. As of 4-14-03, these were the only caps for batters:

  • For fewer than 50 AB, the BB% can’t be greater than 7%
  • For fewer than 10 AB, the HR% can’t be greater than 5%
  • For fewer than 50 AB and 2 HR, the HR% can’t be greater than 2%

For pitchers, no adjustment is made if a pitcher averages 1 IP for every 3 games his team has played. If the pitcher has fewer than 10 real innings, his batting average allowed  cannot go below .235 and his ERA cannot go below 3.50. If the pitcher has fewer  than 20 real innings, his batting average allowed cannot go below .225 and his ERA cannot go below 3.25. If the pitcher has fewer than 30 real innings, his batting average allowed cannot go below .215 and his ERA cannot go below 3.15. If the pitcher has fewer than 40 real innings, his batting average allowed cannot go below .190 and his ERA cannot go below 3.00. In the simulation, a pitcher must throw 5 fantasy innings before any performance adjustment kicks in.
There are also penalties for over-use.  No adjustment is made up to 125% of actual playing time. After that, performance drops until the player is at roughly the league average at 150% of actual playing time. Performance will slide down until 165% of actual playing time, where adjustments stop. If a player is already worse than the league average, his performance will slide down starting at 125% until he’s about 10% worse than he already is.  Thus, a player hitting .400 with 25 at-bats will be hitting at or below the league average at 75-100 at-bats in fantasy games.

If you promote minor leaguers, their statistics will be adjusted to try to reflect how they would perform in the Major Leagues. The formula is drawn from Bill James’ 1981 baseball abstract, and generally involves dropping the stats by 17% and adjusting for ballpark differences.

The Fielding

Good fielders will produce more double plays, hold more runners from advancing, make great plays, and blow fewer routine plays that are not scored errors (i.e., bad plays). Bad fielders will fail to make as many good plays, allow more routine outs to become hits (not scored as errors), hold runners on less, and of course commit more errors. Defensive ratings are based on the formulas in Total Baseball, which accounts for chances, errors, assists, and putouts. It also includes passed balls for catchers. The formulas are different for infielders, outfielders, and catchers.  Fielding ratings range from 900-999, with the higher number being better.  Ratings of 970 are average.  Your printouts will show your players’ “adjusted fielding rating,” which is chances plus great plays minus errors and bad plays divided by chances or: (C+GP-BP-E)/C

AFP represents the number of outs produced beyond what was normally expected of a major league player playing errorless ball.

Prior to the 2003 season, we had access to the Stats, Inc., fielding stats, and could update them every week.  Due to what we think of as a poor corporate decision, those stats are no longer available.  We now update them once a month (see below), and for the first month of the season use the ratings from the prior year (when available).  Players are eligible at the two positions that they have played the most games at.

If you play a player out of position, that is, play him at a position that is NOT one of the two positions he has played the most in the current season, his fielding rating will be adjusted according to the chart contained the “official rules” page.

Stats are downloaded in 4 categories: Zone ratings, range factors, fielding percentage, and assists per inning (or passed balls per inning for catchers).  Each player is given a percentile ranking in each category and the stats are weighted according to the following scheme:

  • OF: 40% RF, 40% ZR, 10% FP, 10% assists/inning
  • 1B/3B: 20% RF, 20% ZR, 60% FP, 0% assists/inning
  • 2B/SS: 30% RF, 30% ZR, 20% FP, 0% assists/inning
  • C: 0% RF, 5% ZR, 30% FP, 40% PB/inning, 15% team ERA while catching, 10% stolen bases/inning

Final fielding ratings are put on a scale of 939-999, and fielding ratings appear on weekly printouts.

Note: Catchers also have caught stealing percentages, so a good catcher will throw out more base runners.  Also, the chances a base runner will steal are based on the number of stolen bases per inning a catcher has, so if base runners don’t run on a catcher in real life, they won’t run on him in fantasy.

The Pitchers

Pitchers have different longevity, which is translated into a pitch count. When they tire, the computer will go to your bullpen. It will go to the closer in save situations, to setup guys to hold a lead or a slight deficit, and to middle relievers in early inning and blowout situations.

The bullpen, too, will get tired if it is overworked. If relievers pitch more than three innings in three games, they become fatigued, and the computer will try to avoid using fatigued pitchers, but will use them if nobody else is available.

The fifth guy in the rotation will get skipped when there are off days in the schedule. If there is any day off during the four days prior to the game the fifth starter is scheduled to pitch, he will get skipped.

Bench Depth

In late inning situations, the computer will pinch hit for weak batters. When the computer looks for a pinch hitter, it will go through your bench in order and select the player best suited for the situation: highest on-base percentage if leading off, highest average if there are runners on and you are only down a few runs, and highest slugging percentage if you need a homer (nobody on, two outs, down by one). Late inning defensive substitutions will also be made (see the Newsletter supplements, below, for specific calculations).

The Base running

Good base stealers will run more often than their slower counterparts, and will be constrained by the base running situation. Bad hitters will sacrifice runners over more often. Hit and run plays will be put on in certain situations, and pitchers may either pitch around or intentionally walk good hitters in key situations (you might want to have your lineup protect good hitters). Fast base runners will get doubled-up less often and advance more frequently than the Greg Luzinkski’s of baseball, for example.

Also included in the program are ejections, wild pitches, passed balls, and hit batsmen. Players can even get arrested if they kill a seagull in Canada. In short, everything that can happen in a real Major League game can happen in ASFBL.

Hints, Ground rules, and Errors to Avoid

Side and platoon advantages do matter — lefties hit better against right-handed pitching, and visa versa. The platoon advantage is standardized, and is 17 points worth of the batting average. For example, a right-handed batter will have 17 points subtracted from his chances against a right-handed pitcher, while a lefty would have 17 points added to his chances against the same pitcher. In the National League, the pitcher must always bat ninth.

Your minor league printout includes all players on the AAA team starting the Opening Day of Major League Baseball. It is possible that new minor leaguers will get added after Opening Day. If you want to promote a minor leaguer who is not on the printout, or want a minor leaguer added to the printout, check with us to make sure that we can get the numbers on him before you call him in with your lineup.

If you intend to play around with the starting rotation, keep in mind that the computer is playing a continuous schedule, and you might end up starting a guy on less than three days’ rest. For example, Boskie is your number 4 starter, and Danny Jackson is number 1. If you make Boskie your number 1 starter, and the number 5 starter was the last guy to pitch, you will be starting Boskie on 1 day rest. The computer will account for that and he will very likely get hammered. Moving a starter one spot up or down usually won’t matter much at all, however. A starter does not have to go five innings to get a win.

Sources that Might Help During the Season

All stats are drawn from the website.

How to Send in a Lineup

Lineups are now accepted exclusively on-line; go to the Transactions Login Page.

If you can’t get through or are having trouble with the web page, you can email in your lineup. If you do, follow this formula:

  1. First, list any trades you have made or waiver claims you would like to make.
  2. Second, list anybody you are sending up or down (i.e., removing from your ASFBL active roster), and whether they will be protected with the free waiver (if you have one).
  3. Third, list the entire lineup/roster. Include any settings for your players.
  4. Finally, include any info you would like in the newsletter.

Pitching Changes: How the Computer Changes Pitchers

First, the computer determines if the current pitcher needs to be yanked. The pitcher’s longevity is calculated by taking the average length of appearance (in innings), multiplying that by the average number of pitches per inning (which is 14.4). Then, it adds one inning’s worth of pitching, figuring that the average length of appearance estimates a pitcher’s longevity on the low side, because there were probably situations where the pitcher could have gone longer but was yanked because he was getting hammered, or for situational reasons (he was a lefty with a lot of righties coming up, for example). The minimum longevity is 40 pitches for relievers, 72 for starters.

During the game, the computer keeps track of the number of pitches used and once a pitcher is beyond his longevity, the computer will look to the bullpen (there are some exceptions, like when there’s a no-hitter going and the lead is safe). It first defines a situation; any game not yet in the 7th inning or with one team ahead by 4 or more runs is a “middle/long” situation, and situation in the 7th or later that qualifies for a save is a “closer” situation, and everything else is “setup.”  Next, the system first determines who is available. A pitcher is unavailable if: (a) he has already pitched, (b) he is injured, or (c) he has pitched 3 or more innings in the past 3 days. It will only use an unavailable pitcher due to fatigue (situation “c”) if it absolutely has to.

The computer will select the first pitcher who’s role matches the situation and is available based on the “best available” or “least used” setting.  So, if it’s a setup situation and there are 2 setup guys available, the computer will pick the guy with the lower ERA if you checked “best available” and the guy who has the fewest percentage of real innings pitched if you checked “least used.”  If nobody in the situation is available, it will then move to the next closest situation (no setup available = move to closer(s), no closer available=move to setup, nobody else available move to middle/long).  The computer won’t make the pitching change unless the new pitcher has a better chance of recording an out than the pitcher currently in the game.


I know that it can be frustrating when you put together a solid team and then their fantasy stats don’t match what’s going on in real life.  Here are some things to keep in mind when suffering through low points:

STATISTICS ARE VOLATILE, ESPECIALLY WITH LOW AT BATS AND INNNINGS PITCHED.  A difference of 50 batting average points is, after all, only a difference of 3 hits in 50 at bats.  ERAs are notoriously unstable, even in the majors and even with a lot of innings pitched.  An ERA off by half a run is still accurate to within 1 earned run every 18 innings.  Usually, over the course of a season and a lot of at-bats things tend to work themselves out.  A range of plus or minus 40 batting average points or half an earned run is normal, and not half bad for the simulation.

LOTS OF THINGS GO INTO AN EARNED RUN AVERAGE.  The quality of the fielding, the speed of the base runners, the number of guys on base when the home runs go over the fence, are all things that influence an ERA that the pitcher (and the simulation) can’t control.  Also, keep in mind that the lineups faced by your fantasy pitcher are NOT the same lineups faced by your pitcher in real life.  Obviously, because the pitcher has faced different competition his performance will be different.  It is possible, for example, that based on trades that happen in our league, a guy who never had to face Sosa and McGwire in real life might face them repeatedly in our league.  In this case, the simulation would be WORKING if your pitcher’s ERA rose.  Conversely, imagine that your pitcher faced Sosa in real life and gave up 3 HR on one bad start.  If you face the fantasy Cubs who traded Sosa your pitcher’s HR% will still be high, but since he won’t pitch to Sosa in YOUR games against the Cubs, he should do a little better than he did in real life.  What looks like statistical inaccuracy from one perspective might look like realism from another.

OUR LEAGUE TENDS TO BE MORE COMPETITIVE THAN THE MAJORS:  Keep in mind that you can drop your 3 worst players and replace them with minor leaguers who will, for the purposes of our simulation, probably have better stats.  Given roster flexibility, fantasy owners rarely have to field a pitcher with an ERA over 18 because we can look at the stats after the games have happened and sit a guy who would kill us.  In real life, those pitchers take the field and take their beatings and nobody knows how bad they are until after they’ve logged the innings, surrendered the runs, and pushed their ERA over 18.  Similarly, a hitter who is having a terrible time and hitting .073 after 100 at-bats in real life would simply be benched by a fantasy owner, while an actual manager has no choice but to keep trotting him out there.  Statistically, those 100 at-bats with no hits are removed from the fantasy pool, but remain in the actual stats.  Because fantasy owners can concentrate talent after the stats are known fantasy teams tend to be statistically better than actual teams.  The result is that if your team is not better than its real equivalent your record and stats are likely to suffer.

I’M CONSTANTLY RUNNING TESTS TO MAKE SURE THINGS STAY IN LINE:  As of this writing, the average fantasy batting average was within 20 points (2 hits in 100 at-bats) of the actual batting average.  The average ERA was within 3/10ths of a run (1 earned run every 27 innings).  Of course, there are some “outliers” and extreme cases that defy the odds (they usually appear on the league leader board), but I keep monitoring the league average to make sure that things are pretty solid overall.

THE GOOD AND THE BAD EVENS OUT:  If you have a player who is seriously under-performing, check your stats and see if you have some players playing above their heads too.  The ranges are all plus AND minus ranges, so you should have a couple guys a little over and a couple of guys a little under.

IF SOMETHING SEEMS BADLY OUT OF WHACK, LET ME KNOW.  I’d like to check out anything that really seems amiss.  All computer programming involves debugging, and it is difficult to generate code that is entirely error free.  Sometimes the bugs take a long time to find and kill, but if you notice a problem that seems persistent, I’m here to check into it.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s