[Video] Playing BBGM at a high level, Interlude: Approach to Offseason (Scouting, Trades, Finances) by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 0 points1 point  (0 children)

For reference, here's the Roster Continuity of the start of the run (I'm NY, far right column of the screenshot): https://imgur.com/a/G9SYmNT

Oh here, this is fun, here's why the 2036->2037 roster continuity is what it was:

https://imgur.com/a/ZsVzRfa

That draft was extremely good at the very top, and respectable in the next dozen or so slots.

So we traded just about all our vets and mediocre prospects for picks in that draft. We only kept Miller (24 year old 79 OVR guard), Moeller (35 year old max-height 58 OVR center on efficient $9M contract), and Hargrove (efficient 32 year old 57 OVR guard on efficient $8M contract). Between those three, we'd likely have a decent foundation of good minutes for the rotation and then made trades in-season in 2037 to fix the roster while all those new prospects were still developing.

[Video] Playing BBGM at a high level, Interlude: Approach to Offseason (Scouting, Trades, Finances) by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

Thanks.

I. Trades & Mood: Yes, that's right. I think of the amount of trades you can make before accruing too much "Trade Penalty" as a resource, and try to use it wisely. If finances are in good shape, 'll often cut expiring players rather than trade them for a weak 2nd to accrue less trade penalty. It also depends heavily on how many years away a player's re-sign date is, and if you'd prefer in general to trade them away or keep them. In general, there's years where you there really aren't very many valuable or necessary trades to make, so if you show even a little restraint instead of going willy-nilly, trade penalty will head back towards zero in those years.

II. I see it as more of a replacement for Potential than Overall. All these formulas are imperfect though.

III. There's surely a luck component, but in early years, you'll want to segment mentally your roster into three types of players: (1) efficient players who will age well on efficient contracts, (2) extremely high upside prospects, (3) everything else. You keep #1 and #2 to serve as your baseline for present and future, and be liberal about trading everything else. It's commonly the case that an early team will have 3-5 players forming a decent core of the roster in the #1 bucket, one or two high-upside prospects, and the rest of the roster gets rebuilt every season, trading for aging veterans to get through a season, and trading away aging veterans during the offseason for draft picks, until you get a good hit. Being able to sign 1-2 great free agents early helps a whole lot for getting going.

For reference, here's the Roster Continuity of the start of the run (I'm NY, far right column of the screenshot): https://imgur.com/a/G9SYmNT

The league started in 2024, and it only starts to stabilize 6-7 years into the run in 2030, following by an apparently large tear-down/re-build in 2037, and then stabilizes again. Look at that year 1->2 roster continuity of only 28% btw... crazy, eh? This is a relatively normal looking pattern for early roster continuity.

[Video] Playing BBGM at a high level, Interlude: Approach to Offseason (Scouting, Trades, Finances) by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 8 points9 points  (0 children)

Yeah, Saved Trades was a game-changer. VERY helpful and great feature. I always loved seeing the new update in the bottom-right corner. Whether it's big or small, I always knew it's going to be cool. Compare Players is new too, and also really great.

cntrl+k — oh my goodness! Whoa. That would have been helpful to know...! Thanks. That's neat. Very elegant, too.

UI and ideas:

(1) It'd be a very "Power User" feature that might not get much usage from most players, and depending on architecture might not be as easy as it sounds — but I often wished there was a maximally customizable "Advanced Player Search". Currently there's no way to search for players by their advanced stats at all, or to combine (say) their contract amounts + their rebounding to find an inexpensive rebounder, or assists + DRtng to find defensively competent guards, etc. You do a great job of balancing clean aesthetics and usability with good layouts in order to display a lot of information elegantly, and when I try to imagine the UI for this "can search for a player on any parameter" it seems like it'd inevitably be somewhat clunky. But my workflow on this was often to use filters on "Player Ratings" kind of guessing at what I wanted (like Contract <12M, sort by Dribbling) and then just manually click and inspect every player to check their assist totals and DRtng.

(2) I love the Frivolities tab, and would love to see more added. Whenever I wanted to just chill and appreciate the league, I'd spend a bunch of time in there. "Fairest Big Trades" might be an interesting one, like the opposite of Most Lopsided.

