LOGIN/REGISTER
{{mlc.data.Info.Period.Name}} {{mlc.selectedSlate.SlateName}}
{{mlc.selectedSlate.Games}} Games · {{mlc.toTimeStr(mlc.selectedSlate.SlateDateUtc)}} · {{mlc.getSlateStatusStr(mlc.selectedSlate)}}
View {{mlc.selectedSlate.Games}} Games
{{game.AwayTeamAbrev}} {{game.AwayTeamScore}} {{game.AwayTeamRecord}} O/U {{game.VegasTotals}} {{game.VegasMoneyLineAway}}
{{game.HomeTeamAbrev}} {{game.HomeTeamScore}} {{game.HomeTeamRecord}} {{game.VegasSpreadHome}}
{{game.GameFriendlyTime}}
{{game.StatusText}}
{{game.PostponeChance}}% {{fscInfo.Sport==3? "PPD" : ""}}
{{game.PostponeChance}}% {{fscInfo.Sport==3? "PPD" : ""}}
Go LineStar Premium - Get unlimited access to the top-rated DFS analytics platform - one low price Go Premium Learn More

CFL DFS Projections & Lineup Optimizer for DraftKings - 09/04

{{m.adminMode ? 'Admin' : 'Self'}}
Filters ×
My Lineups{{m.lineupDisplayCnt}} Stacks Updated {{m.lastUpdated}}
{{slot.salary.shortName}} {{slot.salary.shortName}}
{{slot.req.PositionName}}
{{slot.req.PositionName}} Empty {{slot.SalaryStr}}Sal {{slot.Proj}}Proj {{slot.pOwn}}pOwn
Optimizing… Optimizer + Settings {{m.optiChangedCount()}}
Optimizer settings
Reset every setting? Your player groups and team stacks are kept.
Saved setups
{{c.name}} ×
{{slot.req.PositionName}} {{slot.salary.shortName}} Tap to fill ${{slot.salary.SAL}} ×
Every run
Lineups to build {{m.optiDurationStr()}}
Engine V4 is more powerful and adds max player exposures
{{m.optiPoolDropStr()}}
Projection source Which numbers to optimize from
{{opt.Name}} {{opt.Desc}} This option is not saved between slates. max to
max ({{opt2.Pos}})
X
${{m.lineupBuilder.SalUsed}}Used ${{m.lineupBuilder.SalLeft}}Left ${{m.lineupBuilder.SalLeftPerSlot}}Per Slot {{m.lineupBuilder.TotalProjected}}Proj
{{m.optiFooterSummary()}}
{{m.showOnlyExpSettings==1 ? 'Exposure limits' : 'Advanced'}} Reset
{{opt.Name}} {{opt.Desc}} This option is not saved between slates. max to
max ({{opt2.Pos}})
X
Select model
{{mod.Name}}
{{mod.Description}}
Team Stacks
No stack requirements are active. Use + Create Stack Req above to add one.
Create Stack Requirement
ACTIVE STACK REQUIREMENTS
Stack {{$index+1}}
Teams ({{stk.teamsCntStr}}) Options
Player Groups
No player groups yet. Use + Create Group above to add one.
Create Player Group
ACTIVE PLAYER GROUPS
Group {{$index+1}}
Use to players from
{{g.playerIds.length}} selected player{{g.playerIds.length==1?'':'s'}}
{{m.playerGroupSummary(g)}}
No players chosen yet - this group is ignored until you add some.
Asking for more players than the group holds.
Position stacks
No position rules yet. Use + Create Rule above to add one.
{{m.posStacksOffSlateStr()}}
Rule {{$index+1}}not on this slate
{{m.positionStackSummary(r)}}
For
“Every” on a hitter position usually builds nothing — every matching player would need their own {{r.count}} team-mates. Use “one” unless you mean it.
use players
of
No positions picked — any position counts.
from
Teams
Choose players
{{m.editingGroup.playerIds.length}} selected
{{ps.Name}} {{ps.POS}} · {{ps.PTEAM}} · ${{ps.SAL}} {{ps.UserPP}}
No players match that search.
Saved as you pick
Excluded players
These never appear in a lineup, whatever else is set. Remove one to put it back in the pool.
Nobody is excluded. Exclude a player from the projections table and they show up here.
{{ps.POS}} {{ps.Name}} {{ps.PTEAM}}
Lineup builder
A locked slot keeps the player you put there. The optimizer fills the rest.
{{m.builderLockedCount()}}Locked {{m.builderOpenCount()}}To fill ${{m.lineupBuilder.SalUsed}}Used ${{m.lineupBuilder.SalLeft}}To spend
{{m.builderPaneSummaryStr()}}
{{slot.req.PositionName}} {{slot.salary.Name}} {{slot.salary.PTEAM}} · {{slot.Proj}} proj Open — the optimizer picks {{slot.SalaryStr}}
Teams
Only the selected teams' players are used when optimizing.
Select all Deselect all scroll for stats →
{{cat.Key}}
Team {{ie.Name}}
{{ie.Value}}
{{m.editingPosStackRule ? 'Rule Teams' : 'Stack Teams'}}
{{m.editingPosStackRule ? 'This rule only applies to the teams you select. Select none to apply it to every team.' : 'Selected teams will be used when stacking for this stack setup.'}}
Select all Deselect all scroll for stats →
{{cat.Key}}
Team Max Exp {{ie.Name}}
{{ie.Value}}
Stack Options
Positions allowed in stack
{{opt.Name}} {{opt.Desc}} {{opt.Val1}} max
${{m.lineupBuilder.SalUsed}}Used ${{m.lineupBuilder.SalLeft}}Left ${{m.lineupBuilder.SalLeftPerSlot}}Per Slot {{m.lineupBuilder.TotalProjected}}Proj
Select a {{m.activeBuilderSlot().req.PositionName}} to fill this spot
{{m.slotTip.req.Data.PositionNameDisp || m.slotTip.req.PositionName}} {{m.slotTip.salary.Name}} Empty slot
Player is locked into optimized lineups
{{m.slotTip.SalaryStr}}Salary {{m.slotTip.pOwn}}pOwn {{m.slotTip.Proj}}Proj
Fill this slot Examine player Lock optimizer positions used Remove player
What's new? Settings
Salary {{m.filter_minSalary/1000 | number:0}}k–{{m.filter_maxSalary/1000 | number:0}}k
Salary range
Adjustments {{m.adjSummary()}}
Your adjustments
Remove all liked players {{ps.Name}} ×
Include all excluded players back {{ps.Name}} ×
Reset all projection adjustments {{ps.Name}} ×
Reset all exposure adjustments {{ps.Name}} ×
Compound {{m.compoundFilters.length}}
Compound filters
No saved compound filters yet. Set up some filters, then choose “Save as compound” on the summary line. {{cf.name}} ×
Teams {{m.projSourceName()}}
Sort: {{m.selectedSorter.Name}} {{m.matchupDataSorter.Name}} · {{m.matchupDataSorter.Columns[m.matchupDataSorterColIdx]}} Advanced
Advanced (Matchup Data) Sport-specific matchup stats - pick a dataset & column
{{sorter.Name}} {{sorter.Desc}}
Back Matchup Data
{{pmd.Name}}
{{str}}
{{m.count_total}} of {{m.salaryListForSelSlateALL.length}} players· Pos {{m.filter_pos ? m.filter_pos.FilterText : 'ALL'}}· {{m.activeFilterList.length || 'No'}} active filters
{{filter.name}}×
Hide tools Show tools
Important salary data has changed, tap here to refresh.
Players ({{m.count_filtered>0 ? m.count_total + '/' + m.salaryListForSelSlateALL.length : m.count_total}})
Pos: {{m.filter_pos ? m.filter_pos.FilterText : 'ALL'}}
ALL {{pf.FilterText}}
Status Chat Tier Value Salary Scored Projection Consensus Max Exp% Cons Diff Time Opponent vs Pos {{m.static.sportSpecificColName0}} {{m.static.sportSpecificColName1}} Consistent Floor Ceiling Range AlertScore Avg FP {{m.static.impColHeaderName}} {{xs.label}} Matchup Data SIC Score pOwn actOwn Leverage Safety
{{::p.POS}}{{m.showDepth?p.depthOrder:""}} {{::p.Name}} {{::p.Name}} ({{::p.OE}}) • {{::p.PTEAM}} {{m.sortMethod==4 ? p.HateCount : m.rabLikeCount(p)}} {{p.MessageCount}} Tier{{p.Tier}} {{p.ValueX}} {{::p.SalStr}} {{p.PS}}
{{p.AggProj}}
{{(p.AggProj - p.UserPP).toFixed(2)}} {{::p.ShortGameTime}} {{::p.VersusStr}} {{p.OppRankStr}} {{p.sportSpecificCol0}} {{p.sportSpecificCol1}} {{p.ConfStr}}% {{p.FloorStr}} {{p.CeilStr}} {{p.AlertScore}} {{p.PPG}} {{p.VegasImplied}} {{p.extraStats[xs.key]}} {{p.SIC}} {{p.SlateOwnership}}% {{p.ActSlateOwnership}}% {{p.Leverage}} {{p.Safety}}
+Chart
×
+Alerts
×
+Matchups
×
{{m.inlineCtaText($index)}} Get started
Load more players {{m.hiddenSalariesForSlate.length}} left

