Skip to main content Super Bowl Indicator For ThinkOrSwim (FREE) Skip to main content Skip to content
Master the TTM Squeeze with our comprehensive 19-module course Start Learning →
TOS Indicators
  • Tools

    Categories

    • Indicators
    • Backtesters
    • Scans
    • Dashboards
    • thinkScript
    • Member Resources
    Browse Full Library

    Featured Tutorials

    Heiken Ashi Trend Indicator
    Heiken Ashi Trend Indicator
    Indicators

    Download our Custom Heiken Ashi indicator for ThinkOrSwim. Full ThinkScript code, formula...

    Learn more →
    Commodities Tracker
    Commodities Tracker
    Indicators

    For acceleration signals: trend-following strategies and buying pullbacks. For deceleration signals: short...

    Learn more →
    Build an Election Backtester in 10 Minutes
    Build an Election Backtester in 10 Minutes
    Backtesters

    Learn how to create a Post-Election Backtester in ThinkOrSwim to analyze market...

    Learn more →

    Popular Posts

    Unusual Volume
    Unusual Volume
    Scans

    Build 4 scans to easily find stocks with greater than...

    Learn more →
    Upcoming Earnings with High Short Interest
    Upcoming Earnings with High Short Interest
    Scans

    Build a scan to find stocks that are likely to...

    Learn more →
    Unusual Volume Pro Scans
    Unusual Volume Pro Scans
    Scans

    4 additional scans to find unusual volume overlapping with key...

    Learn more →
  • Courses
    Squeeze Course
    Squeeze Course
    19 Modules

    Scan, backtest, and trade the TTM Squeeze setup with precision.

    Unlock Course →
    Earnings Course
    Earnings Course
    3 Modules

    Master earnings plays with free indicators and proven strategies for ThinkOrSwim.

    Unlock Course →
    V-Shaped Reversals
    V-Shaped Reversals
    7 Modules

    Identify and trade powerful V-shaped reversal patterns with confidence and precision.

    Unlock Course →
    Fibonacci Trading
    Fibonacci Trading
    4 Modules

    Learn to trade Fibonacci retracements and extensions in ThinkOrSwim effectively.

    Unlock Course →
  • Products
    Futures Volatility Box Premium
    Futures Volatility Box

    Volatility models for 10 major futures markets, including micros & SPX.

    Explore Futures VB →
    Stock Volatility Box Premium
    Stock Volatility Box

    Dynamic support & resistance for 595+ stocks/ETFs, with a live scanner.

    Explore Stock VB →
    Opening Range Breakouts Premium
    Opening Range Breakouts

    Powerful live scanner & backtester for ORB strategies on 595+ stocks.

    Explore ORB Setups →
My Account
Back to Tutorials
Beginner-Friendly 25 mins

Super Bowl Indicator

How effective is the Super Bowl in predicting market returns? Test this stock market theory, going back to the very first Super Bowl.

Download Indicator
How to install in ThinkOrSwim →
Table of Contents
  • Step-by-Step Coding Guide for the Super Bowl Indicator
  • Final Thoughts and Analysis

Introduction

The Super Bowl Indicator, also known as the Stock Market Predictor, is a popular myth that suggests that the outcome of the Super Bowl can predict the direction of the stock market for the coming year.

This theory states that:

  • If a team from the American Football Conference (AFC) wins, it is a bearish signal for the stock market
  • If a team from the National Football Conference (NFC) wins, it is a bullish signal for the stock market

In this tutorial, we will put this theory to test, by building our very own Super Bowl Indicator.

Along the way, we will examine the underlying assumptions and principles, and evaluate its accuracy and reliability as a predictor of stock market performance.

Step-by-Step Coding Guide for the Super Bowl Indicator

Step 1: Setting Up Inputs

We begin by creating inputs in ThinkOrSwim. These inputs provide flexibility, allowing you to toggle chart bubbles and labels on or off, depending on what you wish to visualize. Here’s how you set these inputs:

input chartBubblesOn = yes;
input labelsOn = yes;

These inputs are Boolean types, defaulted to “yes,” enabling both chart bubbles and labels on the chart. Later on, we’ll use these variables to control which features are displayed.

Step 2: Defining Conference Values

Next, we define constant values to represent the AFC and NFC conferences. These will make it easier to distinguish which conference each Super Bowl winner belongs to, enabling more straightforward comparisons.

def nfc = 1;
def afc = -1;

These simple definitions will help us set up the rest of the code for determining Super Bowl winners based on conference affiliations.

Step 3: Classifying Super Bowl Winners by Year

In this step, we’ll assign each Super Bowl winner to the appropriate conference based on the year. This block uses conditional statements to tie each year to either the AFC or NFC, which will allow us to visualize changes over time. You can use data from an external source, like Wikipedia, to ensure accuracy when inputting the winning conferences.

def SuperBowlWinner = if getYear() == 2024 and getYear()[-1] == 2025 then afc 
else if getYear() == 2023 and getYear()[-1] == 2024 then afc 
...
else if getYear() == 1967 and getYear()[-1] == 1968 then nfc 
else 0;

