{"primer":"BallStreet is a per-league fantasy-football market. Before reasoning about it, note what is NOT true here, because it differs from ordinary markets:\n\n- Trading does not move prices. No order book, no per-trade impact, one posted price for everyone.\n- Speed is not an edge. Buys batch into a fill run and member fill order ROTATES each cycle, so an order placed seconds after news fills alongside one placed hours later.\n- There are no limit or conditional orders. Every order is a market order at the posted price.\n- Price responds to actual-versus-PROJECTED points, not raw production. Beating a small projection beats meeting a large one.\n- A price can move on a day the player did not play, when his rest-of-season outlook changes.\n- Shares are finite: league size x 100 per player. When they are held, buying is refused.\n- Players who are IR/OUT/inactive cannot be bought or newly shorted. Players whose game has started cannot be bought or shorted. Selling out is always allowed.\n\nUse get_rules and get_league_rules for specifics; league settings differ, and demand pricing is off in many leagues.","constants":{"starting_balance":"100,000","shares_per_player":100,"base_price_max":100,"base_price_floor":2,"base_price_n":200,"performance_decay":0.6,"performance_alpha":0.4,"performance_coefficient":0.16,"performance_min":0.2,"performance_max":2.0,"performance_formula":"sticky","projection_weight":0.16,"projection_ema_alpha":0.5,"projection_min":0.6,"projection_max":1.6,"demand_k":0.04,"demand_max_premium":1.3,"demand_max_premium_pct":30,"short_margin_initial_pct":150,"short_margin_maintenance_pct":125,"short_daily_interest_pct":0.1,"draft_rounds":10,"draft_round_cap":"10,000","draft_window_minutes":30},"sections":[{"id":"overview","title":"Overview","topics":["basics","getting started","goal","portfolio value"],"body":"BallStreet is fantasy football built on stock-market mechanics. Instead of setting a weekly lineup, you build a portfolio of NFL player shares. A player's share price moves on how he performs against his projection, the way a stock reacts to an earnings report.\n\nEvery member starts each league with $100,000 in BallStreet Bucks. There is no real money anywhere in the game. You win by finishing the season with the most valuable portfolio, where\n\n    portfolio value = cash + market value of every holding\n\nLeagues are private and invite-only. Your league is scored independently: prices are per-league, so the same player can be worth different amounts in two different leagues.","blocks":[{"type":"paragraph","text":"BallStreet is fantasy football built on stock-market mechanics. Instead of setting a weekly lineup, you build a portfolio of NFL player shares. A player's share price moves on how he performs against his projection, the way a stock reacts to an earnings report."},{"type":"paragraph","text":"Every member starts each league with $100,000 in BallStreet Bucks. There is no real money anywhere in the game. You win by finishing the season with the most valuable portfolio, where"},{"type":"formula","text":"portfolio value = cash + market value of every holding"},{"type":"paragraph","text":"Leagues are private and invite-only. Your league is scored independently: prices are per-league, so the same player can be worth different amounts in two different leagues."}]},{"id":"pricing","title":"How prices are calculated","topics":["price","pricing","multiplier","formula","why did the price change"],"body":"A player's posted price is his base price multiplied by up to three multipliers:\n\n    price = base price x performance x projection x demand\n\n- Base price never changes during a season. It comes from pre-season consensus rankings.\n- The performance multiplier moves when he plays, on actual points versus projected points.\n- The projection multiplier moves between games, when the outlook for the rest of his season changes.\n- The demand multiplier reflects how much of his float your league owns. It is optional and off in many leagues.\n\nTwo things surprise people, and both are deliberate.\n\nFirst, trading does not move prices. There is no order book and no per-trade price impact. Everyone sees and pays the same posted price, and buying a player heavily does not make him cost more for the next buyer.\n\nSecond, a price can move on a day your player did not take the field. That is the projection multiplier: if his rest-of-season outlook is cut or raised, his price follows, because a price is what he is worth from here, not what he did last Sunday.","blocks":[{"type":"paragraph","text":"A player's posted price is his base price multiplied by up to three multipliers:"},{"type":"formula","text":"price = base price x performance x projection x demand"},{"type":"bullets","items":["Base price never changes during a season. It comes from pre-season consensus rankings.","The performance multiplier moves when he plays, on actual points versus projected points.","The projection multiplier moves between games, when the outlook for the rest of his season changes.","The demand multiplier reflects how much of his float your league owns. It is optional and off in many leagues."]},{"type":"paragraph","text":"Two things surprise people, and both are deliberate."},{"type":"paragraph","text":"First, trading does not move prices. There is no order book and no per-trade price impact. Everyone sees and pays the same posted price, and buying a player heavily does not make him cost more for the next buyer."},{"type":"paragraph","text":"Second, a price can move on a day your player did not take the field. That is the projection multiplier: if his rest-of-season outlook is cut or raised, his price follows, because a price is what he is worth from here, not what he did last Sunday."}]},{"id":"base-price","title":"Base price","topics":["base price","adp","starting price","rankings"],"body":"Base price is set once, before your league's market opens, from consensus expert rankings. The top-ranked player starts near $100 and the curve falls away logarithmically to a $2 floor by about rank 200. Unranked players sit at the floor.\n\nBase price does not move for the rest of the season. Every price change you see is a multiplier moving.\n\nA league that holds its IPO after the season has started prices off the current outlook rather than pre-season rankings, so a player who has taken over a starting job is priced like a starter instead of like the backup he was ranked as in August.","blocks":[{"type":"paragraph","text":"Base price is set once, before your league's market opens, from consensus expert rankings. The top-ranked player starts near $100 and the curve falls away logarithmically to a $2 floor by about rank 200. Unranked players sit at the floor."},{"type":"paragraph","text":"Base price does not move for the rest of the season. Every price change you see is a multiplier moving."},{"type":"paragraph","text":"A league that holds its IPO after the season has started prices off the current outlook rather than pre-season rankings, so a player who has taken over a starting job is priced like a starter instead of like the backup he was ranked as in August."}]},{"id":"performance-multiplier","title":"Performance multiplier","topics":["performance","settlement","actual vs projected","beat projection"],"body":"This is the core of the game. Every player starts at 1.00 and moves only when he plays:\n\n    new = old + old x 0.16 x (actual - projected) / projected\n\nWhat matters is the gap between actual and projected points, not raw production. A backup projected for 4 points who scores 12 moves far more than a star projected for 20 who scores 24. Beating a low number is worth more than meeting a high one, which is why reading a depth chart pays here.\n\nMeeting the projection exactly changes nothing. A bye changes nothing. A missed game changes nothing -- no stats means no signal, in either direction.\n\nThe multiplier is sticky: it persists between weeks and carries strong past performance forward, fading only if the player keeps underperforming. It is clamped between 0.2 and 2.0.","blocks":[{"type":"paragraph","text":"This is the core of the game. Every player starts at 1.00 and moves only when he plays:"},{"type":"formula","text":"new = old + old x 0.16 x (actual - projected) / projected"},{"type":"paragraph","text":"What matters is the gap between actual and projected points, not raw production. A backup projected for 4 points who scores 12 moves far more than a star projected for 20 who scores 24. Beating a low number is worth more than meeting a high one, which is why reading a depth chart pays here."},{"type":"paragraph","text":"Meeting the projection exactly changes nothing. A bye changes nothing. A missed game changes nothing — no stats means no signal, in either direction."},{"type":"paragraph","text":"The multiplier is sticky: it persists between weeks and carries strong past performance forward, fading only if the player keeps underperforming. It is clamped between 0.2 and 2.0."}]},{"id":"projection-multiplier","title":"Projection multiplier","topics":["projection","outlook","price moved without playing","injury news","rest of season","why did my price change"],"body":"Between games, a player's price tracks his rest-of-season projection per remaining game. When his outlook changes -- a starter goes down ahead of him, he is downgraded, his role shrinks -- the price moves with it.\n\nThis is the answer to 'my guy didn't play, why did his price change'. It is also what stops a downgrade from being free money: without it, bad news would lower the bar he has to clear at settlement without lowering what you pay for him, so buying every downgrade would win.\n\nThree properties keep it honest:\n\n- The projection level is smoothed before it prices anything, because raw weekly projections bounce around and a price that chases a bouncing number can be farmed by buying every dip.\n- The response is damped, weight 0.16, and clamped between 0.6 and 1.6. Prices move with the outlook, not one-for-one.\n- It freezes once his game kicks off, so nothing shifts under you mid-game.\n\nA player who is ruled OUT does not move at all. A one-week absence is a missed payment, not a re-rating -- he is coming back, and cratering him would make every injury a predictable round trip for everyone else.","blocks":[{"type":"paragraph","text":"Between games, a player's price tracks his rest-of-season projection per remaining game. When his outlook changes — a starter goes down ahead of him, he is downgraded, his role shrinks — the price moves with it."},{"type":"paragraph","text":"This is the answer to 'my guy didn't play, why did his price change'. It is also what stops a downgrade from being free money: without it, bad news would lower the bar he has to clear at settlement without lowering what you pay for him, so buying every downgrade would win."},{"type":"paragraph","text":"Three properties keep it honest:"},{"type":"bullets","items":["The projection level is smoothed before it prices anything, because raw weekly projections bounce around and a price that chases a bouncing number can be farmed by buying every dip.","The response is damped, weight 0.16, and clamped between 0.6 and 1.6. Prices move with the outlook, not one-for-one.","It freezes once his game kicks off, so nothing shifts under you mid-game."]},{"type":"paragraph","text":"A player who is ruled OUT does not move at all. A one-week absence is a missed payment, not a re-rating — he is coming back, and cratering him would make every injury a predictable round trip for everyone else."}]},{"id":"demand-multiplier","title":"Demand multiplier","topics":["demand","deferred demand","scarcity premium","pricing mode"],"body":"Optional, and set per league. In a demand-enabled league, a player who is widely owned carries a premium of up to 30% on top of his performance and projection multipliers. In a performance-only league this multiplier is absent entirely.\n\nDemand is recalculated once a week at the weekly close, and once per round during the IPO. It never moves on an individual trade. That means buying does not immediately raise the price -- the effect is deferred to the next recalculation, which is why the mode is called deferred demand.\n\nWhen you sell, or when your portfolio is valued, your own shares are excluded from the demand calculation. You are paid what the player is worth to everyone else, not what he is worth partly because you bought him. For a normal position the difference is pennies; it only bites someone trying to corner a player's float to inflate their own holdings.","blocks":[{"type":"paragraph","text":"Optional, and set per league. In a demand-enabled league, a player who is widely owned carries a premium of up to 30% on top of his performance and projection multipliers. In a performance-only league this multiplier is absent entirely."},{"type":"paragraph","text":"Demand is recalculated once a week at the weekly close, and once per round during the IPO. It never moves on an individual trade. That means buying does not immediately raise the price — the effect is deferred to the next recalculation, which is why the mode is called deferred demand."},{"type":"paragraph","text":"When you sell, or when your portfolio is valued, your own shares are excluded from the demand calculation. You are paid what the player is worth to everyone else, not what he is worth partly because you bought him. For a normal position the difference is pennies; it only bites someone trying to corner a player's float to inflate their own holdings."}]},{"id":"ipo","title":"The IPO (your draft)","topics":["ipo","draft","rounds","bidding","auction"],"body":"Your league's season opens with an IPO instead of a snake draft. It runs 10 rounds by default, each with a spending cap ($10,000 by default) and a time window (30 minutes by default). Commissioners can change all three.\n\nIn each round you submit the players and share counts you want. Everyone's orders for that round fill together when the round closes -- it is not a turn order and there is no advantage to submitting first within a round.\n\nIf more shares are wanted than exist, the float is allocated and some orders fill partially or not at all; the money from an unfilled order rolls into your next round. Demand is recalculated between rounds, so a player everyone piled into gets more expensive in the round that follows.\n\nOne deliberate exception to uniform pricing applies here: on an IPO buy, shares you already hold are excluded from the demand you pay. Otherwise a member accumulating a player across rounds would be bidding against himself and paying a premium he created. It is always a discount, never a surcharge.","blocks":[{"type":"paragraph","text":"Your league's season opens with an IPO instead of a snake draft. It runs 10 rounds by default, each with a spending cap ($10,000 by default) and a time window (30 minutes by default). Commissioners can change all three."},{"type":"paragraph","text":"In each round you submit the players and share counts you want. Everyone's orders for that round fill together when the round closes — it is not a turn order and there is no advantage to submitting first within a round."},{"type":"paragraph","text":"If more shares are wanted than exist, the float is allocated and some orders fill partially or not at all; the money from an unfilled order rolls into your next round. Demand is recalculated between rounds, so a player everyone piled into gets more expensive in the round that follows."},{"type":"paragraph","text":"One deliberate exception to uniform pricing applies here: on an IPO buy, shares you already hold are excluded from the demand you pay. Otherwise a member accumulating a player across rounds would be bidding against himself and paying a premium he created. It is always a discount, never a surcharge."}]},{"id":"autodraft","title":"Autodraft","topics":["autodraft","missed the draft","absent"],"body":"If you cannot attend the IPO, autodraft submits sensible orders for you each round so you are not left holding only cash. It skips players who cannot play. Showing up to the draft lobby turns it off automatically -- the assumption is that if you are present, you want to pick for yourself -- unless you deliberately switched it on.","blocks":[{"type":"paragraph","text":"If you cannot attend the IPO, autodraft submits sensible orders for you each round so you are not left holding only cash. It skips players who cannot play. Showing up to the draft lobby turns it off automatically — the assumption is that if you are present, you want to pick for yourself — unless you deliberately switched it on."}]},{"id":"preseason","title":"Between the IPO and Week 1","topics":["preseason","before week 1","trading early"],"body":"If your league drafts before the season starts, the market stays open the whole way to Week 1 and you can keep trading.\n\nBy default, NFL preseason games do not move the performance multiplier: most people expect prices to wait for real football. Commissioners can opt in to settling preseason games if they want them to count.","blocks":[{"type":"paragraph","text":"If your league drafts before the season starts, the market stays open the whole way to Week 1 and you can keep trading."},{"type":"paragraph","text":"By default, NFL preseason games do not move the performance multiplier: most people expect prices to wait for real football. Commissioners can opt in to settling preseason games if they want them to count."}]},{"id":"trading","title":"Buying and selling","topics":["buy","sell","orders","queue","fill","pending"],"body":"Buy orders are queued, not filled on the spot. They execute together in a fill run after that day's games are final. Sells and covers execute immediately while the market is open.\n\nPlacing a buy earlier in the window gains you nothing. There is no price improvement for being fast, and the queue is not first-come-first-served: the order in which members are filled rotates every cycle, so whoever was last this time is first next time. This is on purpose -- your league should be won by knowing football, not by refreshing the page fastest.\n\nWhat you do control is the order of your own pending orders. Cash is the binding constraint on a fill night, so if you have queued more than you can afford, the ones at the front of your queue are the ones that fill. You can reorder them until the run.\n\nAll orders are market orders at the posted price. There are no limit orders, and there is nothing to bid, because everyone transacts at the same price.","blocks":[{"type":"paragraph","text":"Buy orders are queued, not filled on the spot. They execute together in a fill run after that day's games are final. Sells and covers execute immediately while the market is open."},{"type":"paragraph","text":"Placing a buy earlier in the window gains you nothing. There is no price improvement for being fast, and the queue is not first-come-first-served: the order in which members are filled rotates every cycle, so whoever was last this time is first next time. This is on purpose — your league should be won by knowing football, not by refreshing the page fastest."},{"type":"paragraph","text":"What you do control is the order of your own pending orders. Cash is the binding constraint on a fill night, so if you have queued more than you can afford, the ones at the front of your queue are the ones that fill. You can reorder them until the run."},{"type":"paragraph","text":"All orders are market orders at the posted price. There are no limit orders, and there is nothing to bid, because everyone transacts at the same price."}]},{"id":"float","title":"Limited shares","topics":["float","sold out","shares outstanding","cannot buy","scarcity"],"body":"Each player has a finite number of shares in your league: league size x 100. A 12-person league has 1,200 shares of every player, and no more can be created.\n\nWhen a player's float is fully held, further buys are refused until someone sells. This is the game's real scarcity -- not everyone can own the breakout everybody wants, so portfolios genuinely differ. Selling returns shares to the float.\n\nShort positions are synthetic and do not consume float.","blocks":[{"type":"paragraph","text":"Each player has a finite number of shares in your league: league size x 100. A 12-person league has 1,200 shares of every player, and no more can be created."},{"type":"paragraph","text":"When a player's float is fully held, further buys are refused until someone sells. This is the game's real scarcity — not everyone can own the breakout everybody wants, so portfolios genuinely differ. Selling returns shares to the float."},{"type":"paragraph","text":"Short positions are synthetic and do not consume float."}]},{"id":"halts","title":"When you cannot trade a player","topics":["cannot buy","why can't i buy","halted","locked","injured","out","already played"],"body":"Three situations block a trade, and each blocks only one direction.\n\nInjury halt. A player listed IR, OUT, or inactive cannot be bought, and a new short cannot be opened against him. He has no game to settle and his projection deliberately does not move, so his price cannot respond to football -- buying him would be a bet on the pricing around him, not on the player. You can always sell or cover a player you already hold.\n\nAlready played. Once a player's game has kicked off this week, he is locked: you cannot buy or short him, because the result is known or in progress. Sells and covers are accepted but queue until after the weekly close.\n\nFloat exhausted. Every share is held by someone. Nothing to buy until someone sells.\n\nIf none of these apply and a buy is still refused, check your buying power: cash already committed to pending buys is not available to spend twice.","blocks":[{"type":"paragraph","text":"Three situations block a trade, and each blocks only one direction."},{"type":"paragraph","text":"Injury halt. A player listed IR, OUT, or inactive cannot be bought, and a new short cannot be opened against him. He has no game to settle and his projection deliberately does not move, so his price cannot respond to football — buying him would be a bet on the pricing around him, not on the player. You can always sell or cover a player you already hold."},{"type":"paragraph","text":"Already played. Once a player's game has kicked off this week, he is locked: you cannot buy or short him, because the result is known or in progress. Sells and covers are accepted but queue until after the weekly close."},{"type":"paragraph","text":"Float exhausted. Every share is held by someone. Nothing to buy until someone sells."},{"type":"paragraph","text":"If none of these apply and a buy is still refused, check your buying power: cash already committed to pending buys is not available to spend twice."}]},{"id":"shorting","title":"Short selling","topics":["short","shorting","margin","cover","interest","bet against"],"body":"You can bet against a player by shorting him: you profit if his price falls and lose if it rises.\n\nOpening a short requires 150% of the position's value held in cash as margin. If your margin ratio falls below 125% the position can be liquidated for you. Shorts also accrue 0.1% interest per day, charged daily.\n\nThe trap worth understanding: an injured player who does not play produces no stats, so there is no underperformance and no multiplier drop. Your short earns nothing while the daily interest keeps accruing. Shorting a player because he is hurt is usually the wrong trade -- you want a player who plays and disappoints.","blocks":[{"type":"paragraph","text":"You can bet against a player by shorting him: you profit if his price falls and lose if it rises."},{"type":"paragraph","text":"Opening a short requires 150% of the position's value held in cash as margin. If your margin ratio falls below 125% the position can be liquidated for you. Shorts also accrue 0.1% interest per day, charged daily."},{"type":"paragraph","text":"The trap worth understanding: an injured player who does not play produces no stats, so there is no underperformance and no multiplier drop. Your short earns nothing while the daily interest keeps accruing. Shorting a player because he is hurt is usually the wrong trade — you want a player who plays and disappoints."}]},{"id":"market-hours","title":"Market hours","topics":["market hours","market closed","halted","game time","when can i trade"],"body":"The market is halted while NFL games are in progress. You can still queue orders during a halt; they resolve when the market reopens.\n\nThis exists so you can watch football instead of trading it. Nobody should have to sit on their phone during the 1pm window to avoid being picked off, and because prices only move at settlement anyway, nobody gains by trying.","blocks":[{"type":"paragraph","text":"The market is halted while NFL games are in progress. You can still queue orders during a halt; they resolve when the market reopens."},{"type":"paragraph","text":"This exists so you can watch football instead of trading it. Nobody should have to sit on their phone during the 1pm window to avoid being picked off, and because prices only move at settlement anyway, nobody gains by trying."}]},{"id":"settlement","title":"Settlement","topics":["settlement","when do prices update","4am","repricing"],"body":"Settlement is when performance actually moves prices. It runs early each morning, after that day's games go final: a Thursday-night player reprices Friday morning, Sunday's players Monday morning, Monday night's on Tuesday.\n\nAt settlement each player who played is compared with his projection, his performance multiplier is updated, and his price is rebuilt. Queued orders fill in the same run. The weekly close, after Monday night, additionally recalculates demand in leagues that use it.\n\nBetween settlements the posted price is stable. Projection updates are the one thing that can move a price outside settlement.","blocks":[{"type":"paragraph","text":"Settlement is when performance actually moves prices. It runs early each morning, after that day's games go final: a Thursday-night player reprices Friday morning, Sunday's players Monday morning, Monday night's on Tuesday."},{"type":"paragraph","text":"At settlement each player who played is compared with his projection, his performance multiplier is updated, and his price is rebuilt. Queued orders fill in the same run. The weekly close, after Monday night, additionally recalculates demand in leagues that use it."},{"type":"paragraph","text":"Between settlements the posted price is stable. Projection updates are the one thing that can move a price outside settlement."}]},{"id":"winning","title":"Winning your league","topics":["winning","standings","leaderboard","scoring"],"body":"Highest portfolio value at the end of the season wins: cash plus the market value of everything you hold, with short positions marked against you.\n\nBecause prices are per-league and the float is limited, your league is a closed contest -- you are competing for the same finite shares as everyone else in it. Dues and prizes, if your league has them, are arranged by your commissioner outside the app. BallStreet processes no payments.","blocks":[{"type":"paragraph","text":"Highest portfolio value at the end of the season wins: cash plus the market value of everything you hold, with short positions marked against you."},{"type":"paragraph","text":"Because prices are per-league and the float is limited, your league is a closed contest — you are competing for the same finite shares as everyone else in it. Dues and prizes, if your league has them, are arranged by your commissioner outside the app. BallStreet processes no payments."}]},{"id":"ai-agents","title":"Asking an AI about your league","topics":["ai","agent","mcp","api","bot","claude","chatgpt"],"body":"BallStreet has an MCP server, which lets an AI assistant read your league directly and answer questions with your actual numbers: why a price moved, what you can afford, who is available, what settlement is about to do.\n\nCreate a key at https://ballstreetleague.com/dashboard/api-keys/ (signed in), then point your assistant at the ballstreet-mcp server. A read-only key can look but not trade, and that is the right choice if you only want explanations. If you give it permission to trade, your leaguemates will see a BOT tag on your team -- automation is allowed here, hiding it is not.\n\nThe assistant reads these same rules from the server, so its answers stay current with the game rather than with whatever it was trained on.\n\nThere is a setup page written for the assistant rather than for you at https://ballstreetleague.com/agents/ -- hand it that URL and your key and it can work out the rest, including what it is and is not allowed to do.","blocks":[{"type":"paragraph","text":"BallStreet has an MCP server, which lets an AI assistant read your league directly and answer questions with your actual numbers: why a price moved, what you can afford, who is available, what settlement is about to do."},{"type":"paragraph","text":"Create a key at https://ballstreetleague.com/dashboard/api-keys/ (signed in), then point your assistant at the ballstreet-mcp server. A read-only key can look but not trade, and that is the right choice if you only want explanations. If you give it permission to trade, your leaguemates will see a BOT tag on your team — automation is allowed here, hiding it is not."},{"type":"paragraph","text":"The assistant reads these same rules from the server, so its answers stay current with the game rather than with whatever it was trained on."},{"type":"paragraph","text":"There is a setup page written for the assistant rather than for you at https://ballstreetleague.com/agents/ — hand it that URL and your key and it can work out the rest, including what it is and is not allowed to do."}]}],"glossary":[{"term":"base price","definition":"A player's starting price, set from pre-season rankings. Never changes during the season."},{"term":"posted price","definition":"The price everyone sees and transacts at. Base price times the active multipliers."},{"term":"performance multiplier","definition":"Tracks actual points against projected points. The main driver of price."},{"term":"projection multiplier","definition":"Tracks changes in a player's rest-of-season outlook between games."},{"term":"demand multiplier","definition":"Optional per-league premium reflecting how much of a player's float the league owns."},{"term":"float","definition":"The total shares of a player that exist in your league: league size times 100."},{"term":"shares outstanding","definition":"How many of a player's shares are currently held by members."},{"term":"settlement","definition":"The daily process that updates multipliers and rebuilds prices after games go final."},{"term":"fill run","definition":"The batch that executes queued buy orders, in rotating member order."},{"term":"fill priority","definition":"Where one of your own pending orders sits in your personal queue."},{"term":"buying power","definition":"Cash minus everything already committed to pending buys. What you can actually spend."},{"term":"IPO","definition":"BallStreet's draft: multi-round, simultaneous, with a per-round spending cap."},{"term":"halted","definition":"The market is closed to execution because games are in progress. Orders still queue."},{"term":"locked","definition":"A player whose game has started this week. Cannot be bought or shorted."},{"term":"injury halt","definition":"A player listed IR, OUT, or inactive. Cannot be bought or newly shorted."},{"term":"short","definition":"A position that profits when a player's price falls. Margin-backed, accrues daily interest."},{"term":"cover","definition":"Closing a short position."},{"term":"BallStreet Bucks","definition":"The in-game currency. Not real money and not redeemable."}],"faq":[{"question":"Why did my player's price change when he didn't play?","answer":"His rest-of-season outlook changed. Between games, price tracks the projection for the remainder of his season, so a downgrade or an upgrade moves the price without a snap being taken. See the projection multiplier.","topics":["projection","price","didn't play"]},{"question":"Why did my player score a lot and barely move?","answer":"Price moves on the gap between actual and projected points, not on raw points. A star who was projected for 20 and scored 24 beat his number by a little. A backup projected for 4 who scored 12 tripled his.","topics":["performance","price"]},{"question":"Why can't I buy this player?","answer":"One of four reasons: he is listed IR/OUT/inactive, his game has already started this week, every share is currently held, or your buying power is lower than you think because cash is committed to pending buys.","topics":["cannot buy","halted","float"]},{"question":"When do prices update?","answer":"At settlement, early each morning after that day's games go final. Not on individual trades. Projection changes can also move a price between settlements.","topics":["settlement","prices"]},{"question":"Does buying a lot of a player push his price up?","answer":"Not immediately, and never for you. There is no per-trade price impact. In leagues using demand, heavy ownership raises the price at the next weekly recalculation -- and your own shares are excluded when your position is valued, so you cannot inflate your own holdings.","topics":["demand","price impact"]},{"question":"Is it better to place my order early?","answer":"No. Queued buys all fill in the same run at the same price, and the order in which members fill rotates each cycle. The only ordering you control is among your own pending orders, which matters when you have queued more than your cash covers.","topics":["orders","timing","queue"]},{"question":"My order is still pending. Did it fail?","answer":"Probably not. Buys queue by design and fill at the next run. A sell or cover of a player who has already played this week also waits, until after the weekly close. You can cancel a pending order any time before it fills.","topics":["orders","pending"]},{"question":"Is BallStreet free, and is real money involved?","answer":"Free to play, and no. Balances are BallStreet Bucks with no cash value and the app processes no payments. If your league collects dues, the commissioner handles that outside the app.","topics":["money","free","dues"]},{"question":"Can I use an AI assistant to manage or explain my team?","answer":"Yes. Create an API key at https://ballstreetleague.com/dashboard/api-keys/ and connect the ballstreet-mcp server. A read-only key lets an assistant explain your league without being able to trade. Keys that can trade mark your team with a visible BOT tag.","topics":["ai","mcp","bot","api"]}]}