Loading Projections...
No salaries available for this site/sport. Check back soon!
LineStar Premium
Get unlimited access to the top-rated DFS & Sports Betting analytics platform - one low price.
Want to try it out first? You can view the past week for free to try our tools! No signup required, just change date top left.
{{p.SS==4 ? 'Final' : p.SS==3 ? 'PPD' : p.SS==2 ? 'Delayed' : 'Live'}}{{p.SS!=3 && p.PS!=null ? ' · ' + p.PS : ''}} 🔥
{{::p.PTEAM}} {{::p.Name}}{{::((m.Sport==3 || p.isPitcher) && p.OE ? ' (' + p.OE + ')' : '')}} {{::p.POS}}{{m.showDepth?p.depthOrder:""}} vs {{p.oppPitcher.Name}}{{p.oppPitcher.OE ? ' (' + p.oppPitcher.OE + ')' : ''}}, {{p.OTEAM}} · {{p.ShortGameTime}} {{p.VersusStr}} ({{p.OppRankStr}}) · {{p.ShortGameTime}}
Proj
Override
Tier {{p.Tier}}Tier {{p.SalStr}}Salary {{p.ValueX}}Value {{p.SlateOwnership}}%pOwn
Max Exp
{{m.densityMode=='ultra' ? m.shortColName(m.static.sportSpecificColName0) : m.static.sportSpecificColName0}}{{p.sportSpecificCol0}} {{m.densityMode=='ultra' ? m.shortColName(m.static.sportSpecificColName1) : m.static.sportSpecificColName1}}{{p.sportSpecificCol1}}
{{m.static.impColHeaderName}}{{p.VegasImplied}} {{m.densityMode=='ultra' ? xs.shortLabel : xs.label}}{{p.extraStats[xs.key]}}
♥ Like ⊘ Exclude 🔒 Lock Chat{{p.MessageCount}}
{{m.inlineCtaText($index)}} Get started
No players match the current set of filters.
Load more players {{m.hiddenSalariesForSlate.length}} left

