Query Situations
Explore the historical database yourself. Select conditions such as team, opponent, point spread, previous game result, rest, day of week, and other factors. The Optimizer finds the historical games satisfying those conditions.
A current subscription is required for Query Situations and Night Shift.
SnoopData Account
Password reset email sent.
Open the link in your email to create a new Optimizer password. The link may open SnoopData in a new browser tab; you may then close this tab.
SnoopData
Discover Winning Patterns
The Optimizer for Pro Football finds significant patterns in historical pro football data in an attempt to discover situations with high predictive power. The software combines historical searches, automated pattern discovery, and weekly prediction tools into a single research environment.
The Optimizer is designed around a simple idea: use historical data to find interesting situations, save the strongest discoveries, and determine whether those situations apply to upcoming games.
Explore the historical database yourself. Select conditions such as team, opponent, point spread, previous game result, rest, day of week, and other factors. The Optimizer finds the historical games satisfying those conditions.
Let The Optimizer do the searching for you. Select a Research Focus and Night Shift automatically searches the historical database for interesting situations and saves qualifying discoveries in your current archive.
Your archive is your collection of Night Shift discoveries. The Optimizer also includes the read-only SnoopData Starter Archive so a new user has historical situations to explore immediately and can save an editable copy as My Starter Archive.
Compare upcoming games with the situations in your currently loaded archive. Matching situations can be loaded into Query Situations so you can examine the historical evidence behind them.
When The Optimizer identifies a situation that applies to an upcoming game, load that situation into Query Situations and examine the historical games behind it.
This lets you see what produced the result rather than simply accepting a prediction because the computer generated it.
The Optimizer finds the patterns. You evaluate the evidence.
★★★ O/U: Under
O17-U43-P2 · Z = -3.36 · 62 games
Home Team, Monday, Home, previous Loss, previous site Road, seasons 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016
A Night Shift discovery from the SnoopData Starter Archive. Examine the historical games behind a situation in Query before deciding what it means.
Query Engine
Current Situation
Home Team.
Run a query, choose ATS or O/U, then add this query situation to the current archive.
| Date | Day | Type | Season | Week | Team | Opp | Site | Spread | Total | Actual | O/U | Score | ATS | SU | Prev | Opp Prev | Days | W Streak | L Streak | Team % | Opp % |
|---|
Learn
Query Situations lets you find historical football situations by selecting conditions such as team, opponent, point spread, previous game result, rest, day of week, and other factors. You ask the database a question by selecting values and ranges in the Query screen. The Optimizer then finds the historical games that satisfy those conditions.
A Situation is a collection of factors together with the item selected from each factor.
These selections define one historical situation: Detroit playing at home after a loss. SnoopData searches the database for every game that matches all of the selected conditions.
Choose a team perspective first. For the other factors, leave a choice at All or Any when you do not want to restrict the search. Add only the conditions that define the situation you want to investigate.
The point spread is a handicap given to the underdog, or equivalently a number taken away from the favorite. In SnoopData, a positive spread means the team is an underdog, a negative spread means the team is a favorite, and 0 is pick-em.
Enter a point-spread range using the two boxes labeled Spread Min and Spread Max. The order does not matter: -3 to 3 is the same range as 3 to -3, and -3 to -7 is the same range as -7 to -3.
To search for one exact spread, enter the same value in both boxes, such as -3.5 and -3.5. You can set any spread range whose endpoints are between -20 and +20, using half-point increments.
After selecting the values that define your situation, click Run Query. The results are displayed below the query controls. To start over, click Clear Query, choose new conditions, and run another query.
The Current Situation line summarizes the conditions you selected. The summary boxes then show the number of matching games and the principal results for those games.
The Matching Games table is especially important. It lets you inspect the individual historical games behind the summary instead of relying only on the percentage or Z-score.
If you find an interesting result yourself, choose ATS or O/U under Save Result and click Add Query Situation to Current Archive. The situation is then available to the archive and can be considered by This Week's Predictions just like a Night Shift discovery.
Query Situations is also the final verification step in The Optimizer program flow. When Night Shift or This Week's Predictions identifies an interesting situation, load or reproduce its conditions here and examine the historical games behind the result.
The purpose is not merely to find a large number. It is to investigate the evidence that produced it.
Z-scores, sample size, and statistical interpretation are discussed separately in the Analysis documentation.
Night Shift V1
Choose Home Team, Visiting Team, Neutral Team, or a specific NFL team, then select the historical season range. Night Shift uses those choices for every search and saves situations with at least 10 games and |Z| ≥ 1.75.
Current Working Archive: Untitled Archive · 0 situations · Saved
💾 Reminder: Save your current Night Shift archive before exiting SnoopData.
Showing the best archived discoveries. Use the filter above to display ALL, O/U, or Teams.
| Date Found | Window | Type | Z | Games | Record | Recommend | Situation | Query |
|---|
A read-only collection of curated SnoopData situations. Open it to explore situations or load them into Query. When you save it, The Optimizer creates My Starter Archive, your own editable copy.
Open an archive to make it the Current Working Archive. Saving does not stop Night Shift or start a new archive.
To share an archive: Click Export to download its .json sharing file, then send that file to another SnoopData user. The recipient clicks Import Archive and selects the file.
Cloud archives: preparing…
No personal saved archives yet.
Learn
Night Shift automatically searches the historical games database for interesting situations. Instead of requiring you to construct each query yourself, Night Shift repeatedly selects combinations of factors, evaluates the historical results, and keeps qualifying discoveries in the current archive.
It is called Night Shift because once you start it, it can continue making searches while you are doing something else. You can return later to inspect the discoveries it has accumulated.
Night Shift does not save every search it attempts. It evaluates each search and retains only the good situations—those that satisfy its qualifying rules.
The Research Focus tells Night Shift what perspective to use while it searches. You can focus on a specific team or on a broader perspective such as Home Team, Visiting Team, or Neutral Team. Night Shift keeps that focus fixed while choosing the other search conditions automatically.
For example, select Home Team to see how the home team performs in different situations. Choose Visiting Team, Neutral Team, or a specific NFL team to change the research focus. The other factors used in each search are selected by Night Shift.
Click Start Night Shift to begin searching. While it runs, the search counter shows how many attempts have been made. Click Stop Night Shift whenever you want to stop the search. Stopping Night Shift does not erase the qualifying discoveries already collected in the current archive.
Night Shift evaluates the historical games returned by each attempted situation. Only situations meeting the current Night Shift qualification requirements are retained. The purpose of the archive is therefore to collect promising discoveries rather than every query Night Shift has tried.
Sample size and Z-score are important parts of this screening process. Their statistical interpretation is discussed separately in the Analysis documentation.
Filter Results controls what you see on the screen. It does not control what Night Shift searches for and it does not determine what is stored in the archive.
When ALL is selected, SnoopData displays all qualifying Night Shift discoveries in the current archive, regardless of category. Selecting another filter simply narrows the display.
Changing the display filter does not remove the other situations from the archive.
Each displayed discovery summarizes the type of result, its Z-score, the number of historical games, and the conditions defining the situation. Star ratings provide a quick visual indication of the strength of the displayed result.
Night Shift is a discovery tool. A strong result is a reason to investigate the situation further, not a substitute for examining the historical evidence.
The current archive is the collection Night Shift is presently building or that you have loaded for review. Saving an archive preserves those discoveries so they can be used again later, including when checking upcoming games.
The Optimizer also includes the read-only SnoopData Starter Archive, containing previously discovered historical situations. Saving it creates My Starter Archive, an editable personal copy that can grow through additional Night Shift research.
When Night Shift finds an interesting situation, click Load into Query next to that situation. The Optimizer opens Query Situations, enters the conditions that produced the Night Shift result, and runs the query automatically.
Once the situation is loaded, you can inspect the individual historical games, change any query condition, rerun the analysis, or save the query situation to the current archive.
Night Shift discovers the pattern. Query Situations lets you examine the evidence.
Night Shift
Choose games for a season/week and apply your archived Night Shift discoveries. Each result separates the prediction target from the historical evidence and can be loaded into Query for verification.
Using Archive: Untitled Archive · 0 situations
Learn
This Week's Predictions searches the situations in your archive—including Night Shift discoveries and situations you add from Query Situations—and identifies those that apply to the selected week's games. The purpose is not simply to produce picks. It is to connect upcoming games with historical situations that you can investigate further.
Select the Season and Week you want to examine, then load the games. SnoopData displays the games for that week before predictions are generated.
The Use Archive control determines which category of archived situations is considered when generating predictions. You can use all applicable archived situations or narrow the analysis to the available categories.
The Minimum |Z| setting lets you require a minimum absolute Z-score before an archived situation is included in the prediction results.
After the week's games are loaded, click Generate Predictions. SnoopData compares those games with the qualifying situations in the archive and displays the matches.
Review all the predictions: scroll through every game's results and examine each matching situation, including games with more than one prediction. Use Load into Query to check the historical evidence behind any match that interests you.
When a completed game has no saved pregame betting lines, it can still appear in the week's game list, but spread-dependent situations will not match without a verified spread.
The matching situations are ranked by Z-score and recommendation strength. Star ratings provide a quick visual indication of the strength of a displayed match.
A prediction is not meant to be accepted simply because The Optimizer displays it. Each matching situation can be taken back to Query Situations for further investigation.
There you can examine the complete set of historical games satisfying the conditions and see the evidence behind the result.
This Week's Predictions finds the match. Query Situations lets you investigate it.
Night Shift searches historical data and builds archives of qualifying situations. This Week's Predictions asks whether those archived situations apply to upcoming games. Query Situations then provides the final verification step.
Z-scores, sample size, and statistical interpretation are discussed separately in the Analysis documentation.
Analysis
The Optimizer uses historical win-loss results and Z-scores to help compare situations. Z-scores are useful because the percentage alone does not tell the whole story: the number of games in the situation also matters.
Suppose one situation has a record of 1-0. Its winning percentage is 100%. Another situation has a record of 9-1, a winning percentage of 90%.
The 9-1 result is much more informative. A perfect result can happen easily in a single game just by chance. Maintaining a strong percentage over a larger number of games is more difficult.
Z-scores take both the observed percentage and the sample size into account.
In statistics, a Z-score measures how many standard errors an observed result is from a reference value. For ATS analysis, The Optimizer uses 50% as the reference winning percentage. If the point spread is doing its job, either side of an ATS wager should be approximately equally likely to win.
The Optimizer compares the observed ATS winning percentage with 50% and scales the difference according to the number of games in the situation. The program performs this calculation automatically.
The same general idea is used for totals. The Optimizer compares Over and Under results with a 50% reference. A positive O/U Z favors Over; a negative O/U Z favors Under. Pushes are not wins or losses.
A large Z-score is more meaningful when it is supported by a reasonable number of historical games. This is why The Optimizer displays the number of games along with the record, percentage, and Z-score rather than presenting any one number by itself.
The Optimizer can examine a very large number of possible situations. With enough searches, some apparently impressive results will occur simply by chance.
This is the statistical problem of multiple comparisons. A large Z-score found after thousands of searches should therefore be treated as a discovery worth investigating, not automatic proof that the pattern will continue.
Large Z-scores identify interesting situations. They do not guarantee future results.
When The Optimizer finds a strong result, consider the Z-score together with the sample size and the conditions defining the situation. Then use Query Situations to inspect the individual historical games behind the result.
This is especially important for discoveries made by Night Shift, because Night Shift can perform many searches automatically.
The Optimizer finds statistical patterns. The user evaluates whether the evidence is convincing.
Technical Terms
This glossary explains the football, wagering, and statistical terms used throughout The Optimizer.
ATS describes the result of a game after the point spread is taken into account. An ATS Win means the selected team covered the spread; an ATS Loss means it did not. If the adjusted result is exactly tied, the ATS result is a Push.
The point spread is designed to balance the two sides of a wager. In The Optimizer, a positive team spread means the team is an underdog, a negative team spread means the team is a favorite, and 0 is pick-em. The Optimizer uses the spread when calculating ATS results. In Query Situations, enter two range endpoints from −20 through +20 in half-point increments; either order produces the same range.
The favorite is represented by a negative team spread; the underdog is represented by a positive team spread. A spread of 0 is pick-em.
The Over/Under, also called the total, is the predicted combined score of both teams. If the combined final score is greater than the total, the result is Over. If it is less than the total, the result is Under. If it equals the total, the result is a Push.
A Push occurs when the final adjusted result exactly equals the betting line. For ATS, this means the point-spread-adjusted score is tied. For O/U, it means the combined score exactly equals the posted total.
A Situation is a set of historical games satisfying a specified collection of conditions. For example, a situation might specify a team, previous game result, previous site, rest category, and selected seasons. Query Situations finds the historical games that meet all of the selected conditions.
A factor is a characteristic used to define a situation, such as Team, Home/Road, Previous Game, or Rest. An item is the selected value within that factor—for example, Team → Detroit or Previous Game → Loss.
Straight-Up refers to the actual game result without adjusting for the point spread. A team that wins the game has a Straight-Up Win even if it does not cover the spread.
Home means the team is designated as the home team, Road means it is the visiting team, and Neutral identifies a game played at a neutral site.
Previous Game describes whether the team won, lost, or tied its preceding game. Previous Site describes whether that preceding game was Home, Road, or Neutral.
Opponent Previous describes whether the current opponent won, lost, or tied its preceding game.
A Division Game is a game between two teams in the same NFL division.
A streak describes consecutive Straight-Up results entering the game. Win Streak identifies consecutive wins; Losing Streak identifies consecutive losses.
Team Win % to Date and Opponent Win % to Date describe each team's Straight-Up winning percentage entering the game. The Optimizer groups these percentages into ranges for querying.
Rest is based on the number of days since the team's previous game. The Optimizer groups rest as Short (5 days or fewer), Normal (6–8 days), or Long Rest / Bye (9 days or more).
Sample size is the number of historical games in a situation. It matters because an extreme percentage based on only a few games can occur easily by chance. The Optimizer displays sample size along with percentages and Z-scores.
A Z-score measures how far an observed result is from the 50% reference after accounting for sample size. The Optimizer uses Z-scores to help compare the strength of ATS and O/U situations. Continue below for a fuller explanation.
An Archive is a saved collection of qualifying situations discovered by Night Shift. Archives can later be used by This Week's Predictions to identify archived situations that apply to selected games.
Sharing archives: In Your Saved Archives, click Export to download a .json archive file to your browser's Downloads folder. You can send that file to another user of The Optimizer. The recipient opens Your Saved Archives, clicks Import Archive, and selects the shared file. Importing adds a saved copy without replacing the recipient's Current Working Archive.
The Current Working Archive is the collection Night Shift is presently building or the archive currently loaded for review and prediction matching. The Optimizer marks the archive as UNSAVED CHANGES when the working copy differs from its last saved version.
The SnoopData Starter Archive is a read-only collection of sample situations supplied with The Optimizer. Open it to review the situations and use Load into Query to reproduce and explore any situation. Saving it creates My Starter Archive, your own editable version.
Research Focus tells Night Shift which perspective to keep fixed while it automatically searches other conditions. The focus can be a specific team or a broader perspective such as Home Team, Visiting Team, or Neutral Team.
When many different situations are searched, some apparently strong results can occur simply by chance. This is why The Optimizer treats large Z-scores as discoveries to investigate rather than guarantees of future performance. Continue below for more discussion.
SnoopData
SnoopData develops research tools for exploring sports data and discovering statistically interesting patterns.
The Optimizer was created by PhD statisticians and data scientists who wanted to improve and automate the querying of sports databases to help discover predictive patterns and situations that might shed light on the outcomes of games.
Although SnoopData is not a gambling website, The Optimizer may be useful to sports bettors, handicappers, researchers, and others interested in using historical data to look for an edge.
Rather than simply presenting a prediction, The Optimizer lets users examine the historical situations and individual games behind the results. Users can explore the data themselves with Query Situations or use Night Shift to search automatically for statistically interesting patterns.
The goal is not to tell users what will happen next. It is to provide tools for investigating what has happened before—and whether those historical patterns may provide useful information about upcoming games.
For questions about The Optimizer for Pro Football, email us at support@snoopdata.com.