SCORE OS Functional Specifications (Version 0.1, Pre-construction)
Created Date: 2007-11-08
Authors: Randy Burgess, Don VanDemark
Standards: At all times, the references of teams/players should be specified as "fantasy team" and "fantasy player" or "real team" and "real player"
Versions: This document should stay "alive" and change as project needs change. A pre-construction version, multiple mid-construction versions, and a final version should be saved for reference.
Disclaimer: This specification is not complete.
Audiences: At times, separate instructions will be made for programmers, testers, marketers, tech writers, legal, accounting, and content.
Content: This document will describe goals, non-goals, an overview, details, open issues, stakeholders (roles),and scenarios in non-technical form. Technical specifications will be provided in a separate document.
0.0 Contents
1.0 Overview
2.0 Goals
3.0 Non-Goals
4.0 Roles
5.0 Scenarios
6.0 Open Issues
1.0 Overview
2.0 Goals
SCORE OS should be able to meet every standard need a commissioner or team owner has. To best illustrate the needs, let's step through the lifecycle of a season.
League creation
The first step in any league is to create the league. The commissioner has many choices but the ones that will be elaborated on are league types and scoring rules. There are a few league types that can be chosen and they are broken into two categories: how the teams compete and how players are selected onto the teams. The teams may compete in a few ways:
- head-to-head - two teams square off each time period and the team with the most points gets the win
- rotisserie-style - best team for the time period gets first place points, second-best gets second-place points, etc.
- cumulative points - where points are calculated based on stats and the team with the most points at the end of the year wins.
Players may be selected onto the teams through:
- an online draft where owners can pick live when it is their turn or can set up preselected players to be drafted when their turn comes
- an autopick draft where owners rank all players ahead of time and then the system processes the draft in one shot
- an auction where players go to the highest bidder
- salary-cap style where each player is assigned a value and teams have a certain amount of currency to purchase players with
- manual team creation where the players are selected offline and then manually entered
The next important step is to determine the scoring rules. The system will provide a list of stats for the sport chosen and the commissioner may select preset scoring options or can assign point values to any stat the system offers. There will also be an option to allow the owner to input a stat the system doesn't offer and when the time comes for scoring, the stat will have to be entered manually.
Additional choices the commissioner must make when creating a league are:
- sport (allow more than one? For multi-sport leagues)
- number of teams
- eligible positions
- eligible teams
- scoring timespan
- whether a player can exist on multiple teams
- waiver and trade rules (to be discussed later)
- and most importantly, the league name
Once created, the commissioner will have the options of opening the league up publicly for anyone to join or to issues invitations and only those invited will be able to join. If it is opened to the public, the league will be advertised within the system (be it by a post of the main web page, a forum entry or some other method). If invitations are issued, those will be delivered by e-mail and the recipients will have a link they can either click on or paste in.
Roster Management
Once the league has been created and filled with owners, players need to be added to the rosters. This is normally done through a draft but there are many ways of having a draft.
- With an online draft, the owners select their player when it is their turn to pick or they can set up a list of players that the system will use to select from when their pick comes up (this is called predrafting). Important characteristics of a draft are the order of the draft, the time each owner has in order to make a pick, what happens when an owner misses their pick and whether picks and/or players can be traded during the draft.
- An autopick draft is similar to an online draft but all picks are predrafted before the draft starts.
- In an auction, players are nominated to go on the block, where any owner may bid on them. Teams are given a certain amount to bid on the players. Additional items to track are the time players are on the block, what the sniping rules are (when a player is bid on at the last minute, does the clock reset for a certain period of time to prevent sniping, or stealing a player at the last second) and whether teams may have more outstanding in bids than they have in their account.
- In a salary-cap system, players are assigned an amount before the draft and teams have a set amount to spend on players. There is usually no order to selecting players as multiple teams may own the same player.
- Manual team creation is where the commissioner can enter the players into the teams without a draft, usually because the draft has taken place away from the league site. The focus here should be on making it as easy as possible to get the rosters entered.
Items that must be tracked in all these systems are whether a team has drafted too many players and has taken too many of any one position.
Once rosters are set (or in some cases, during the draft), rosters may be altered through waiver processes or trades. Waiver processes comes in many different types:
- First-come, first-served: owners are able to make a waiver when the waiver window opens in order of requests made.
- Waiver list processed based on some order (standings, total points, last waiver made): owners make waiver requests and they are granted in the order arranged
- Bid system: owners bid an amount of currency on players and are awarded based on the highest bid
The waiver system should allow owners to see players sorted and/or filtered on position, team or fantasy points. It should also allow owners to search for players by name. When an owner makes a request, they should be able to designate a first choice and multiple backup choices. The system should allow multiple waiver periods (of different types, if necessary) within the same fantasy period. There may also be limits to how many waivers a team is allowed within a fantasy period or season.
There are a number of statuses a player may have depending on how the league is set up. Some of the more common ones are:
- Active: This player is available for starting in games.
- Inactive: This player is not available for starting in games. The length of time a player is inactive may vary depending on league rules from one fantasy period to an entire season or potentially longer.
- Untradable: This player may not be traded; again, this status may vary in its length depending on league rules.
- Unwaivable: This player may not be waived; again, this status may vary in its length depending on league rules.
Game Management
The key part of a fantasy period is setting the lineup that can be scored. Depending on the type of league, players can be set as "starters" (eligible to be scored) or "reserves" (not eligible to be scored). The frequency with which lineups can be changed usually depends on the sport and the system. Football is typically set once per week with a deadline set sometime before kickoff of that week's game. Baseball and basketball can either be set daily or weekly depending on the league.
Regardless of the frequency of changes, SCORE OS must keep owners from making changes after the player has already started playing his real game for the fantasy period.
3.0 Non-Goals
4.0 Roles
4.1 Viewers (Guests)
4.2 Owners (Fantasy Team Managers)
4.3 Commissioners (Fantasy League Managers)
4.4 Administrators (Fantasy System Managers)
4.5 Developers (System Construction, Maintenance, and Support)
4.6 Advertisers (Non-goal)
- Most likely an extension for a business/enterprise version
- User would have ability to CRUD advertisements and manage advertising system
4.7 Referrers (Non-goal)
- Most likely an extension for a business/enterprise version
- User would receive credit for promoting fantasty league creation and fantasy team ownership
4.8 Creators (Non-goal)
- Most likely an extension for a business/enterprise version
- User would have ability to CRUD real player and real team news, rankings, and predictions
5.0 Scenarios
6.0 Open Issues