SC

Sunday Scaries Coach

Set your lineup

Pick your Sunday Scaries team. Instant who-to-start calls.

Teams or news look stale — tap Refresh, then get advice again.

Updated {{ teamsFetchedLabel }}

{{ error }}

Wk {{ advice.week || 1 }} · Full PPR
Data looks stale — tap Refresh for latest ESPN.

{{ advice.teamName }}

vs {{ advice.opponent }}

You

~{{ fmtScore(advice.projectedScore) }}

VS

Opp

~{{ fmtScore(advice.opponentProjectedScore) }}

Updated {{ adviceFetchedLabel }}

FLEX call

{{ flexCallShort }}

{{ advice.flexAdvice }}

{{ flexCompareCard.left.name }}

~{{ fmtScore(flexCompareCard.left.proj) }} pts

{{ adviceBadge(flexCompareCard.left.advice) }}
vs

{{ flexCompareCard.right.name }}

~{{ fmtScore(flexCompareCard.right.proj) }} pts

{{ adviceBadge(flexCompareCard.right.advice) }}

{{ flexCompareCard.note }}

{{ advice.swapPreview.note }}

Starters

{{ p.slotName || p.pos }}

{{ p.name }}

{{ p.team }}

{{ shortStatus(p.status) }} {{ adviceBadge(p.advice) }}

{{ shortCallWhy(p) }}

~{{ fmtScore(p.proj) }}

pts

Roster loads when live ESPN or saved tips are available.

Compare

{{ c.label }}

{{ compareVerdictLine(c) }}

{{ expandedCompareIdx === i ? 'Less' : 'Compare' }}

{{ c.left.name }}

~{{ fmtScore(c.left.proj) }} pts

{{ adviceBadge(c.left.advice) }}
vs

{{ c.right.name }}

~{{ fmtScore(c.right.proj) }} pts

{{ adviceBadge(c.right.advice) }}

{{ c.left.name }}

{{ c.left.meta || '' }}

~{{ fmtScore(c.left.proj) }} pts

{{ adviceBadge(c.left.advice) }}

{{ c.note }}

Swap

{{ (advice.swapPreview && advice.swapPreview.note) || 'Sit a starter · START a bench player · see the point change.' }}

Before

{{ fmtScore(advice.projectedScore) }}

After

{{ fmtScore(liveSwapTotal != null ? liveSwapTotal : (advice.swapPreview && advice.swapPreview.after)) }}

If you swap {{ swapStart }} in for {{ swapSit }}: team total becomes ~{{ fmtScore(liveSwapTotal) }} pts ({{ liveSwapDelta >= 0 ? '+' : '' }}{{ fmtScore(liveSwapDelta) }})

{{ swapToast }}

Bench

{{ p.pos || 'BN' }}

{{ p.name }}

{{ shortStatus(p.status) }} {{ adviceBadge(p.advice || 'BENCH') }}

{{ shortCallWhy(p) }}

~{{ fmtScore(p.proj) }}

pts

No bench listed yet.

IR

{{ p.name }}

{{ p.pos }} · {{ p.team }} · on IR (keep him here)

IR
▸ Ask Grok Live

Answer

Why

Checking sources…

Why{{ askWhyData.ai && askWhyData.ai.used ? ' · AI' : '' }}

Sources only

{{ askWhyData.error }}

You

{{ advice.teamName }}

~{{ fmtScore(advice.projectedScore) }}

pts expected

vs

Opp

{{ advice.opponent || 'TBD' }}

~{{ fmtScore(advice.opponentProjectedScore) }}

pts expected

{{ edgeLine }}

Player vs player

YouThem
{{ row.slot }}

{{ row.mine?.name || '—' }}

~{{ fmtScore(row.mine.proj) }} pts {{ shortStatus(row.mine.status) }}

{{ row.theirs?.name || '—' }}

~{{ fmtScore(row.theirs.proj) }} pts {{ shortStatus(row.theirs.status) }}

Matchup slots appear when roster data is available.

You vs Them

Why you’re ahead

  • {{ t }}

Why they’re ahead

  • {{ t }}

What to watch

  • {{ t }}
  • {{ t }}

What could change the winner

If this happens
{{ f.if }}
Then expect
{{ f.then }}

Easy fixes before Sunday

{{ i + 1 }} {{ t }}

Bottom line

{{ predictionLean }}

{{ analysis.joke }}

Bench · Injuries · News

Your bench

{{ p.pos }} {{ p.name }} {{ shortStatus(p.status) }} ~{{ fmtScore(p.proj) }}
IR {{ p.name }} Out

Injuries

  • {{ shortStatus(x.status) }} {{ x.name }} — {{ x.note || 'Watch the report.' }}

News

  • {{ newsBadgeLabel(n) }}{{ typeof n === 'string' ? n : (n.text || n.note || '') }}
▸ Ask Grok Live

Answer

Why

Checking sources…

Why{{ askWhyData.ai && askWhyData.ai.used ? ' · AI' : '' }}

Sources only

{{ askWhyData.error }}

Recommended pickups

Waiver tip

{{ pickupSummary }}

{{ p.rank }}

{{ p.name }} · {{ p.pos }} · {{ p.team }}

{{ p.needed === false || p.priority === 'optional' ? 'Nice to have' : 'Worth a claim' }}

~{{ Number(p.proj).toFixed(1) }} pts expected {{ Number(p.owned).toFixed(0) }}% rostered {{ shortStatus(p.status) }}

{{ p.why }}

vs lineup: {{ p.compareTo.note || ('Compare to ' + p.compareTo.name + (p.compareTo.proj != null ? ' (' + Number(p.compareTo.proj).toFixed(1) + ')' : '')) }}

Drop: {{ p.dropCandidate.name }} ({{ p.dropCandidate.pos }}) — {{ p.dropCandidate.note }}

You're fine — no pickup needed right now

{{ pickupSummary || 'Nothing on waivers clearly beats what you already roster at the same position. Skip spare quarterbacks and kickers when those spots are covered.' }}

▸ Ask Grok Live

Answer

Why

Checking sources…

Why{{ askWhyData.ai && askWhyData.ai.used ? ' · AI' : '' }}

Sources only

{{ askWhyData.error }}

Player compare

My player

{{ compareMy?.name || '—' }}

{{ compareMy.team }} · {{ compareMy.pos }} · {{ shortStatus(compareMy.status) }}

~{{ fmtScore(compareMy.proj) }} pts expected

Other

{{ compareOther?.name || '—' }}

{{ compareOther.team }} · {{ compareOther.pos }} · {{ shortStatus(compareOther.status) }}

~{{ fmtScore(compareOther.proj) }} pts expected

Summary

Live
{{ compareResult.verdictLine }}
{{ compareResult.loserLine }}

{{ compareResult.summary }}

  • {{ b }}

Coach pick

{{ compareBanner }}

▸ Ask Grok Live

Answer

Why

Checking sources…

Why{{ askWhyData.ai && askWhyData.ai.used ? ' · AI' : '' }}

Sources only

{{ askWhyData.error }}