Loading Projections...
No salaries available for this site/sport. Check back soon!
LineStar Premium
Get unlimited access to the top-rated DFS & Sports Betting analytics platform - one low price.
Optimizing… {{m.optiStreamCount}} of {{m.optiStreamTarget}} lineups
{{m.lineupsDialogSet.SetInfo.SetName}} {{m.lineupSetMetaLine(m.lineupsDialogSet, mlc.getPrettyDate(m.lineupsDialogSet.SetInfo.CreatedUtc))}}
{{set.SetInfo.SetName}} {{m.lineupSetMetaLine(set, mlc.getPrettyDate(set.SetInfo.CreatedUtc))}}
Showing only lineups stacking {{m.getSetTeamFilterName(m.lineupsDialogSet)}} Showing only lineups with {{m.getSetPlayerFilterName(m.lineupsDialogSet)}} Swaptimize Export Merge Delete
Sort: {{m.lineupSortLabels[m.lineupSortMethod]}}
Default (As Optimized) The order the optimizer built the set
Projected Highest projected points first
Consensus Projection Highest total consensus (industry) projection first
Scored Highest actual scored points first
Owned Highest total ownership first
Salary Highest salary used first
New Set Import CSV
There are no lineup sets for the selected slate. Tap the 'Optimizer' button to get started!
You have {{v.setCnt}} sets with {{v.lineupCnt}} lineups in the {{v.slate.SlateName}} slate. Tap to switch to this slate.
{{set.selectedCnt}} selected
Team 2 3 4 5+ Total
{{te.Team.Name}} {{te.TwoStack}} {{te.ThreeStack}} {{te.FourStack}} {{te.FiveStack}} {{te.Cnt}}
Player Exp Max%
{{exp.Salary.POS}} {{exp.Salary.Name}} {{exp.Salary.PTEAM}} {{exp.Pct}}%
Combos coming soon.
Lineup {{li.req.PositionName}} Stacks pOwn{{m.luTableSortDesc?'▾':'▴'}} Salary{{m.luTableSortDesc?'▾':'▴'}} Proj{{m.luTableSortDesc?'▾':'▴'}} Cons{{m.luTableSortDesc?'▾':'▴'}} Scored{{m.luTableSortDesc?'▾':'▴'}} {{cc.label}}{{m.luTableSortDesc?'▾':'▴'}} × + Stat
Add a matchup stat
Totalled across every player in the lineup.
Cancel Add column
{{lineup.Name}} {{li.Salary.Name}} ({{li.Salary.PTEAM}}) {{li.Salary.LU}} {{stk.TeamName}} {{stk.cnt}} {{lineup.Owned.toFixed(0)}}% ${{lineup.Salary}} {{lineup.PP.toFixed(2)}} {{lineup.ConsPP>0 ? lineup.ConsPP.toFixed(2) : '–'}} {{lineup.PS>0 ? lineup.PS.toFixed(2) : '–'}} {{cc.resolved ? (lineup[cc.key]||0).toFixed(1) : '–'}}
{{li.req.PositionName}} {{li.Salary.Name}} {{li.Salary.LU}} PP{{li.Salary.PPL}} {{li.Salary.POS}}{{li.Salary.depthOrder}} {{li.Salary.PTEAM}} {{li.Salary.OTEAM_VS}} {{(li.Salary!=null)?li.Salary.SlateOwnership:0}}% ${{m.getSalaryFromSlot(li)}} {{m.getPointsProjectedFromSlot(li)}} {{m.getLineupItemScored(li)}}
{{stk.TeamName}} {{stk.cnt}}
Stacks
{{lineup.Owned.toFixed(0)}}%
pOwn
${{lineup.Salary}}
Salary
{{lineup.PP.toFixed(2)}}
Proj
{{(lineup.ConsPP||0).toFixed(2)}}
Cons Proj
{{lineup.PS.toFixed(2)}}
Scored
Build Stack Size
Gap Size
Max WRs
Max TEs
Max RBs
Builder Fit
Options
Filter & sort Teams {{filter.name}}X {{f.name}} {{f.min}} {{f.max}} × No stat filters — tap a stat's funnel in the table to add one. {{stk.sortDesc==1 ? '▼' : '▲'}} Options
{{cat.Name}}
Matchup & Stack Total Stacks ({{stk.stacks.length}}) {{sorter.Name}}
{{teamStk.team.Name}}vs {{teamStk.oppTeam.Name}}
${{teamStk.totalSalary | number:0}} · {{teamStk.Proj | number:2}} pts
{{teamStk.totalValue | number:2}} pts/$1k
{{ply.LU}} {{ply.shortName}}, {{ply.POS}}{{ply.POS}}{{ply.depthOrder}}
PP{{ply.PPL}}${{ply.SAL}} · {{ply.PP}}
{{ele.Value}}
Display All Stacks
No stacks match the current filters. Adjust the filters above to see more stacks.
LineStar Premium
Get unlimited access to the top-rated DFS & Sports Betting analytics platform - one low price.
Want to try it out first? You can view the past week for free to try our tools! No signup required, just change date top left.