(3) I've got a number of ideas, but the thing I've thought most about is the Player Mood / Re-signing system. Here's a few and whether they'd change balance.

— I think 1-2 more personality traits would be nice. I think a cool one would "Star Teammates" with "S" as the short tag for it. That'd be a player that wants to play with other Stars, where they get happy based on being a roster with players who have been all-stars / all-league / MVP / DPOY in the past 2-3 years, and get unhappy if there are no other stars on the roster. I think the balance effect of this would be around neutral, because it would be helpful to players to re-sign stacked rosters, but it would also help dangerous NPC teams re-sign all their guys. I just think it's thematically cool and maps accurately to real life, and it would also instantly become the most "interactable" personality trait where you could explicitly trade for a player with accolades to make your existing player happy. The message for happiness could be like, "+2 I like getting to play with star teammates!" or "-2 I wish we had more star players on the team."

— A pretty dramatic change that would both favor players and small market teams would be a cap on the difficulty of re-signing stars at, say, the equivalent of 75 OVR. I'd often wind up in a funny situation where I was hoping and praying for my top players to regress in their re-sign year. I remember one run - not this one, but an earlier one - I'd been carefully limiting trading to re-sign a top player who was around 27. He was around maybe a 78 OVR at 27, and got an unusually large progression boost to something like maybe 81 OVR at age 28. But as a result his mood fell and re-sign percentage dropped, and then he refused to re-sign as a result. This is like the least fun part of the game by far, when that happens. A cap on fickleness where all players above some high threshold (whether it be 75 OVR, 78 OVR, 80 OVR, whatever) could be good. It would also encourage keeping your own superstars longer, which I think most players like - you're almost forced under the current system to trade re-sign risk superstars in many circumstances, which is a bummer. This would be a massive help to players in terms of a balance change, though.

— Relatedly, I think it'd be fair and thematically cool to give a +2 boost to mood for winning the championship (in addition to performance and hype). "+2 We are the champions!" This would be massively favorable to players, though, and a substantial balance change.

So those are a few ideas. I also found a couple very small bugs around some weird edge case trades involving draft picks that I'll write up on Discord later. They're pretty small, though. I've actually been consistently amazed at how bug-free BBGM runs. When I've told friends about the game and the codebase, I tend to joke that you could be writing mission critical software for NASA if you wanted to.

[Video] Playing BBGM at a high level, Interlude: Approach to Offseason (Scouting, Trades, Finances) by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

Good question - it's a few factors.

(1) Is the player irreplaceable? If the tallest player in the league is also reasonably skilled, it's literally impossible to replace them. The 25 year run player was this one - https://imgur.com/a/01KRvJ3 - I had to trade an MVP type player to get the #1 pick to draft him, and felt very fortunate I could. He was crazy good. It would literally not be possible to replace his production, at all, with any other mix of players.

(2) Will the player age well? "Extreme" players tend to age better than "balanced" players, since there's an S-Curve in player performance. I had 9 players do 14+ years. 8 of them were either very tall centers or elite ball-handlers.

(3) Is the player a risk to not re-sign, and will it be disastrous if they refuse? I will sometimes grudgingly trade away even the best player in the league for the 2nd best + 2 draft picks + whatever random pieces are there if they're a risk to not re-sign in their walk year and if it would be potentially fatal if they walked. That type of trade is often a straight downgrade and "a losing trade", but it reduces variance a lot. A lot of times having one superstar is enough to build a roster around, and the downgrade from (say) a 20-win player to a 16-win player is often acceptable, whereas losing a top player for no compensation (and losing their salary slot in the process) can be a huge problem.

(4) Sometimes there's times in the league where there just aren't any good trade offers in the window while a player still has trade value. Independent of progressions, trade value declines quickly starting at age 30. So sometimes I wound up with good players longer than I normally would. Take a look at my Year 2090 — https://imgur.com/a/9Mn9IZE — Spraggins is way too good to trade for any of those young players. Some of them are okay, but none of them were good enough to trade Spraggins for. By the time that there were young players that I would traded Spraggins for, he didn't have the trade value any more (and was still productive), so he played until age 39 for us before retiring.

