Edge Labs EDGE LABS Market intelligence
CFB NFL
← This week's CFB board
CFB · Week 3 · Fri, Sep 18 · 10:30 PM ET · Autzen Stadium · FINAL Portland State 0, Oregon 84

Portland State at Oregon. Our picks: Portland State +57.5 (medium). Under 68 (medium).

ATS pick
Portland State +57.5
medium LOSS
locked Thu 5:23pm ET
locked +57.5 · closed +58.5
Portland State 0, Oregon 84
Total pick
Under 68
medium LOSS
locked 68 · closed 71.5
panel 3-0
How to read this page

The picks come first on this page. The market's number, our number and the gap between them sit under them as MODEL CONTEXT: that is the input our analyst panel argued from, not a call of its own. A tier is never a win probability or a hit rate. A pick is high when all three analysts take its side at a captured number and at least one of them ranks it among their strongest sides of the run or grades it a bet. Nothing tops up the tier: a week can carry many highs or none, and each write-up says why its pick earned the label. A spread of 40 or more points is never above low.

Panel reasoning

On the spread

Portland State at Oregon, Oregon -57.5. The market has barely moved, with DraftKings holding -57.5 and FanDuel -56.5 since capture on 2026-09-17. Our model carries no rated number for Portland State, an unrated FCS side, so there is no calibrated edge to lean on here, only judgment on an extreme number. The news favors the points: Oregon lists several players out or questionable, including a lineman out for the season and two receivers unavailable, after a 31-39 loss at Oklahoma State dropped the team fifteen spots in the poll, and the short week before the Big Ten opener gives the staff reason to manage snaps once the outcome is decided. The case against taking the points is the raw talent gap: Portland State returns only one defensive starter and just allowed 627 yards to North Dakota, and Oregon's 2023 meeting with the Vikings ended 81-7. All three panels weighed the injuries, extreme spread size and expected backup snaps as the bigger factor. Take Portland State +57.5 (DraftKings).

On the total

Under 68. The market total climbed from the mid-60s earlier in the week to 68 on DraftKings and 68.5 on FanDuel, pricing in a possible shootout. Our totals model projects 61.25, a gap that sits below the threshold where the model is trusted to lean on its own, so this is mostly game-script judgment: Oregon's offense has scored only 34 and 31 points, several pass-catching pieces are unavailable, and a Big Ten opener next week gives the staff reason to pull starters once the margin is decided, capping the second half. Weather is clear and calm, a non-factor. The counter-case is Portland State's defense, which just allowed 627 yards. Take the under at 68.5 (FanDuel) for the better number.

The panel · three seats

SeatSpreadTotal
Panel A Portland State +57.5 Under 68.5
Panel B Portland State +57.5 Under 68
Panel C Portland State +57.5 Under 68.5

Each seat works the same evidence pack on its own and names a side. The pick at the top of the page is what survives the disagreement (vote: spread 3-0 · total 3-0).

Panel A Portland State +57.5 · Under 68.5 Read the case

Spread. Edge Labs cannot make a spread because Portland State is unrated, but my matchup estimate is Oregon -52 to -54, leaving 3.5 to 5.5 points at +57.5. The Vikings’ defense is the obvious danger: it returned one starter and just surrendered 627 yards to North Dakota. Still, this price already accounts for that mismatch and Oregon’s 81-7 win in 2023. Portland State now averages 260.3 passing yards and has held the ball for at least 30 minutes in every game; one or two scoring drives make a 58-point cover considerably harder. Oregon, meanwhile, has scored only 34 and 31 points, ranks 16th in Big Ten rushing, and carries several offensive availability concerns into a short week. The Ducks should prioritize correcting their offense and protecting starters before USC, creating late-game backdoor potential. Oregon’s angry-bounce-back narrative is real, but laying nearly nine touchdowns requires sustained scoring from reserves. I prefer Portland State at the best verified number.

Total. I make the total approximately 65, higher than Edge Labs’ 61.25 but still below 68.5. The over case is serious: Portland State’s past two games produced 73 and 70 points, Oregon’s defense allows 414 yards per game, the Vikings just conceded 627 yards, and benign weather removes resistance. The market has recognized that, driving FanDuel from 63.5 to 68.5 and DraftKings from 66.5 to 67.5. At the new price, however, Oregon likely needs roughly 59 points even if Portland State reaches double figures. Oregon has not exceeded 34 this season, Johnson should remain unavailable, and an early blowout would bring backups and a slower second half before USC. Covers’ 71% user consensus on the over also indicates the obvious shootout case is no longer cheaply priced.

