Structural Break Real-Time: may infer use prior completed-series state?

For the current Structural Break Real-Time competition, may `infer()` maintain a **forward-only summary of series that have already been completely processed** and use that summary when scoring later series?

The proposed state would:

- run with parallelism 1;

- contain only clean-history summaries and prediction trajectories from previously completed test series;

- never use test labels, data files, a future point of the current series, or the current series’ final horizon;

- yield each prediction before consuming the next online point; and

- never revise any earlier prediction.

Or must every series’ predictions be independent of all other test series?

If forward-only cross-series state is allowed, is the series order guaranteed to be stable/deterministic in public and out-of-sample scoring?

Hello Allomancer,

Yes, that’s totally doable. You can detect when a time series is over after the for loop:

def infer(...):
    yield

    for x_historical, x_online in datasets:
        for point in x_online:
            yield result

        ...  # previous timeseries just ended, record a summary

Even though the order is deterministic, making it easier for participants to debug their code, we never mentioned one. Therefore, your code should function the same way whether the order is the same or random.

For the Out-of-Sample, your model will only be run once on a brand new dataset. I’m not sure if how a stable ordering would be useful in that case.

Following up on the earlier answer that infer() may keep a forward-only summary of already-completed test series and use it when scoring later ones: how does that interact with the determinism requirement (re-run on 10% of the data must reproduce predictions within 1e-8, and non-deterministic output is ineligible for rewards)?

A prediction that uses a forward-only summary of previously completed series is deterministic given the dataset, but a 10% subset contains a different set of prior series, so predictions on the common series would differ by more than 1e-8 between the full run and the 10% re-run. Is that acceptable (i.e., the check compares each run against itself / a re-run on the same subset), or does the 10% re-run need to reproduce the full-run predictions — which would effectively rule out any use of cross-series state despite it being mechanically allowed?

Hello Ionut,

I actually wrote a long explanation here: Leaderboard comparability after the June 8 real-time data-access fix — were pre-fix scores rescored? - #2 by enzo

In short, trying to persist state across time series will likely result in your code not being deterministic based on when it starts.

  • Depending on the number of INFER_PARALLELISM, if you run the full dataset, the runner will start at regular intervals.
  • However, during the determinism dataset, those offsets will be unique.

Here is a visual representation:


(Feedbacks are welcome as I am not the best designer.)

There seems to be a general misunderstanding of this mechanism. I should add it to the documentation.


P.S.: It’s only 10%, not 30%. I recently found out that the documentation was outdated, but the change happened a month after the competition started.