This code block runs through each year and assigns the appropriate value (AFC or NFC) based on the Super Bowl’s outcome. You’ll need to ensure that all years from 1967 onward are accounted for, allowing for comprehensive analysis.

Step 4: Calculating Yearly Market Stats

Now, let’s add code to calculate the market’s annual percentage change. This is crucial for understanding how each Super Bowl outcome correlates with market performance:

def yearChange = (close(period = AggregationPeriod.Year) - open(period = AggregationPeriod.Year))/(open(period = AggregationPeriod.Year));

def totalAFCWinners = TotalSum(SuperBowlWinner == afc);
def totalNFCWinners = TotalSum(SuperBowlWinner == nfc);

def AFCPctChange = if SuperBowlWinner == afc then yearChange else 0;
def NFCPctChange = if SuperBowlWinner == nfc then yearChange else 0;

def averageAFCPctChange = TotalSum(AFCPctChange)/totalAFCWinners;
def averageNFCPctChange = TotalSum(NFCPctChange)/totalNFCWinners;

By calculating the yearChange, we can analyze each year’s performance and store the results for AFC and NFC teams separately. This step provides valuable data on annual market trends and the average percentage change for each conference’s winning years.

Step 5: Adding Chart Bubbles

Chart bubbles enhance the visual appeal and functionality of the Super Bowl Indicator. With bubbles, you can quickly identify Super Bowl winners and corresponding market changes each year. Here’s the code to add these bubbles:

AddChartBubble(chartBubblesOn and SuperBowlWinner, close, "Winner: " + if SuperBowlWinner == afc then "AFC \nYear Change: " + AsPercent(yearChange) else "NFC \nYear Change: " + AsPercent(yearChange), if SuperBowlWinner == afc then color.pink else color.cyan);

This line creates a bubble that displays the conference of the Super Bowl winner, along with the market’s percentage change for that year. You can modify the colors to your preference, making it even easier to distinguish AFC and NFC years.

Step 6: Adding Labels for Total Wins and Averages

With labels, we can summarize the total number of wins for each conference and the average percentage changes. This step provides a high-level view of the market impact by Super Bowl outcomes.

AddLabel(labelsOn, "AFC Wins: " + totalAFCWinners + " | Avg Pct: " + AsPercent(averageAFCPctChange), color.pink);
AddLabel(labelsOn, "NFC Wins: " + totalNFCWinners + " | Avg Pct: " + AsPercent(averageNFCPctChange), color.cyan);

Labels condense all the data into a more digestible format, making it easy to see overall trends at a glance. This feature provides immediate context for both AFC and NFC performance over the years.

Step 7: Building a Custom Excel Sheet (Optional)

If you want to expand the analysis, consider creating a custom Excel sheet. Enter historical Super Bowl winners, categorizing them by conference. Then, bring this data into ThinkOrSwim for analysis. By using Excel, you can easily update the data annually and even experiment with other variables.

For this process, set up columns in Excel for the year, conference, and market change. Use ThinkOrSwim’s import function to streamline the transition from Excel to the platform.

Step 8: Calculating Averages Manually

In this part, we create our own averaging function for more flexibility. Rather than using built-in ThinkOrSwim functions, this manual approach gives greater control over how data is processed, especially for separating AFC and NFC years:

def averageAFCPctChange = TotalSum(AFCPctChange)/totalAFCWinners;
def averageNFCPctChange = TotalSum(NFCPctChange)/totalNFCWinners;

This method ensures that the averages reflect only the years in which each conference won the Super Bowl, allowing for more precise analysis.

Step 9: Testing and Fine-Tuning

Before finalizing the indicator, test it on different time frames and chart types. You might find certain settings reveal more about the market’s reaction to Super Bowl outcomes. Experiment with other markets, such as the Dow Jones or NASDAQ, to see how they align with the Super Bowl theory.

Adjust the input variables and test on various periods. These tests will show whether the indicator holds any significant insights or is purely coincidental fun.

Final Thoughts and Analysis

By completing this tutorial, you’ve not only built a fully functioning Super Bowl Indicator, but you’ve also gained insights into the ThinkOrSwim platform’s data handling capabilities. With the flexibility of inputs, chart bubbles, and labels, this indicator is a unique tool for exploring historical trends based on a famous football event.

Remember, the Super Bowl Indicator is meant for entertainment rather than scientific analysis. The purpose here is to help you explore new coding techniques and see how even non-traditional data points can be visualized in ThinkOrSwim. You can find the full script and Excel data template on our website for further experimentation.

Super Bowl Indicator.ts
#TOS Indicators

#Home of the Volatility Box

#Indicator Name: Super Bowl Indicator

#Full tutorial here: tosindicators.com/indicators/superbowl

### Inputs ###


// ... 147 more lines ...

Unlock This Code

Create a free account to access the full source code and download files.