Where our model looks wrong

The spread model appropriately produces no number against an unrated FCS opponent. Oregon’s 13.255 in-season rating nevertheless looks too depressed by two final margins relative to its roster strength, while the preseason 26.166 probably overstates a team whose offensive line and rushing attack have underperformed. Neither rating can represent Portland State’s new staff, 67 newcomers or one-returning-starter defense.

Panel B Portland State +57.5 · Under 68 Read the case

Spread. Our model has no number here (Portland State is unrated FCS), so the market's ~57.5 is the only anchor, and our engine has no proven ATS edge to challenge it. The case for Oregon laying it: a 1-1 #21 team, humiliated at Oklahoma State, playing a get-right home game with a huge talent gap against an 0-3 FCS side that has allowed 43.7 ppg and was blown out by FCS North Dakota (47-23) and San Diego State (53-20). But 57.5 is a number a favorite covers only by keeping its foot down for 60 minutes, and the same tune-up framing that says 'expel frustration' also says Lanning empties the bench well before the fourth once it is 45-10, exactly the spot where a game before USC (9/26) invites early substitutions. Portland State has scored 20-24 in every game this year, so points are likely even against a real defense. Backups plus a dog that keeps scoring is how these gaudy spreads go under the number; I take the points, but this is barely a lean.

Total. Our totals model reads 61.25 versus a ~68 market, a 6.7-point under lean, and the game context supports the direction even though the gap sits below the model's 12.86 self-error threshold. Oregon's offense will score in bunches, but Portland State's has managed 22.3 ppg against far weaker defenses and should struggle to reach the mid-teens against a Power-conference front; hold the Vikings to ~10-14 and Oregon needs the low-to-mid 50s alone to push 68. A calm, clear Eugene night (69F, ~4-5 mph wind, 0% precip) removes any pace argument for the over, and once this is a rout Oregon's starters sit, which suppresses the second-half scoring rate that overs need. Both the model and the game script point the same way.

Where our model looks wrong

The model produces no number at all because the FCS side is unrated, so it offers zero signal on a 57.5-point spread. Home field is a flat 2.5 with no FCS-opponent adjustment, and nothing in the rating sees Oregon's likely early substitution pattern, which is the single biggest driver of whether this number is covered.

Panel C Portland State +57.5 · Under 68.5 Read the case

Spread. Our model carries no number here since Portland State is unrated (FCS), so this is a pure judgment call on an extreme -57.5 line. Oregon enters banged up: LG Trent Ferguson is out for the season (knee, SI 9/17), TE Jamari Johnson is out multiple weeks, WR Jalen Lott is a couple weeks from returning post hand surgery, WR Dillon Gresham and DL Tony Cumberland are out indefinitely, LB Brayden Platt is out extended, and CB Carl Williams IV is questionable off a head-contact injury (all SI, 9/17). That is eight players out or questionable heading into a game the staff has every incentive to manage cautiously with Big Ten play next, after an ugly 31-39 road loss at Oklahoma State dropped Oregon 15 spots in the AP poll. Extreme mismatch spreads (55+) against depleted-but-still-loaded rosters are historically closer to a coin flip than the market implies, because backups take over once the outcome is decided and scoring slows. Portland State's offense is dreadful, but I don't need them to win the game to cover 57.5 points.

Total. Our totals model sits well below the market here (61.25 projected vs a 68 market consensus), and the mechanism supports the gap: Oregon is missing TE Jamari Johnson, WR Jalen Lott, and WR Dillon Gresham, thinning the passing-game weapons that drive explosive-play scoring (SI 9/17). Portland State's offense is one of the worst in the country (22.3 ppg, 0-3), capping their side of the total regardless of Oregon's defense. With a 56.5-to-57.5-point spread, this is a prototypical running-clock/backup-substitution game: Oregon's staff has no incentive to keep starters in for four quarters two weeks before Big Ten play resumes, and once the margin balloons the second half tends to be running clock and vanilla offense on both sides. Weather is a non-factor (clear, 69F, 4.5 mph wind). I'll take the under at the higher number available (FanDuel 68.5) for better under value.

Where our model looks wrong

The model has no rating at all for Portland State (unrated FCS side), so it produces no calibrated home number for this game and cannot weigh Oregon's own injury attrition (eight players out or questionable) against an FCS opponent. Its flat 2.5-point home field and calibration stretch for big favorites are explicitly flagged as least reliable in exactly this spot, a huge, one-sided FCS mismatch, so there is no model signal to lean on either way here.