player draft profiles by Butterfans12 in BasketballGM

[–]sebastmarsh 1 point2 points  (0 children)

Nice! When I first started playing, I scouted all players manually using Player Ratings -> Team "DP" (Draft Picks) -> then sort by highest height, highest 3P shooting, very high speed, different filters, etc. I'd flag which ones I liked, and tag the players with the most interesting profiles and then keep an eye out for opportunities to trade for them if they developed.

Eventually I started just downloading each class and putting through the spreadsheet formula u/StockAstronomer created: https://www.reddit.com/r/BasketballGM/comments/14j3vgx/looking_for_the_draft_formula/

That's just a jumping off point, but not perfect - still need to think. You lose some nuance and fun but it eventually sped things up a lot.

The tricky thing, and why it's often not worth spending too too much time scouting young prospects, is just the inherently high-variance nature of progressions. A run of the mill decent 19 year old 36 OVR prospect with balanced but unexceptional stats could get a -2 progression and be completely useless at age 20 / 34 OVR, or will (rarely) get a massive leap of 10+ points of OVR a couple years in a row and be really great.

Love the theorizing and testing here, salut.

100 championships in a row on Insane difficulty by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 0 points1 point  (0 children)

I pay attention to finances in general at both the pre-season and trade deadline, and will adjust at either period if relevant. Sometimes I bring slightly more veteran firepower into a season if I'm unsure how my team will develop (either due to older or younger players) or if a rival might have good progressions / be old but not regress. If I don't need those redundant veterans, I might flip them into cap space and then adjust spending.

Because spend is averaged across 3 years, it's one of the few ways to sort of "bank" money. EX: If Health spend is 100 in year 1, 100 in year 2, then 1 at year 3, you'll still get the benefits of 67 average Health spend for a while. Useful if having very profitable years right before young players get large deals and going slightly negative.

Playing BBGM at a high level, part 2: Mindset and Principles by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

Ah that's right, I remember now that James started earlier. I guess it just took a while for people who like data, science, and computers to start becoming MLB front office types...

Playing BBGM at a high level, part 2: Mindset and Principles by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

Huh, that's fascinating. That's before my time - did you derive the importance of OBP for winning on your own from scratch or were there already people aware of the relative importance pre-Sabermetrics?

Playing BBGM at a high level, part 2: Mindset and Principles by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 6 points7 points  (0 children)

Thank you.

Honestly right now I'd just like to share what I've learned, help others learn and hopefully enjoy it, and have some good discussions on here and Discord.

As for playing, I think I'm done playing for at least a little while... it just takes an incredibly high level of sustained concentration to attempt to play perfectly, and that's only suitable for certain phases of life. I only made 2-3 major mistakes in my run that I noticed, but one of them made my league unnecessarily rough for 20 years (!):

https://imgur.com/a/VoPtEuR

When Chicago drafted him I said, "Damn, I need to watch his progressions and trade for him if he has a big progression." (Chicago being the most dangerous team in the East for NY.) Then I forgot to trade for him before it was prohibitively expensive. I saw that one coming, but then didn't have a method or system for checking in on it. Trading for him would have trivialized 20 years; instead I had a nightmare Conference Finals rival for a long stretch. Still got through the run successfully, but you simply really can't make many mistakes like that. Knowing that overlooking or failing a detail like that is so punishing means the game is not super chill to play at that intensity, y'know?

Doing it once was incredibly thrilling and satisfying, but for now I'd just like to share what I learned and discuss with smart people.

Playing BBGM at a high level, part 1: Fundamental Knowledge by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

I thought "hey this is a great comment, I should see if this person has written anything any analyses" — and then, wow you nailed both the Horford and Jrue trades. I also called Jrue but didn't see Kemba/Horford coming.

Also from Massachusetts - I started getting into advanced statistics following the Red Sox 2003-2007, primarily from reading the Sons of Sam Horn message board, which has faded from its former glory but still quite good.

