Methodology

01 How a week works

The forecast stays sealed and the proof stays public because the two are published at different times. Nothing is edited or withdrawn in between.

Sunday 18:00 ET · Seal

Seven models — two trained in-house and five open foundation models — each call every stock and ETF in the fixed universe. Every call is hashed individually with a salt, and one Merkle root is taken over the whole set — cryptographically committed before Monday's market open and publicly timestamped on Bitcoin and by two RFC 3161 authorities. A model that declines a name is sealed as an abstain.

hashes/<model>/<week>/<ticker>.sha256

Monday–Thursday · Sealed

The live move is tracked against each sealed forecast without revealing it. A call reads ahead or behind mid-week — never win or loss, because nothing is resolved yet.

<week>.manifest.ots

Friday 18:30 ET · Label

Each call is graded against Friday's close and published as a label — win, loss, scratch, or abstain — under the grading rule below, and the label file is timestamped before the audit beacon fires. The call's own contents and salt stay sealed.

labels/<week>.json

Saturday 00:00 ET · Audit · Kept

Spot-checked weekly by a public randomness beacon we cannot influence: a sample of at least 20 of that week's calls, plus every scratch and every abstain, is opened with its salt so anyone can check it against the hash. Every week stays in the archive, and each week's encrypted archive opens automatically 104 weeks after it is sealed. A missed deadline is written into a hash-chained incident log, never fixed in place.

audits/<week>/<model>/<ticker>.json

02 What verification proves

A week that passes full verification establishes exactly the following, and nothing more:

03 What it does not prove

Verification does NOT prove:

Nothing in this record is investment advice.

04 The honesty statement

Per the honesty template this record is built on, the timestamp "removes exactly one trust assumption — that we could have backdated our own record — and that is all it removes."

05 The grading rule

Forecasts are published for a five trading day horizon and are scored against the closing price on the final session of that week. The graded move is the week's percent change, rounded to two decimals. A call is a win where that move is in the called direction and a loss where it is against it; a move of exactly 0.00 is a scratch, reported in full and counted as neither. Grading is on direction alone, before any allowance for trading costs. A name a model declines to call is sealed as an abstain, opened in the audit, and counts as neither a win nor a loss. The normative definition, including the exact rounding rule, is §8.3 of PROTOCOL.md in the public repository.

06 The universe rule

The models never choose what they are allowed to call. Membership is computed from public data by a rule anyone can run, committed to the public repository before it takes effect, and recomputed on the first of January, April, July, and October.

The universe is 100 common stocks — US-listed, ranked by median daily dollar volume over the trailing 90 calendar days, priced above $5, with market capitalisation above $10B — plus 19 fixed ETFs across index, sector, macro, and international categories. Leveraged and inverse ETFs, crypto and crypto ETFs, and non-US listings and FX are excluded.

The full rule — the exact screening pipeline, the fixed ETF list, and the refresh audit trail — is published at tensorswing.ai/universe.

07 Check it yourself

Every manifest is anchored to the Bitcoin blockchain via OpenTimestamps — anyone can verify the timestamp without trusting us. The record is fully checkable by any subscriber, with nothing to install beyond a terminal and the public repository:

$ git clone https://github.com/YermekIbrayev/tensorswing-record.git
$ cd tensorswing-record
$ python3 scripts/verify.py <week>
$ ots verify <week>.manifest.ots -f manifests/<week>.manifest.json

08 The record's documents

The record and its verification tooling are public.