Loading Stacks...
{{teamStk.players[0].SS==4 ? 'Final' : teamStk.players[0].SS==3 ? 'PPD' : teamStk.players[0].SS==2 ? 'Delayed' : 'Live'}}{{teamStk.players[0].SS!=3 && teamStk.Scored!=null ? ' · ' + (teamStk.Scored | number:1) : ''}} 🔥
{{teamStk.team.Name}}vs {{teamStk.oppTeam.Name}} vs {{::(teamStk.oppPlayer.Name + (stk.sportId==3 && teamStk.oppPlayer.OE ? ' (' + teamStk.oppPlayer.OE + ')' : ''))}}
{{ply.LU}}{{ply.shortName}}, {{ply.POS}}{{ply.POS}}{{ply.depthOrder}}{{stk.sportId==3 && ply.OE ? ' (' + ply.OE + ')' : ''}}PP{{ply.PPL}} ${{ply.SAL}} {{ply.PP}}
{{::stk.heroStat(teamStk,1).Value}}Salary {{::stk.heroStat(teamStk,2).Value}}Value {{::stk.heroStat(teamStk,0).Value}}Proj {{::stk.heroStat(teamStk,210).Value}}Cons {{::stk.heroStat(teamStk,6).Value}}pOwn
{{::ele.Value}}{{::ele.Name}}
{{cat.label}}{{stk.sortInfo.name}} {{cat.elements[stk.sortInfo.eleIdx].Value}}
Display All Stacks
No stacks match the current filters. Adjust the filters above to see more stacks.

Loading Stacks...
X
Stacking Options
{{opt.Name}}
{{opt.Val?"Enabled":"Disabled"}}
{{opt.Val}}
{{opt.ValMin}}-{{opt.ValMax}}
{{opt.Desc}}
{{opt.Name}}
Tap Lock on a player to fill {{m.activeBuilderSlot().req.PositionName}}
Projections Lineups {{m.lineupDisplayCnt}} Stacks {{m.optimizingLineups==1 ? 'Optimizing…' : 'Optimizer'}} Filters More
More×
Density
{{m.cardMode ? 'Switch to table view' : 'Switch to card view'}}
What's new?
Help
View {{mlc.selectedSlate.Games}} games
{{mlc.fscInfo.sportName}} chat
Settings
X
Stack Options
Positions allowed in stack
{{opt.Name}} {{opt.Desc}} {{opt.Val1}} max
X
{{m.movingLineups.length ? ('Move ' + m.movingLineups.length + ' Lineups to Set') : 'Move Lineup to New Set'}}
{{set.SetInfo.SetName}} {{m.getGenerateModel(set.SetInfo.Model).ShortName}} · {{m.getSlate(set.SetInfo.SlateId).SlateName}} · {{set.SetInfo.LineupCount}} lineups · {{mlc.getPrettyDate(set.SetInfo.CreatedUtc)}}
{{set.SetInfo.SetName}} {{m.getGenerateModel(set.SetInfo.Model).ShortName}} · {{m.getSlate(set.SetInfo.SlateId).SlateName}} · {{set.SetInfo.LineupCount}} lineups · {{mlc.getPrettyDate(set.SetInfo.CreatedUtc)}}
No other sets to move to yet.
X
Replacing {{m.replacingPlayer.Name}} ({{m.replacePlayerPos}})
{{player.Name}}• {{player.PTEAM}} {{player.OTEAM_VS}} {{player.SalStr}} {{player.UserPP}}
{{m.replacingPlayerMessage}}
X
{{m.positionFilterSlot.req.PositionName}} Positions
NOTE: Select the positions you want to use when optimizing this flex spot.
X
Basics Sorting Optimizer What's New
September 1, 2026 Latest

