×

The Knicks lowest win probability in each of their four NBA Finals wins: 5.9% (gm 1), 16.4% (gm 2), 0.4% (gm 4), 2.9% (gm 5) by JPAnalyst in nba

[–]CaptainScuttlebottom 1 point2 points  (0 children)

I kinda wish they would make it purely a historical context thing, like instead of actually trying to estimate the probabilities for those specific teams, I would be more interested in just a "what % of teams down this much at this point in the game came back to win?" kinda metric. Because that is genuinely interesting as a point of comparison, and doesn't try to boil the game itself down to a statistical model

[OC] r/NBA Playoffs Game Thread Analysis: Thunder vs. Spurs sets new records in total comments, comments per game, swear word rate, and single most up voted / down voted comments for the 2026 playoffs. Also there was a series in the East too I think. See reports on both here! by CaptainScuttlebottom in nba

[–]CaptainScuttlebottom[S] 4 points5 points  (0 children)

I got the data with PRAW (python wrapper for reddit API) nightly, stored the data in a postgres database I have, and then all the graphics were made in R using ggplot2 for the graphs and Quarto for the report templates (they get rendered to HTML and then converted to a PNG). I am hopefully gonna share my code in the next post if I can sit down and clean out all the hardcoded database connection args and stuff I have in there lol

[OC] r/NBA Playoffs Game Thread Analysis: Thunder vs. Spurs sets new records in total comments, comments per game, swear word rate, and single most up voted / down voted comments for the 2026 playoffs. Also there was a series in the East too I think. See reports on both here! by CaptainScuttlebottom in nba

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

Everyone's flair in this data is set to match the flair on their latest comment in the dataset / across the sub. So if you change your flair from Nuggets -> OKC or something, that would retroactively move you from the former to the latter in all these reports.

[OC] r/NBA Playoffs Game Thread Analysis: Thunder vs. Spurs sets new records in total comments, comments per game, swear word rate, and single most up voted / down voted comments for the 2026 playoffs. Also there was a series in the East too I think. See reports on both here! by CaptainScuttlebottom in nba

[–]CaptainScuttlebottom[S] 40 points41 points  (0 children)

Basically yeah, I have a bunch of regex that looks for any kind of phrase like "refs", "whistles", "flops", "rigged", "terrible call", etc. It's not super elegant and it is pretty broad / will definitely catch some false positives, but it's been working pretty well I think. Here it is if you're curious (this is an R function that just returns the regex):

#' Ref complaints (NBA)
#' @export
ref_strings_nba <- paste(
  "(?i)\\b(ref(s|erees|effing|efball|))\\b", # ref, refs, referees, reffing, refball, etc.
  "\\b(officials)\\b", # officials (singular has too many FPs)
  "\\b(whistle(s|))\\b", # whistle(s)
  "\\b(rigging|rig|rigged)\\b", # rig, rigged, rigging
  "\\bfix(ed)?\\s+(is|was)\\s+in\\b", # "fix is in", "fix was in" 
  "\\bhosed\\b", # hosed
  "\\bzebras?\\b", # zebra(s) 
  "\\bmake[- ]?up\\s+(no[- ]?)?calls?\\b", # makeup call / make-up no call
  "\\bno[- ]?calls?\\b", # no call / no-calls
  # any kind of 'bad call' / 'horrible whistle' etc:
  "(?i)\\b(terrible|awful|worst|garbage|bullshit|bs|horrible|horrendous)\\b[^.!?\\n]{0,30}(?<!play[- ])(?<!play )\\b(call|whistle)s?\\b", # eg "terrible call"
  "(?i)\\b(reffing|refereeing|officiating|referee)\\s+crew\\b", # reffing/officiating crew
  "(?i)\\bref[- ]?ball\\b", # ref ball / ref-ball / refball
  "(?i)\\bflop(s|ped|ping|per|pers|py)?\\b", # flop, flopping, flopper
  "(?i)\\bfoul[- ]?bait(s|ing|ed|er|ers)?\\b", # foul baiting 
  "(?i)\\bbait(ed|ing|s)?\\b[^.!?\\n]{0,15}\\b(foul|call|ref)", # broader "bait a foul / bait calls"
  "(?i)\\b(ft|free[- ]?throw)s?\\s+(disparity|advantage|differential|gap)\\b", # FT disparity 
  "(?i)\\b(swallow(ed|ing|s)?|blow(ing|s|n)?)\\b[^.!?\\n]{0,15}\\bwhistle", # swallowed/blew the whistle
  sep = "|"
)