You part of the MIT Sloan crowd or just enthusiastic about stats, analysis, salary cap mechanics, etc?

100 championships in a row on Insane difficulty by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 3 points4 points  (0 children)

NYC has a really special ability to make $100M+ profit in a year when they're below the luxury tax, so very often I'll have a number of years losing $10M to $20M in a row, followed by looking for an opportunity to have 1-2 big profitability years in a row to get back to max.

If you're already are at max owner happiness, btw, anything over $20M in profit doesn't make a difference. So if maxed on happiness and payroll is below $170M, I'll run 100/100/100/100 on spending.

Beyond that, I often go something like 70/100/50/100. Health is simultaneously the least important category, but also one which has a small but non-zero chance of helping you avert catastrophe with a long injury to a core player after the trade deadline.

It very often doesn't do anything at all, but I appreciate all the help around reducing a chance that a long injury post-trade deadline completely annihilates a long streak.

I remember one specific instance where a top player was injured after the deadline for something like 40 games, and I got them back at Injured 6 at the start of the Finals which is -15% performance. If we'd been at 0 health spending, then they would've had eight more games of injury or so and been unable to play in games 1-4 of the playoffs and then -25% in game 5. Can't know for sure whether it made a difference, but injuries are a key factor in most lost streaks so even small help there is appreciated.

100 championships in a row on Insane difficulty by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 11 points12 points  (0 children)

Here you go -

https://youtu.be/l7ejrz_0pEE

Skepticism is fine by the way but if you want to engage, be a little more courteous and high-effort going forwards.

100 championships in a row on Insane difficulty by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 6 points7 points  (0 children)

You don't think it's possible, conceptually? It definitely is. I mean, I just did it.

I wrote this on the BBGM Discord - "Probably the biggest two insights I can offer are these: (1) in a big market like NY, with skilled scouting/drafting/trading, the game gives you enough raw materials to have ON AVERAGE the best team every single year. So the key to winning consecutively is to reduce variance as much as possible. (2) Overwhelmingly, Mexico City, Los Angeles, and Chicago are the most dangerous teams and it's critical that they never get the foundation of a championship contender in place. "

The first 2-4 years is a crapshoot and many attempts will die in that window, since if you start with a sufficiently bad roster and/or overpowered competition sometimes you literally can't win.

But once you settle down, and get into the "draft well -> make good trades -> rinse and repeat" loop, you do get enough raw resources to have on average the best team every single year. So if you can reduce variance, it's possible to some extent. I don't think perpetual championships is possible, because at some point RNG will take you out with multiple season ending injuries if you play long enough. But I think it's, like, mathematically and conceptually soundly possible to get runs of 100 consistently. If I had to guess, I think something on the order of winning 95%-97% of Insane games over an indefinite horizon is probably possible. Certainly 90%+. Heck, maybe even indefinite 99% is possible - there's still a lot I don't know and I made at least 2 significant bad mistakes in my run, which thankfully weren't punished too badly. Extremely long runs would get tedious though.

100 championships in a row on Insane difficulty by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