A big one. The optimizer got a full rebuild, projections became something you can own and swap between, and the Swaptimizer learned to hold exactly the players you tell it to.

Optimizer settings
  • Settings now open as a dialog in the middle of the screen instead of a panel squeezed into the toolbar or the docked column. Everything has room, and the same layout works whether the builder is docked or not.
  • Settings are a plain list now, grouped into Player pool and Rules. Anything you've changed from its default is marked, so you can see your own setup at a glance without opening a thing.
  • Lineup count has its own block: a slider, a number you can type into, and one-tap buttons for 10, 20, 50, 100 and 150. After a few runs it also estimates how long a build will take, learned from your own optimizes on that slate.
  • Exposure limits moved out of Advanced into their own section, so max exposure and per-position caps are somewhere you can find them.
  • Save your setup under any name you like and switch between saved setups in a tap — or reset everything back to defaults.
V4 optimizer
  • V4 is now the default engine. You can switch back to Classic from the Engine row at the bottom of the settings dialog.
  • Lineups stream in as they're built. The Lineups window opens right away and fills in live, with a running count, instead of waiting for the whole batch.
  • Press Stop whenever you like — every lineup built so far is kept.
  • Player groups: pick a set of players and require at least, at most, exactly, or between N of them. The player picker filters by position and sorts by projection, value, salary, ownership or team.
  • Position stacks: correlate by position rather than by team — “for each P, use at least 2 of 1B/2B/OF from the same team” — including bring-backs off the opposing side.
Projections
  • The Projections Manager. One dialog for everything to do with projections — which numbers the table shows, importing a file, starting a set from scratch, renaming, deleting. It replaces the old Upload Projections popup and the source picker, which were two doors onto halves of the same job.
  • Choose what you're looking at. LineStar, Consensus, your own saved projections, or any set you've imported. Every source is tagged with where its numbers actually live: Synced for My Projections, which is saved to your account and follows you to the LineStar mobile apps; Read-only for LineStar and Consensus; Local only for sets you've made, which live in this browser.
  • Bring your own projections. Drop a CSV or a spreadsheet paste straight onto the dialog. Columns are detected for you, and blank cells count as zero instead of erroring out. Keep as many named sets as you like and switch between them in a tap — one for your own model, one for a subscription, one you're testing.
  • Name matching that actually matches. “T.J. Hockenson”, “TJ Hockenson”, “Hockenson, T.J.”, “Acuña Jr.” and “K. Walker” all find their player now. Anything it can't place is listed first so you can fix it without scrolling, and a match you make by hand is remembered — next week's file from the same source just works.
  • Optimize from a different set than you're reading. The optimizer has its own projection source in the settings dialog, so you can study one set on screen and build from another.
  • Edit a projection while a read-only source is showing and it's saved to My Projections rather than dropped, and the table switches so you can see it happen.
Swaptimizer
  • V4 can swaptimize. Pick Classic or V4 at the top of the Swaptimizer dialog. V4 sends each lineup with an explicit lock on every slot, so it can hold exactly the players you want held — Classic can only be told “skip games that have started”.
  • Lock games yourself. The single “Late Swaptimize Only” checkbox is now a list of every game on the slate, each with its own lock. Games that have started lock themselves, and you can override either way — freeze a game that hasn't started to keep those players, or unlock one that has if you know what you're doing. We'll warn you when your site will reject the change.
  • Importing entries got a rebuild. Drag your entries file onto the dialog instead of hunting for a Choose File button, with clearer instructions and a plain answer when something doesn't match.
  • A set per contest. If your entries file covers several contests, you can split them into a set each, named after the contest, and swap and export them separately. It shows you which contests it found before you decide.
  • Exporting is smarter. Exporting a selection of imported lineups now offers to write them back into your entries file, the same as exporting the whole set — it used to quietly export as a plain file and lose the link. And when your lineups span several contests you can take one file or one per contest.
Lineups
  • Pitchers and goalies no longer count toward a team's stack number. A lineup with two Dodgers bats and the Dodgers starter now reads as a 2-stack, which is what it actually is.
August 27, 2026

Lots of great usability and flexibility changes!

Lineups
  • Build your own sort. In the lineups table view, scroll to the far right and use the last column to add any stat from the matchup data — it's totalled across the whole lineup and becomes a sortable column.
  • Add as many as you need; your columns are remembered between visits.
Navigation
  • The sport switcher in the quick bar now takes you straight there. Picking a sport loads the same page you were on for that sport, rather than waiting for a second tap.
  • If that page doesn't exist for the sport you picked — there's no Dinger Report for the NFL — you land on its Projections page instead.