Model context

The numbers the panel argued from. Our models price a game, the panel makes the call, and the picks above are the call. Nothing in this block is a pick.

Locked line
Portland State +57.5 · Oregon -57.5
the spread we locked at, it does not move
Our model number
unrated
the calibrated EL CFB rating number, home field included
Spread gap
both numbers are needed for a gap
Market total
71.5
consensus of 5 books at the model run, Sep 19, 12:38 PM ET
Our total
61.5
EL CFB Totals v1
Total gap
-10.0
the distance between our model total and the market total. Context for the panel, not a call of its own.

Context, not a call. The spread number is our rating difference plus home field. The totals number is a registered candidate that loses to the closing total: across 2,264 held out games it missed the combined score by 12.862 points on average and the closing total missed by 12.635, ahead of us in all 3 of those seasons, so it never posts to the board and never enters the record on its own.

The write-up

The case

Portland State at Oregon, Oregon -57.5. The market has barely moved, with DraftKings holding -57.5 and FanDuel -56.5 since capture on 2026-09-17. Our model carries no rated number for Portland State, an unrated FCS side, so there is no calibrated edge to lean on here, only judgment on an extreme number. The news favors the points: Oregon lists several players out or questionable, including a lineman out for the season and two receivers unavailable, after a 31-39 loss at Oklahoma State dropped the team fifteen spots in the poll, and the short week before the Big Ten opener gives the staff reason to manage snaps once the outcome is decided. The case against taking the points is the raw talent gap: Portland State returns only one defensive starter and just allowed 627 yards to North Dakota, and Oregon's 2023 meeting with the Vikings ended 81-7. All three panels weighed the injuries, extreme spread size and expected backup snaps as the bigger factor. Take Portland State +57.5 (DraftKings).

Confidence: medium

Three independent analyst panels (A, B and C) worked the same evidence pack and the week's news independently, each returned a side, and each then ranked its five strongest picks for the week. Every panel was on this side. Medium is a decisiveness label for how firmly the panel agreed, never a win probability: high means every panel was on this side and ranked it among the week's best; only high picks count on the record and go free.

The total: Under 68 (medium)

Under 68. The market total climbed from the mid-60s earlier in the week to 68 on DraftKings and 68.5 on FanDuel, pricing in a possible shootout. Our totals model projects 61.25, a gap that sits below the threshold where the model is trusted to lean on its own, so this is mostly game-script judgment: Oregon's offense has scored only 34 and 31 points, several pass-catching pieces are unavailable, and a Big Ten opener next week gives the staff reason to pull starters once the margin is decided, capping the second half. Weather is clear and calm, a non-factor. The counter-case is Portland State's defense, which just allowed 627 yards. Take the under at 68.5 (FanDuel) for the better number.

Our number

edgelabs EL rating (preseason v1 until a team has played, then the in-season v1 Elo-style refit, Sun 23:00 and Tue 02:00 PT) run through the 2026-09-07 CFB calibration map; home field 2.5. Home perspective: negative = home favored. Ours: Oregon null; market at synthesis: -57. Held-out 2024-2025 reconstructions (9,927 FBS games): 46-50% against the spread in every gap bucket, calibrated margin error 12.7 points. No against-the-spread edge at any gap size. Treat the number as context, not as a priced edge.

written before kickoff, frozen at kickoff

Trends and splits

Descriptive context, every line with the games it counts. Filters like these did not hold up as predictors in our testing, so none of this is in the confidence read and none of it is a reason a pick wins. Situational splits look back 3 seasons and need at least 8 decided games to be shown at all. Records against the number and on the total join these once our closing-line history is restored; the straight-up splits are live now.

Portland State
  • won 0 of their last 5 (n=5, 2025 to 2026)
  • lost 6 straight
  • 1-10-1 straight up at home (n=11, 2024 to 2026)
Oregon
  • won 3 of their last 5 (n=5, 2025 to 2026)
  • 12-0 straight up in night divisional games (n=12, 2024 to 2025)