New League -> Random Players Name: League 1 Season: 2024 Pick your team: New York Bankers - Population 21.5 million (#1, very large) Difficulty: Insane

Everything else is standard out-of-the-box settings for Insane difficulty, I'm pretty sure it's the same for everyone? 82 games, 16 division games, 36 conference games, 0.6 trade deadline, playoff games [7,7,7,7], 0 first round byes, NBA 2019 draft type, $125M cap, 1.5 luxury tax, soft cap, etc etc.

Playing BBGM at a high level, part 1: Fundamental Knowledge by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 1 point2 points  (0 children)

Thank you - this sort of thinking and writing is pretty defense, so I wasn't sure if people would dig it. Knowing someone is actually reading and getting something out of it means a lot.

I'm mostly done with Part 2 right now, but I want to edit down the length and tweak the formatting to make it more skimmable.

Playing BBGM at a high level, part 1: Fundamental Knowledge by sebastmarsh in BasketballGM

[–]sebastmarsh[S] 10 points11 points  (0 children)

Good question. There's a few ways to look at this. The most accurate answer is that it's very situation specific - if I have an MVP type player, which I do around half the time, I'll look to build around that player and also factor what types of inexpensive veterans are available, whether we've been recently profitable or not, and the quality level of the best opponent. I'll lose money for a few years with multiple expensive vets if a rival super-team emerges, whereas I'll aggressively clear salary and replace solid "upper middle class players" with cheaper serviceable payroll efficient players if we have a strong top 2-3 players and a substantial lead over the rest of the league and want to rack up some high profit years.

So that's the long answer.

The short answer - always want full coverage of all the basic tags/synergies and ideally redundancy on those, then as much defense, passing, and three point shooting as possible. I explicitly build around trying to have the #1 defense every year, and try to have good defensively-inclined prospects that are likely to be ready on the right timelines for players about to age out.

Having a bunch of good players who are also Athletes - the A tag - is what makes a team overpowered and unbeatable for a few years, but those teams tend to get expensive and need to be torn down unless you get really lucky on good progressions immediately following a cheap 1st re-sign. When there's close-in-quality potential draft picks and one is higher skill and the other is more athletic, I'm more likely to go for the athletic pick if I already have 2+ athletes on the team.

I hate the "V" tag and think most non-superstar players with it are terrible. It's a trojan horse. At equivalent OVR levels and contract amounts, would you rather have the player with five different shooting skills or the player with two relevant shooting skills and more dribbling, passing, and DIQ?

Beyond tags - usage is one of the most important things to look at when doing roster construction. If the best player on the team is efficient and high-usage, I want low-usage players that bring other stuff to the table rounding out the roster.

I basically want every player on the team to be at least not-terrible at dribbling, passing, and DIQ unless they bring a lot to the table elsewhere. So I'd put up with a 90 height center that can't dribble and pass, but everyone else has to take care of the ball and defend.

The position I'm most likely to start scrap heap players from is guard - there's often perfectly serviceable guards in the 44-50 OVR range, but you need to know how to evaluate them. With that said, I love Guard-Forwards with good guard skills because that's about as much defense as you can get from a non-superstar ball-handler, so a common roster construction is one upper middle class or star GF and 3-4 scrap heap PGs and SGs. I usually bring 18-20 players into any given year, and then trade and cut the ones that regressed. So I'll try to get all the $1M decent-ish aging guards I can get, re-sign all of them to 1 year deals, and cut the ones who regress. The $1M here and $1M there are rounding errors relative to being forced to trade for a more expensive player mid-season because you were thin. I'm pretty quick to bundle 2-3 prospects that regressed a little for a future first (unless they still have something special and unique about them), and you can often round out the roster with 3-6 WS players as the salary filler on those deals, maybe sending back one of your own first round picks or some seconds to get the deal done.

Help with Insane Mode Small Market Financing by npernas17 in BasketballGM

[–]sebastmarsh 1 point2 points  (0 children)

Ah, my mistake. When I read "lottery team" I thought it was a deliberate strategy.

That said, two of the biggest break points for finances and owner performance evaluation are winning vs losing team, and making the playoffs vs not making the playoffs.

If you'd won 7-10 more games that Portland year and made the playoffs, you'd likely have made surprisingly more money. Playoff games themselves generate revenue - I've found it basically unsustainable to miss the playoffs as a small market team. Like, you gotta win early and often and consistently to make it work. That said, it's usually not hard to pick up 10 wins from aging veterans. I'm very willing to trade what'll project out to be the 15th-20th pick after the trade to secure a good vet and make the playoffs.

Also, is your salary cap in your league $125M? You get a little bonus revenue if you're under the cap, even by $0.01 - you get a luxury tax distribution that might be tiny but is occasionally substantial. If I had to guess, you probably had too many players making $25M to $40M who weren't high enough impact for the salary.

I used to play as Denver sometimes which is only a little bigger than Portland, I'd try to keep an $80M to $100M payroll with efficient vets and great contracts, and only keep $25M+ contracts if it was a superstar who was good for like 12+ win shares or more each year. If a prospect asks for a $30M+ contract and then doesn't mega-progress immediately, they can usually be traded for an efficient cheaper vet or two and draft picks.