Charts
  • The football Touchdown Report card view now shows a recent-game chart for each player, with the stats that matter for their position — targets and catches for receivers, carries for backs.
  • On the new-style charts, each stat you pick now carries its own colour through the picker, the line, and the hover panel's box score, so it's obvious which line is which.
Projections table
  • Player rows now start collapsed, with the top row opened as an example. Expand the ones you want, or use the expand-all button in the header as before — your choice is remembered.
  • The expand button now clearly shows which rows you've left open.
  • The mouse wheel scrolls the player list from anywhere on the page, instead of only when the pointer is over the table itself.
Best Ball
  • Fixed saved drafts not appearing in the resume list after starting a new one.
  • Fixed being unable to send chat messages — every message was rejected as too short.
  • Fixed chat message colours in dark mode, and made the draft manager easier to read.
  • Your Adjustments — rookie, injury, playoff and team sliders — are now saved with each draft, so a dynasty setup and a redraft setup no longer overwrite each other.
  • While you're editing a projection, the row's action buttons stay put and stand out, so Save and Cancel don't disappear when the mouse moves away.
Fixes & cleanup
  • Sorting by Consensus or Consensus Diff no longer buries players who have a consensus projection but none of your own — those are the biggest disagreements, and they now sort to the top where they belong.
  • Removed the auto sign-in prompt and the New Look tour popup. If you're still on the classic charts you'll occasionally see a small note offering the new ones, which you can dismiss for good — and you can switch back at any time from the chart's settings.
August 8, 2026

The lineup builder can now dock to either side of the screen, the games bar does a lot more than it used to, and chat remembers where you left off.

Lineup builder
  • Dock the builder as a column down the left or right edge of the screen — the way it used to sit — or keep it in the toolbar. Your choice is remembered.
  • Docked, each roster spot gets a full row showing the player's name, position, salary, projection, and ownership.
  • A compact width shrinks the column to just the player avatars when you only need a glance at the roster.
  • The optimizer settings sit right in the docked column under your lineup, instead of floating over the table.
  • Team stack and include/exclude pickers open wide over the grid, so those tables have room to breathe.
  • Collapse the settings list from its title bar when you're running a saved model and just want the Optimize button.
Games bar
  • Tapping a game now opens a menu instead of filtering straight away — filter on the home team, the away team, or both.
  • View lineups shows that game's projected or confirmed starting lineups in a popup, without leaving the page.
  • The popup marks games that are live, delayed, postponed, or final, with the score and colour matching the games bar.
  • Baseball games include the hourly forecast — temperature, rain chance, and wind direction — or an indoors marker for domes.
  • Both the filters and the lineup popup work on the props page too.
Chat
  • General chat now remembers the last message you read and marks it with a New messages divider when you come back, so you can pick up where you left off. Tracked per sport.
  • The undocked chat window can be resized from any edge or corner, not just the bottom-right.
Projections table
  • The Consensus column is shown by default again.
  • The column manager now labels its buttons, so hiding and highlighting a column is obvious at a glance.
  • Removing a player from a roster spot now filters the list to that position, matching what happens when you tap an empty spot.
  • Fixed Max players per team keeping a showdown slate's higher limit after switching back to a normal slate.
August 4, 2026

A big redesign of the projections experience — a fresh, modern look across the grid, dialogs, and toolbars (with full light & dark themes). Here are the highlights:

Look & navigation
  • Refreshed, modern design throughout the projections page.
  • Sport selection now lives in the page menu — pick your sport and your page from one place. The old blue sport bar is gone, giving the data more room.
  • Light, dark, and auto themes.
Optimizer
  • One streamlined optimizer — the mini optimizer above the projections grid now handles everything, so there's no separate mini and full optimizer to juggle.
  • Redesigned settings in the gear flyout, with the optimizer model, team stacks, and stack options all opening in-place with a back button — no more jumping between dialogs.
  • Every numeric setting now has both a slider and a type-in box for exact values.
  • The Optimize button shows a live progress spinner while building, and your Lineups window opens automatically the moment the lineups are ready.
Customize your view
  • Multiple display density modes (normal, compact, and ultra-compact) to fit as much — or as little — on screen as you like.
  • Show, hide, reorder, and highlight any columns to build the grid exactly the way you want it.
  • Hide or resize the sections inside an expanded player card (chart, alerts, matchup data).
  • Build compound filters fast: filter directly on columns and matchup data, then tap Create Compound Filter to save the combination.
Lineups
  • New compact mode (last names only, condensed rows) you can toggle on and off.
  • Tap a team or player inside the Lineups window to instantly filter to just the lineups that include them — with the matching rows highlighted.
Stacks
  • Fully modernized Stacks window with stand-out filters and a compact mode (now the default) that condenses each stack to quick chips with hover-for-detail.
  • Sort by any stat with the new sort menu, and build, save, and clear your own stat filters.
  • The Add Stack, Team, and Opp columns are combined into one Matchup & Stack cell showing total stack salary and projected points, with a cleaner Add button.