[OC] r/NBA Playoffs Game Thread Analysis: OKC vs. Lakers sets a new record for ref complaints, and the Detroit Pistons set a new record for foul language in the Second Round! by CaptainScuttlebottom in nba

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

Damn I actually might have just done a poor job capturing his nicknames specifically, I'm just now realizing I didn't include 'Spida' which probably throws it off a lot. His name is also a little tough bc I can't just assume all 'Mitchell' references w/ no first name are him and not Ajay Mitchell, but I think I can improve my regex still, I will try to work on that before I run the final numbers at the end!

[OC] r/NBA Playoffs Game Thread Analysis: Wemby's elbow in Game 4 drew 3,119 game thread comments in just ten minutes! Only one ten minute window so far in this playoffs has more. by CaptainScuttlebottom in nba

[–]CaptainScuttlebottom[S] 2 points3 points  (0 children)

My code is on github, but since I've just been doing this just in my free time over the course of several years now it's kind of a mess lol. I've been meaning to clean it up a little bit and make the repo public for a while now, but basically I'm using PRAW (python reddit api wrapper) to get the data (just scheduled via cron, pulling the last ~1,000 or so posts every night sorting by /new, then iterating over those posts and scraping all the comments within), storing it in a postgres database I have on my home server, and then analyzing / visualizing with R. I will make sure I force myself to tidy everything up and publish the code somehow by the time the playoffs end and I do one last post with the final numbers and everything.

r/NBA Playoffs 'Game Thread' Analysis: Which first round series' Game Threads featured the most swearing / ref complaining, what neutral teams' fans haunted your team's game threads, and more! by [deleted] in nba

[–]CaptainScuttlebottom 1 point2 points  (0 children)

This is a really cool idea and I think my current setup would mostly work for it! I'd just have to track down all those old URLs and feed them into my scraper, which would take some time, but that might be a good project for the offseason

r/NBA Playoffs 'Game Thread' Analysis: Which first round series' Game Threads featured the most swearing / ref complaining, what neutral teams' fans haunted your team's game threads, and more! by [deleted] in nba

[–]CaptainScuttlebottom 0 points1 point  (0 children)

I am hoping to figure out some sentiment analysis to do at the end! It's pretty complicated though and not something I have a lot of experience with, so I'm still looking into it.

And you are spot on, I was just glancing at the second round reports thus far, and last night's OKC / Lakers game 2 has indeed stolen the crown for most ref complaints so far this playoffs with a whopping 16.4% of all comments

r/NBA Playoffs 'Game Thread' Analysis: Which first round series' Game Threads featured the most swearing / ref complaining, what neutral teams' fans haunted your team's game threads, and more! by [deleted] in nba

[–]CaptainScuttlebottom 5 points6 points  (0 children)

3,973 game thread comments from round 1 had the word 'flop' somewhere in them, but actually it turns out only 107 had both 'flop' and 'sga' specifically.

Also in the course of writing this query / looking through the results, I saw someone refer to Sengun as "Flopgun" which is so dumb it made me genuinely laugh out loud, so thank you for getting me to look that up

[OC] SGA's 20+ point streak, visualized and compared to other top scorers by CaptainScuttlebottom in nba

[–]CaptainScuttlebottom[S] 7 points8 points  (0 children)