The rest of the splits we can compute on this game
Portland State
  • won 1 of their last 10 (n=10, 2025 to 2026)
  • 1-9-1 straight up in home day games (n=10, 2024 to 2026)
  • 1-8 straight up in home divisional games (n=9, 2024 to 2026)
  • 2-13-1 straight up in day games (n=15, 2024 to 2026)
  • 2-11 straight up in day divisional games (n=13, 2024 to 2026)
  • 2-9 straight up in night games (n=11, 2024 to 2026)
  • 4-16-1 straight up after a straight up loss (n=20, 2024 to 2026)
  • 3-12 straight up on the road (n=15, 2024 to 2026)
  • 2-8-1 straight up in day games after a straight up loss (n=10, 2024 to 2026)
  • 2-8 straight up in night games after a straight up loss (n=10, 2024 to 2026)
  • 2-8 straight up in road night games (n=10, 2024 to 2026)
  • 3-10 straight up on the road after a straight up loss (n=13, 2024 to 2026)
  • 4-13 straight up in divisional games (n=17, 2024 to 2026)
  • 4-10 straight up in divisional games after a straight up loss (n=14, 2024 to 2026)
  • 3-5 straight up in road divisional games (n=8, 2024 to 2025)
Oregon
  • won 8 of their last 10 (n=10, 2025 to 2026)
  • 9-0 straight up in home night games (n=9, 2024 to 2025)
  • 9-0 straight up in road divisional games (n=9, 2024 to 2025)
  • 18-1 straight up in divisional games (n=19, 2024 to 2025)
  • 15-1 straight up at home (n=16, 2024 to 2026)
  • 15-1 straight up in night games (n=16, 2024 to 2025)
  • 10-1 straight up on the road (n=11, 2024 to 2026)
  • 8-1 straight up in home divisional games (n=9, 2024 to 2025)
  • 12-3 straight up in day games (n=15, 2024 to 2026)

Conditions at kickoff

Clear. 69F · wind 3 mph

The ratings underneath, and our sources

The two numbers underneath

TeamEL ratingConference
Portland State unrated Big Sky
Oregon 14.457 Big Ten

Rating difference plus 2.5 points of home field is the rating read above. Full board: the power ratings.

Provenance: schedule and finals from the Edge Labs database (2026 season); the line is the latest capture for this game with the book named; our number is the EL rating read (in-season once a team has played, preseason before that) plus 2.5 home field, none at neutral sites, and it is context on this page rather than the call. Signals come from the trend engine, each with its real sample; a panel tier follows the rule under How to read this page and is never a win probability. Once the game kicks off this page stops computing and reads our pick lock ledger instead: the pick and the spread we were locked at, written once at kickoff, never updated, graded against that same number. Line movement comes from our permanent capture log, one book across both ends and never a capture taken at or after kickoff, so the second number is the last pregame line and after kickoff it is the close; a game the log has captured only once shows no movement rather than an invented one. Weather is the captured forecast for the venue, and the chip appears only when it is worth saying (wind at 12 mph or more, a 50 percent or better chance of rain, or 35F or colder), never on an indoor venue. Injury counts are our latest daily scan, real report rows only, and a team the scan does not cover is left out rather than shown as zero. The write-up is assembled from those same stored rows, never written around them: the case comes from the lock row, the signals from the trend engine with their own samples, the series from our game database from 2013 forward, and the scoring profiles from completed games only, each with the number of games it averages. A section with no data behind it is left out instead of filled in, it refreshes while the game is pregame, and it can never be edited once the game has kicked off. Trends are descriptive only, computed by the same shared module the write-up uses so the two cannot disagree: straight-up splits come from completed games in our database, situational splits look back three seasons and need at least eight decided games, records against the number and on the total arrive with the closing-line restore, and every line carries the games it counts. Filters like these did not hold up as predictors in our testing, so none of them enter the confidence read. The totals block is a read and not a pick: our number is EL CFB Totals v1 (edgelabs.el_cfb_totals, season 2026, model_version v1, docs/el-cfb-totals-v1.md), a registered candidate that loses to the closing total, so it never posts to the board or the record; the market total beside it is the same capture the spread comes from before kickoff and the frozen consensus the model priced against after it, and the gap is measured against whichever number is printed. The totals trends under it are the trend engine's own rows for this game, deduped on the headline, each carrying its sample. On the games the analyst panel works each week (the games our model prices off the market plus the ranked and Power Four games, at most twenty), the pick and the total call are the panel's synthesis: three independent analyst panels, the same evidence pack, their own research, one side each, tiered by the rule under How to read this page, never a win probability. A panel majority on a side is what makes a pick; without one the game is a published no-pick, printed as No pick rather than left blank. Research and context, never a guarantee, 21+.