Create Free Account Login
To build a Super Bowl indicator in ThinkOrSwim, start by creating a new study and define constants (def nfc = 1; def afc = -1;). Then create a large conditional statement using if getYear() == [YEAR] and getYear()[-1] == [YEAR+1] then [CONFERENCE] for each Super Bowl year from 1967-present. Use Excel formulas to generate this code automatically rather than typing 56+ conditions manually.
The Super Bowl Indicator theory, discovered in 1978, states that if an NFC team wins the Super Bowl, the stock market will rise that year, while an AFC team win predicts market decline. Historically accurate about 75% of the time initially, but only 50% accurate in recent decades. This is a non-scientific theory used here for educational purposes to teach ThinkScript programming and data analysis.
Create an Excel column with a formula like ="if getYear() == "&A2&" and getYear()[-1] == "&A2+1&" then "&IF(C2="NFC","nfc","afc")&" else ". Copy this formula down for all years, then copy the entire column and paste into your ThinkScript editor. This automates creating large conditional statements and prevents manual typing errors.
Use aggregation periods to force yearly calculations: def yearChange = (close(period = AggregationPeriod.Year) - open(period = AggregationPeriod.Year))/(open(period = AggregationPeriod.Year)); This calculates percentage change from year open to year close regardless of your chart timeframe, ensuring consistent yearly performance measurements.
Use \n for line breaks in chart bubble text: AddChartBubble(condition, close, "Winner: AFC \nYear Change: " + AsPercent(yearChange), color.pink); The \n creates a new line, allowing multi-line information displays. Combine with conditional logic to show different content based on data values.
Create input variables at the top: input chartBubblesOn = yes; input labelsOn = yes; Then use these in your conditions: AddChartBubble(chartBubblesOn and SuperBowlWinner, close, text, color); This creates checkboxes in the indicator settings allowing users to show/hide different elements for better performance and customization.
Build custom averages using TotalSum and division: def averageAFCPctChange = TotalSum(AFCPctChange)/totalAFCWinners; First create conditional variables that store values only when conditions are met (AFCPctChange = if SuperBowlWinner == afc then yearChange else 0), then sum those values and divide by the count. This avoids division-by-zero errors and handles conditional data.
Yes, the indicator works on any market with sufficient historical data. SPX provides data back to 1967 (first Super Bowl), while QQQ starts around 1999 and individual stocks vary. Simply apply the indicator to different symbols to see how the Super Bowl theory performs across various markets. The data automatically adjusts to whatever timeframe the symbol supports.

Here are some resources that you may find useful:

  • How to import an indicator into ThinkOrSwim (video tutorial)
Featured Tools:
Stock Volatility Box

Stock Volatility Box

Spot reversal zones across 600 stocks & ETFs.

  • Hourly & daily models
  • Powerful Live Scanner
  • Built for day traders
Futures Volatility Box

Futures Volatility Box

Pinpoint reversal zones in 10 major futures markets.

  • 5 models (incl. Scalper)
  • ThinkOrSwim & TradingView
  • SPX traders
ORB Setups

ORB Setups

Find the best Opening Range Breakout setups.

  • Powerful real-time scanner
  • Instant backtests
  • 2+ years data

Get Free Access

Create a free account for downloads and new tutorial alerts.

Create Free Account

More Tutorials Like This

Wheel Option Calculator

Wheel Option Calculator

Beginner • 11 minutes
Anchored VWAP

Anchored VWAP

Beginner • 8 minutes
Cumulative TICK

Cumulative TICK

Beginner • 21 minutes

Ready to Trade With an Edge?

Join 40,000+ traders using institutional-grade tools for ThinkOrSwim.

Get the Bundle
TOS Indicators

Premium thinkorswim indicators, scans, and trading tools to help you trade smarter.

ThinkOrSwim Tools

  • Indicators
  • Scans
  • Backtesters
  • Dashboards
  • thinkScript
  • Browse All

Courses

  • Squeeze Course
  • Earnings Course
  • V-Shaped Reversals
  • Fibonacci Trading

Products

  • Futures Volatility Box
  • Stock Volatility Box
  • ORB Setups
  • Shop All

Guides

  • TTM Squeeze
  • Automated Trading
  • Volatility Trading
  • Opening Range Breakouts
  • Trade Reports
  • Contact Us

© 2026 TOS Indicators. All rights reserved.

Privacy Policy Terms of Service Disclaimer

The information contained on this website is solely for educational purposes, and does not constitute investment advice. The risk of trading in securities markets can be substantial. You must review and agree to our Terms of Service prior to using this site.

U.S. Government Required Disclaimer - Commodity Futures Trading Commission. Futures and options trading has large potential rewards, but also large potential risk. You must be aware of the risks and be willing to accept them in order to invest in the futures and options markets. Don't trade with money you can't afford to lose. This website is neither a solicitation nor an offer to Buy/Sell futures or options. No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed on this website. The past performance of any trading system or methodology is not necessarily indicative of future results.

Individual results may vary, and testimonials are not claimed to represent typical results. All testimonials are by real people, and may not reflect the typical purchaser's experience, and are not intended to represent or guarantee that anyone will achieve the same or similar results.

TOS Indicator's Traders and employees will NEVER manage or offer to manage a customer or individual's options, stocks, currencies, futures, or any financial markets or securities account. If someone claiming to represent or be associated with TOS Indicator solicits you for money or offers to manage your trading account, do not provide any personal information and contact us immediately.

CFTC RULE 4.41 - HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY, SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.