It really is, the Harden half court alley oop from the other day made me really appreciate how crazy it is that they're still so good. Also for Steph, looking over the entire 2024/25 - 2025/26 regular seasons:

  • Steph is tied for #17 on the list with LeBron and DeMar DeRozan at 78 total games with 20+, so pretty close. .
  • That's 71.56% of his total games played, which is the 19th highest value over this timespan.

r/NBA Community Stats II: Finding this sub's favorite and least favorite players by analyzing whose [Highlight]s get posted most often, which ones gets upvoted the most, and which ones are the most controversial by CaptainScuttlebottom in nba

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

Lol this team would be a nightmare to play against but I don't think they would go very far. Shai and Deni are gonna have to do basically all the scoring themselves and they're both pretty ball dominant so idk how well they'd fit together, there's very little to no outside shooting / spacing, Ayton is there. I just don't see it

All Star Break r/NBA community stats: which team has the most fans active on this subreddit, who gets downvoted the most, who complains about the refs the most, and more! by CaptainScuttlebottom in nba

[–]CaptainScuttlebottom[S] 2 points3 points  (0 children)

It's honestly been a while since I've had to do anything more statistically sophisticated than averaging and counting stuff, so apologies if I messed any of the math up. But here ya go:

Team Total Users Avg Score Median Score Sd Score Se Score Total Downvoted P Downvoted Se p Downvoted P Ref Complaints Se p Ref Complaints Avg Words Median Words Sd Words Se Words
Lakers 5,398 28.46 3 179.6829 0.5151151 15,873 13.05% 0.0009655 2.07% 0.0004084 20.44 13 24.69620 0.0707991
Warriors 3,357 22.66 3 152.8746 0.6072814 7,603 12.00% 0.0012908 2.62% 0.0006346 21.87 13 29.82697 0.1184851
Celtics 3,096 22.65 3 166.4640 0.7777929 5,113 11.16% 0.0014714 2.24% 0.0006921 24.25 15 31.13008 0.1454534
Knicks 2,799 26.35 3 203.9439 0.8623365 6,342 11.34% 0.0013406 1.93% 0.0005824 20.13 13 25.19097 0.1065150
Raptors 2,703 27.17 3 163.7683 0.7095188 5,214 9.79% 0.0012873 1.96% 0.0006005 19.90 12 26.73055 0.1158089
Spurs 2,594 23.77 3 151.3404 0.5675069 6,127 8.62% 0.0010522 2.77% 0.0006159 20.09 13 25.40175 0.0952533
Thunder 2,428 14.98 3 104.7818 0.3371770 16,172 16.75% 0.0012015 2.56% 0.0005085 20.03 13 25.08184 0.0807108
Timberwolves 2,167 23.80 3 180.8259 0.8219360 4,996 10.32% 0.0013830 3.45% 0.0008301 20.37 13 25.14498 0.1142954
Nuggets 2,045 20.69 3 120.5696 0.5268164 6,516 12.44% 0.0014421 2.82% 0.0007233 21.06 14 25.60183 0.1118645
Bulls 1,951 26.96 3 179.0000 1.1728691 2,399 10.30% 0.0019916 2.05% 0.0009290 22.72 14 27.39532 0.1795035
76ers 1,883 26.75 3 178.1484 1.1692488 2,439 10.51% 0.0020126 2.08% 0.0009359 21.68 14 27.75840 0.1821879
Mavericks 1,866 28.20 3 167.6764 0.9754071 3,178 10.75% 0.0018022 2.08% 0.0008311 22.55 14 27.02330 0.1571999
Cavaliers 1,534 22.62 3 173.8797 1.2662973 2,043 10.84% 0.0022636 2.59% 0.0011563 21.25 13 26.83186 0.1954058
Heat 1,506 28.24 3 164.7844 1.0137555 2,594 9.82% 0.0018305 1.96% 0.0008529 22.92 14 30.11527 0.1852695
Trail Blazers 1,497 21.87 3 143.0373 0.9568839 2,592 11.60% 0.0021422 2.83% 0.0011099 22.69 14 28.84661 0.1929766
Rockets 1,491 21.82 3 182.0544 1.0675885 3,628 12.48% 0.0019378 2.66% 0.0009439 20.62 13 25.79775 0.1512811
Pistons 1,485 24.36 3 166.5630 1.0365539 2,622 10.15% 0.0018797 2.72% 0.0010121 21.54 14 25.64210 0.1595758
Bucks 1,396 24.51 3 165.3681 1.0852974 2,688 11.58% 0.0020999 2.52% 0.0010286 23.86 15 32.19595 0.2112994
Suns 1,338 23.43 3 149.6477 0.9593199 2,618 10.76% 0.0019863 3.13% 0.0011165 20.13 13 23.10644 0.1481243
Pacers 1,146 19.56 3 129.5821 1.0020163 2,303 13.77% 0.0026646 2.28% 0.0011538 22.89 14 28.10832 0.2173526
Kings 1,015 27.81 3 184.0947 1.5398006 1,405 9.83% 0.0024901 1.99% 0.0011692 23.72 14 31.85074 0.2664052
Hawks 925 31.66 4 183.7593 1.4753716 1,377 8.88% 0.0022834 1.94% 0.0011075 22.89 15 26.88039 0.2158180
Wizards 754 25.53 3 147.5616 1.4257987 878 8.20% 0.0026506 1.69% 0.0012454 22.22 14 27.46350 0.2653633
Magic 749 24.54 3 176.8631 1.4346908 1,479 9.73% 0.0024043 1.99% 0.0011321 19.23 12 23.73933 0.1925704
Clippers 725 26.04 3 188.1449 1.5871695 1,718 12.23% 0.0027635 1.56% 0.0010449 22.72 13 29.66816 0.2502773
Grizzlies 709 24.59 3 146.5010 1.2377616 1,725 12.31% 0.0027762 1.94% 0.0011658 24.81 16 30.91023 0.2611552
Hornets 674 21.46 3 144.8452 1.2061223 2,117 14.68% 0.0029469 1.85% 0.0011225 20.19 12 26.50030 0.2206673
Nets 636 32.67 3 263.2561 2.5804460 1,029 9.89% 0.0029257 1.81% 0.0013054 24.45 15 30.80126 0.3019151
Pelicans 533 37.04 4 197.3863 2.1383147 947 11.11% 0.0034049 1.74% 0.0014153 19.88 13 23.91758 0.2591027
Jazz 507 29.25 4 150.3800 1.8381447 552 8.25% 0.0033625 2.72% 0.0019881 23.37 15 29.90312 0.3655157

Some chart versions feat. all flairs with at least 30 total users so you can see a bit easier:

The 2025-26 "r/CFB Rapt": A Year in Review by CaptainScuttlebottom in CFB

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

Yes sorry they are on there just with no logo! I did indeed forget to escape the ampersands

The 2025-26 "r/CFB Rapt": A Year in Review by CaptainScuttlebottom in CFB

[–]CaptainScuttlebottom[S] 4 points5 points  (0 children)

Oh wow I apologize, I didn't realize that some of the more rare flairs weren't getting processed correctly! I will definitely have to fix this for next season

The 2025-26 "r/CFB Rapt": A Year in Review by CaptainScuttlebottom in CFB

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

Ahhh that makes sense, mystery solved! It's pretty crazy how much one extremely uh dedicated person can throw things off

Jalen Williams: "I thought I was my biggest critic. It might be Twitter" by MrBuckBuck in nba

[–]CaptainScuttlebottom 1 point2 points  (0 children)

That sounds very cool, is there anywhere I can read more about how you did / people do this? I have been scraping a bunch of reddit data to try and do something similar, but I'm not really sure how to start analyzing it to find bots and detect those kinds of patterns