Projections table
  • The Position and Player columns now stay frozen on the left as you scroll the table sideways, so you never lose track of whose data you're looking at.
  • The matchup data view has been simplified to make what it's showing clearer at a glance.
X
Lineup Settings
Reset Settings
{{opt.Name}} {{opt.Desc}} This option is not saved between slates. max to
max ({{opt2.Pos}})
X
X
Team Stacks
Create Stack Requirement
ACTIVE STACK REQUIREMENTS
Stack {{$index+1}}
Teams ({{stk.teamsCntStr}}) Options
X
{{mod.Name}}
{{mod.Description}}
X
Swaptimizer
Re-optimizes every lineup in this set using your current Optimizer settings — adjust those first. Team stacks are not used.
Locked games {{m.swapLockedCount()}} of {{m.swapGames.length}} locked
Locked games keep their players exactly as they are. Everything else is re-optimized.
{{m.swapStartedUnlocked()}} game{{m.swapStartedUnlocked()==1?'':'s'}} already underway {{m.swapStartedUnlocked()==1?'is':'are'}} unlocked. Those players can still be swapped here, but {{m.siteName}} will reject the changed entries on upload.
The Classic optimizer only understands “skip games that have started”, so your per-game choices will not all be applied. Switch to V4 to use them exactly.
Swaptimize Set
X
Try the new LineStar look?
We’ve rebuilt big parts of the projections page — a card view for players, a faster chart, a full dark mode, and a colorblind-friendly color option. This 30-second tour turns them on one at a time so you can see each change live.
Nothing is locked in: every choice can be flipped back anytime in Settings → Visuals.
No thanks Show me
1 of 5 · Player view
Cards instead of the table
Every player becomes a card with the projection, matchup and a mini chart front and center — more glanceable, less spreadsheet. Pick one below and watch the page behind this dialog change.
Keep the table Use cards
Switch back anytime — the Table / Cards toggle is the control glowing in the toolbar above, right next to the density buttons.
Back Next
2 of 5 · Player chart
The new chart
A rebuilt player chart: cleaner bars, a projection line, trophies for slate-winning games, and a size toggle right on the chart. It’s also a lot faster when you scroll.
Keep the classic Use the new chart
Expand any player row to compare. Chart style and column size live behind the Settings gear glowing in the toolbar above (Visuals tab).
Back Next
3 of 5 · Theme
Dark mode
The whole site now has a night-navy dark theme — easier on the eyes for late slates. Try it live:
Stay light Go dark
There’s also an Auto mode that follows your device — find it with the text-size options in Settings → Visuals.
Back Next
4 of 5 · Colors
Colorblind-friendly colors
If green vs. red is hard to tell apart, the data highlights — matchups, range bars, good/bad cells — can use blue for good and orange for bad instead. Try both:
Standard green / red Blue / orange
This lives next to the theme toggle in Settings → Visuals whenever you want to change it.
Back Next
5 of 5 · Feedback
Spot something? Tell us!
A redesign this big always has rough edges — if you hit an issue, please report it. We’re fixing problems as fast as we find them. Don’t like one of the changes? Please let us know. Have a fun new idea you’d love to see? Feedback it!
Leave feedback now
The Feedback tab glowing at the top of the page is always there when something comes up.
The Feedback tab at the top of the page is always there when something comes up (enable Functional cookies in Cookie Settings to see it).
Back Done
X
Teams
Deselect AllSelect All
Tap the checkboxes below to filter the player list down to specific teams.
Selected teams will be used when optimizating.
Selected teams will be used when stacking for this stack setup.
Set max exposure on selected teams:
{{cat.Key}}
Team Max Exp {{ie.Name}}
{{ie.Value}}
{{ie.Value}}
{{ie.Value}}
{{m.thFilter.label}} ×
Clear filter
Settings
Personalize projections — changes save automatically
Import & export
Export projections
Download projections for the current slate as a .csv file.
Import projections
Load projections from a .csv file or clipboard. Data must be comma delimited.
Reset
Optimized lineup sets
Delete all of your optimized lineup sets for this period.
Custom projections
Reset every projection you have changed back to LineStar's projection.
Likes & fades
Clear every player you have liked or faded.
Appearance
Theme
Light or dark color mode. Saved on this device and applied across LineStar.
New-look tour
Replay the quick tour of cards view, the new chart and dark mode.
Colorblind-friendly colors
Use blue for good and orange for bad across data highlights, instead of green/red.
Player chart
Chart style
V2 adds floor-to-ceiling ranges, trend lines, and a hover box score.
Expanded player row
Chart column
Show the game-log chart in expanded rows. Drag the divider next to it to resize.
Alerts column
Show the player alerts list in expanded rows.
Matchup column
Show the matchup stat cards in expanded rows.
Column widths
Restore the default chart / alerts / matchup column sizes.
Layout
Hide Games View on scroll
Collapse the Games View when the projections table is scrolled down.
Hide filters on scroll
Collapse the filter toolbar while scrolling down the projections table; scroll up to bring it back.
Hide zero-point projections
Hide players projected for 0 points from the table.
Lineup builder
Filter on auto-progress
Update the position filter when the builder auto-progresses to the next slot.
Filter on manual slot change
Update the position filter when you manually select a builder slot.
Always show exclude action
Keep the exclude action in the player hover bar. With the V3 optimizer, off hides it in favor of Max Exposure 0.
Player rows
Always show action bar
Keep the like / exclude / lock action bar visible on every player row. Off shows it only when you hover the row.
Sorting
Rank 0-projection players last
When sorting any column, players projected for 0 points (not playing) drop to the bottom instead of sorting by their value (e.g. high-salary players floating to the top of a Salary sort).
Show, hide & reorder columns
Drag to reorder, or hide and highlight any column
Show all ({{m.hiddenColCount()}} hidden)
{{col.label}} {{m.isColHidden(col.key) ? 'Show' : 'Hide'}}
Column options
Header column on expanded rows
Repeat the header column for every expanded row.
Alerts as stars
Display alerts as star ratings instead of icons.
Reset
Reset columns
Restore every column to its default order and make all columns visible.
{{m.errorTitle}}

