Novus Stream Solutions
All tutorials

Novus Odds

Generate fictional seasons with Datasets and Synthetic Sports Replay

Datasets builds fictional seasons of teams, games, and sample odds you can export and study; Synthetic Sports Replay turns them into deterministic fixtures with a timeline you can replay.

Anyone building or teaching sports analytics hits the same wall: you need data with known properties, and real data has unknown ones. You cannot check whether a method recovers the truth if you do not know what the truth was.

Datasets solves that by generating fictional seasons — teams, games, and sample odds — from a process you configured. Synthetic Sports Replay then turns them into deterministic fixtures with a timeline you can step through, which makes them usable as a research archive rather than a one-off run.

Contents
  1. 1.1. Configure the universe, not just the run
  2. 2.2. Generate and export
  3. 3.3. Replay deterministically
  4. 4.4. Use it to test a method honestly
  5. 5.5. Feed the output into the other labs
  6. 6.6. Never present fictional data as real

Two ways to finish

Generate

Build a fictional season with properties you chose.

Replay

Step deterministic fixtures for teaching and archives.

  1. 1

    1. Configure the universe, not just the run

    Datasets asks you to define a world rather than a single experiment: teams, a schedule, and the scoring model underneath. Nine sport adapters are available, each with an independent performance and pricing model — Poisson for low-scoring sports, Gaussian for high-scoring ones.

    Choose the adapter that matches the question you are asking. A method that works on a Poisson soccer season and fails on a Gaussian basketball one has told you something specific, and that only means anything if the two generators genuinely differ, which here they do.

    • Nine sport adapters with genuinely independent models.
    • Poisson for low-scoring sports, Gaussian for high-scoring.
    • You know the true process, which is the entire point.
  2. 2

    2. Generate and export

    Generate the season and export it. Because you configured the process, you know the ground truth: the underlying strengths, the true probabilities, and the pricing assumptions. Any method you then run against the export can be scored on whether it recovered them.

    This is the property real data cannot give you at any price. With a real season you can only ever check whether a method agrees with the outcome, which conflates being right with being lucky.

  3. 3

    3. Replay deterministically

    Synthetic Sports Replay steps through fixtures on a timeline. Because the generation is seeded, the same configuration replays identically — which is what makes it usable for teaching, for a written-up experiment, or for an archive someone else can reopen.

    Reproducibility is the difference between a demonstration and an anecdote. If a result cannot be replayed by someone reading your write-up, it is a story about something that happened once.

  4. 4

    4. Use it to test a method honestly

    The strongest use is adversarial. Generate a season, run your method, and check whether it recovered the parameters you set. Then generate a season where the method should fail — different scoring model, tighter margins, fewer games — and confirm that it does.

    A method that never fails on synthetic data is not robust, it is untested. Finding the conditions under which it breaks is more valuable than another run where it worked.

  5. 5

    5. Feed the output into the other labs

    Generated seasons pair naturally with the rest of the platform. Send selection rules at them in the Model Comparison Lab, check calibration on the Statistics pages, and use the discrepancy detector to see which signals your method is actually leaning on.

    The whole platform shares one deterministic engine, so a seed carried between surfaces means the same world — which keeps a multi-step investigation coherent instead of comparing across three different random universes.

  6. 6

    6. Never present fictional data as real

    Everything Datasets produces is invented. The teams do not exist, the games did not happen, and the odds were never offered anywhere. When you publish, teach, or share an export, label it as synthetic — the value is in the known generating process, and that value evaporates the moment someone mistakes it for a record of real events.

    Novus Odds is explicit that it is an informational research tool and does not claim real-world profitability. Exports inherit that framing.

Known truth is the whole product

Generate a world rather than a run, and pick the sport adapter whose scoring model matches your question. Score a method on whether it recovered the parameters you set, then go looking for the conditions where it breaks. Carry the seed between labs so a multi-step investigation stays in one world — and always label exports as synthetic.

Frequently asked questions

Quick answers to common questions about this topic.

What can Datasets generate?

Fictional seasons of teams, games, and sample odds, using any of nine sport adapters — soccer, American football, ice hockey, basketball, baseball, tennis, golf, handball, and horse racing — each with an independent performance and pricing model.

Why use synthetic data at all?

Because you know the true generating process. That lets you score a method on whether it recovered the truth, which real data can never tell you — with real data you can only check agreement with outcomes, which conflates being right with being lucky.

Is a replay actually reproducible?

Yes. Generation is seeded, so the same configuration and seed replay identically. That is what makes a result something a reader can reopen rather than an anecdote.

Can I share an export?

Yes, but label it as synthetic. The teams do not exist, the games did not happen, and the odds were never offered. The value is the known generating process, and it disappears if the data is mistaken for a real record.