What Actually Wins NBA Bets: A Tour of the Betting Insights Page

April 28, 2026 · Danny · NBA Betting

Most "betting tools" online are one of two things. Either a chart of last night's results dressed up to look like a model, or a paywall in front of someone else's spreadsheet. We wanted something different on Malter Analytics: an honest look at which kinds of NBA bets have actually paid off this season, broken down so you can see the cohort instead of just the headline.

That's what the NBA Betting Insights page is. You can find it by tapping NBA from the betting menu. This post is a quick tour of what it shows and how we've been using it.

Moneyline ROI by line range — current season
Line rangeBetsImplied win %Actual win %ROI
+300 or higher290≤25.0%19.7%+2.6%
+200 to +29927025.1–33.3%23.7%-21.2%
+150 to +19925133.4–40.0%35.9%-1.9%
+100 to +14938940.1–50.0%45.8%+0.9%
-110 to +9911850.0–52.4%50.8%-0.8%
-150 to -11127652.6–60.0%56.9%+1.4%
-200 to -15124460.2–66.7%59.4%-6.7%
-300 to -20128066.8–75.0%73.9%+4.5%
-301 or lower336≥75.0%80.1%-2.7%

That table is the headline view, pulled live from the page. The implied-win column is what the price says before vig: a +300 underdog needs to win at least 25% of the time to break even, a -300 favorite at least 75%. Comparing implied to actual is where the cohort story lives.

Take the +300 or higher bucket. Books are pricing those teams as ≤25% to win. They've actually won 19.7% — slightly worse than the floor of the implied range. Yet the bucket is at +2.6% ROI, because the average price inside it is well above +300 (a couple of +500s pay for a lot of -110 losses). That's a useful thing to internalize: a sub-implied win rate can still be profitable if you're getting a long enough price.

Other rows tell less flattering versions of the same story. +200 to +299 is the worst place to put money this season at -21% ROI, and the actual win rate (23.7%) is well below the implied band (25–33%). Mid-favorites at -200 to -151 are also underperforming their implied band. Knowing which bucket you're in, and how it has tracked vs. its own implied price, matters more than "favorites vs. underdogs."

The basic question

Pick any moneyline range. Say -300 to -201, the heaviest favorites that still get a regular look. Across the season, how often have those bets won, and what's the ROI been? Same question for spreads in any 3.5-point bucket. Same question split by home/away, by favorite/underdog, by back-to-back nights.

The page just runs that calculation across every game in the chosen window and shows the answer in a sortable table. No model picks, no "lock of the day." Just the cohort and what it's done.

Where to look first

Five sections, in the order we usually read them:

  1. Strategic Insights. Two short lists at the top: profitable strategies and strategies to avoid. These are the cohorts in the current window with the strongest signed ROI, surfaced automatically. A quick way to see "anything wild going on this week" without scrolling.
  2. Home / Away. Two rows. Big-picture: do home or away teams have an edge this season, on the moneyline and against the spread? You'd think this resolves to nothing interesting. Some windows it does. Other windows the gap is real.
  3. Underdog vs Favorite. Same idea, two rows. Public bias usually shows up here.
  4. Underdog / Favorite split by Home/Away. Four cells: home favs, road favs, home dogs, road dogs. The cell we check most. Road favorites tend to behave differently from home favorites in ways that matter.
  5. Performance by Line. A bigger table that buckets by either moneyline or spread. Toggle between the two. Each row tells you the games, win percent, and ROI for that bucket.

The same view exists on the spread side, and it tells a slightly different story:

Spread ROI by spread range — current season
Spread rangeBetsWin %ROI
+10 or higher22951.1%-1.6%
+7 to +9.523653.0%+2.0%
+4 to +6.530048.3%-7.4%
+1 to +3.536246.7%-10.3%
-3 to +0.545651.5%-1.2%
-6 to -3.532651.2%-1.9%
-9 to -6.526549.1%-5.6%
-10 or lower28047.1%-9.3%

The +1 to +3.5 spread bucket (small underdogs) has been the worst place to put money this season, sitting around -10% ROI. Bigger road dogs (+7 or higher) have been net-positive. That's the kind of pattern you can't see from "underdogs cover X% of the time" because it depends entirely on the size of the dog you're taking.

By team

Beyond line buckets, the page breaks down ROI per team. This is where the cohort view starts to feel less like a backtest and more like a scouting report.

Most profitable teams to bet on the moneyline
TeamBetsWin %ML ROI
Charlotte Hornets8253.7%+53.3%
San Antonio Spurs8374.7%+24.1%
Phoenix Suns8254.9%+16.1%
Portland Trail Blazers8251.2%+13.5%
Detroit Pistons8273.2%+11.5%
Most unprofitable teams to bet on the moneyline
TeamBetsWin %ML ROI
Memphis Grizzlies7930.4%-40.2%
Dallas Mavericks8031.3%-30.6%
Indiana Pacers8223.2%-26.6%
Brooklyn Nets8224.4%-23.5%
Washington Wizards8220.7%-18.1%

The Hornets being the most profitable moneyline team this season is a great example of how a table of past results doesn't predict the future. They were a heavy underdog most nights, won often enough to clear vig, and the ROI compounded. That doesn't mean blindly back them tomorrow. It means: when they're priced as a road dog of +200 and you're on the fence, the cohort lean is positive.

Filters that matter

Default view is the full current season. The filters at the top let you slice it:

  • Timeframe. All-time, this season, last 30 days, last 10 games, last 5, last 7. Shorter windows are noisier, but they're also where the live signal lives.
  • Side. Home, away, or both. Useful if you want to see how a category behaves on the road specifically.
  • Spread size. Heavy favorite through heavy underdog. Lets you focus on the size of bet you actually take.
  • Back-to-back. Filter to games where one team is on the second of two nights, or exclude those entirely. The B2B effect is one of the more durable patterns in NBA betting and worth isolating.
  • Team. Pick any of the 30 teams to scope everything to that team's games.

Filters compose, so you can ask things like "how have road favorites in -150 to -200 territory done in the last 30 days when they're not on a back-to-back" and get the answer in one table.

What it isn't

Two things this page is deliberately not doing.

It's not predicting tonight's games. The page is a backwards-looking summary, not a model output. If you want predictions, the player props page is where the model probabilities live.

It's not telling you a bucket with 12 bets and a 70% win rate is a goldmine. The minimum-sample thresholds are tight enough that very small cohorts don't show up as "profitable strategies," but you can still slice the filters down to a tiny sample if you want to. Read the games column. Twelve games is twelve games no matter how good the ROI looks.

How we actually use it

A few habits that have stuck:

  • Before placing a moneyline bet on a heavy favorite, we check the corresponding bucket in Performance by Line. If the bucket is at -8% ROI for the season, that's a reason to think harder about the price.
  • For spread bets, the favorite/underdog by home/away grid is the first stop. Road dogs and home favorites behave very differently and that's the cell that tells you which way the wind is blowing.
  • For situational bets, the back-to-back filter is gold. The cohort of road dogs on the second night of a B2B is a real thing that's been profitable in some seasons and brutal in others. Worth checking before betting either side.

Why this exists

Most public betting content is either pure recap (here's what happened) or pure prediction (here's what'll happen). The middle ground is where we think the actual edge lives: here's the cohort you're betting into, and here's how it has actually performed. Whether you take the bet or not is up to you. The page is just there to make sure you're betting with the cohort, not against it.

Open the NBA Betting Insights page →