{{m.errorLeadText}}

{{m.errorBulletsLabel}}
  • {{b}}
X
What's New?
12/15/2024
  • Updates to Stacks view: Hockey, MLB Showing Lines/batting order, and football is showing depth now.
  • Lineup Sets are now linked to your selected slate and only displayed when that slate is selected.
  • Updates to some optimizer models and new settings. (Added randomness, adjusted variance)
  • Error dialog now if an optimization fails.
  • Modified Optimizer settings that have been changed are highlighted.
X
Compound Filters
Pre-Loaded Filters
Your Saved Filters Create New Filter Export To Clipboard Import From Clipboard
Valid filter data was not found in the clipboard.
Your filter has been exported to the clipboard.
Active Filter Add Group
Delete
All filters within this group will evaluate using this operation: Delete Group
Type Filter Operation Value Add Row
-
{{cc.chatTitle}}
Live
Chat
Status
Blocked
Setup
Loading chat...
New messages
BIG PLAY {{::msg.GameScore}} {{::msg.GameDesc}} {{msg.readableTime}} +{{::msg.FP_DK}} FP {{::msg.TotalFP_DK}} FP Total
{{::msg.EventText}}
{{::msg.User.Name.charAt(0)}}
{{::msg.User.Name}}
{{msg.User.MonthScore}} Admin Featured Fan of Day MVP Expert Expert
{{msg.readableTime}}
{{msg._displayScore > 0 ? '+' : ''}}{{msg._displayScore}}
{{rc.emoji}}{{rc.count}}
Show earlier messages
Your Chat Status
Your Chat Name {{cc.gChatUser.Name}} Set Chat Name Subscription Required
Chat Status {{cc.gChatUser.StatusText}}
Lifetime Score {{cc.gChatUser.MessageCount}}
Month Score {{cc.gChatUser.MonthScore}}
Chat Ranking
Chat Options
Chat Icons Explained
Verified Verified member — recognized for exceptional chat content.
1 star 1-star chat rating
3 stars 3-star chat rating
5 stars 5-star chat rating
7 stars 7-star chat rating
10 stars 10-star chat rating
Rank Flair
Rookie Ranks 1-2 — blue avatar ring and bubble accent
All-Star Ranks 3-4 — sapphire avatar ring with glow
MVP Ranks 5-6 — spinning purple ring and gradient border
Hall of Famer Ranks 7-8 — silver spinning ring with orbiting particles
GOAT Ranks 9-10 — gold spinning ring with glow and particles
Community Guidelines
We strive for civil, enlightened discussions on players, matchups, and games.
1 Be civil
2 No personal attacks or insults
3 Stay on topic
Violations may result in blocked comments or revoked privileges.
Blocked Users
{{bu.Name.charAt(0)}} {{bu.Name}}
No blocked users
Choose Your Chat Name
Choose wisely — you'll be stuck with this name for the foreseeable future.
Claim this name
Community Guidelines
1 Be civil
2 No personal attacks or insults
3 Stay on topic
Violations may result in blocked comments or revoked privileges.
Cancel
{{cc.userMenu.name.charAt(0)}}
{{cc.userMenu.name}}
Reply
Block User
Block {{cc.userMenu.name}}?
Yes, block Cancel
X
Games For Selected Slate
{{game.AwayTeamAbrev}} {{game.AwayTeamScore}} {{game.AwayTeamRecord}} O/U {{game.VegasTotals}} {{game.VegasMoneyLineAway}}
{{game.HomeTeamAbrev}} {{game.HomeTeamScore}} {{game.HomeTeamRecord}} {{game.VegasSpreadHome}}
{{game.GameFriendlyTime}}
{{game.StatusText}}
{{game.PostponeChance}}% {{fscInfo.Sport==3? "PPD" : ""}}
{{game.PostponeChance}}% {{fscInfo.Sport==3? "PPD" : ""}}
X
TEAM vs TEAM