# Historical portfolios and authorship — September 6, 2026

Continuation of the portfolio study, investigating launch-time context, continuity
across different games, and quieter releases between more prominent works.

## Scope and source boundaries

The original fixed sample was 24 games: eligible paid catalogs credited to a327ex,
Rad Codex, Tuatara Games, Studio Fizbin and Desert Fox, plus Zachtronics' Eliza.
This was a deliberately selected case study, not a representative sample or a
new estimate of Steam-wide probabilities. The original September 5 snapshot and
name-based portfolio study supplied identities, descriptions and release dates.

An audit added three currently free Desert Fox titles (Bad Dream: Fever, Game For
Anna, DUMB: Treasure) because current price should not erase earlier work. Their
history is supplemental; the main pair/age comparisons retain the original 24
paid games. No older research logs or marketing research blogs were consulted.

There were 226 review-collection requests and 10 feasibility probes, below the
announced 250-request ceiling. The minimum measured interval between collection
requests was 2.000023 seconds. No retries, assets, account IDs, profile metadata or
avatars were collected. Review texts can contain whatever their authors wrote,
including links; no reviewer matching across games was attempted. Bulk network
collection remained paused throughout. All scoped collectors are now inactive.

## What was collected

- `review_pages/`: sanitized public API responses, including empty terminal pages,
  query parameters, timestamps, summaries and pagination provenance. The primary
  channel is all languages, all sentiments, purchase_type=steam, off-topic filtering
  enabled. See Steam's [review-list documentation](https://partner.steamgames.com/doc/store/getreviews).
- `reviews.parquet`: 16,353 unique records in the Steam-purchase channel, of which
  15,445 belong to the 24 primary paid games. The other 908 are a supplemental
  filtered subset of Bad Dream: Fever.
- `free_context_reviews.parquet`: 1,515 all-acquisition records for the three
  currently free titles. These include the overlapping 908 above. Deduplicating
  the two files gives **16,960 reviews across 27 games**.
- Two free games return zero in the Steam-purchase channel despite having 131 and
  41 all-acquisition reviews. Zero in that filtered channel must not be interpreted
  as zero audience. Paid and free acquisition channels are kept separate.
- The 24 primary game streams were paginated to empty responses. Twenty-two match
  their API summary totals exactly; Bad Dream: Coma and Kingsvein differ by one
  record each. The free all-acquisition streams match their summaries. The redundant
  Steam-purchase Fever stream also differs by one. No missing rows were fabricated.

The monthly histogram endpoint did not reconcile with the relevant review-list
populations under the tested parameters: BYTEPATH histogram sum 328 versus 306
Steam-purchase / 317 all-acquisition summary reviews; SNKRX 4,469 versus 4,197 /
4,337. Parameter probes did not resolve this. Histograms were retained for audit
but **not used as the historical count source**.

## What the history means

Counts reconstruct **when currently returned reviews were created**. They do not
recover reviews later deleted, hidden or filtered out. The current recommendation
and current text may differ from what was written at creation; no historical
positivity or historical wording is inferred. Reviews are not sales, owners,
followers or unique returning players.

For age comparisons, the recorded release date is accepted operationally when the
earliest surviving Steam-purchase review is within two days before to fourteen
days after it. All 24 primary games pass; their earliest reviews are within 3.2
days after the source date. This is a consistency check, not an independent audit
of every actual first release. Counts by day N include records created before
release + N days. Immature 365-day windows remain missing rather than being filled
with current counts. The separate first-review clock is a diagnostic only.

`historical_pairs.csv` retains 18 transitions among the original currently paid
games. It reconstructs predecessor and selected paid-catalog counts before each
later release. `free_catalog_context.csv` separately restores the currently free
Desert Fox games using all acquisition types; those columns must not be read as a
uniform paid-review metric. No causal effect of an intervening game is estimated.

## Review interpretation

`authorship_evidence.csv` holds 21 selected passages, IDs, dates, source locators
and paraphrased interpretations. These include support and counterexamples:
recognition, stated future purchase, explicit prior-play reports, backward
discovery, and rejection despite prior familiarity. Mentions of another game do
not automatically establish playing it or having followed the developer.

The 100-review pilot randomly sampled 50 English-marked Steam-purchase reviews
from each a327ex game before manual topic coding. Labels describe what a review
explicitly discusses, not inferred motives. Generic praise and genre analogies do
not become build-preference labels. Median review length is 35.5 words for the
BYTEPATH sample and nine for SNKRX, so cross-game mention-rate differences are not
interpreted as differences in how many players care about builds. One assistant
coded the packet; no independent inter-rater reliability is claimed.

Primary developer sources consulted for context:

- [Azalea on its maker's itch page](https://radcodex.itch.io/azalea): explicitly short adventure, distinct from the RPG catalog.
- [Rad Codex's profile](https://radcodex.itch.io/): a broader practice including browser experiments, not all visible on Steam.
- [Zachtronics' own description of its educational catalog](https://www.zachtronics.com/zachademics/): identifies technology as continuity between puzzle games and Eliza.
- [Eliza's official page](https://www.zachtronics.com/eliza/): the visual novel and its subject matter.

## Reproduction and files

Collection is complete; ordinary reproduction should run only local analysis:

1. `analyze_history.py`: game histories, monthly arrival counts, reconstructed
   prior context, histogram audit, topic screens and the deterministic random pilot.
2. `code_own_reviews.py`: materialize the saved manual topic judgments.
3. `evidence.py`: evidence selection, own launch windows and four quiet-release sequences.
4. `charts.py`: two PNG/SVG figures.
5. `validate.py`: identities, source count reproduction, temporal boundaries,
   pagination exhaustion, privacy-field removal, request caps/pacing, frozen labels
   and closed collection state. Final run passed 446 checks.

Use `../.venv/bin/python` from this directory. `probe.py`, `collect_reviews.py`
and `free_context.py` are collection provenance, not required analysis steps.
They use fixed targets and cached pages; do not start a fresh collection merely to
reproduce tables. `requests.jsonl`, the policy/status files and `validation.json`
retain the collection record and hashes.

`findings.md` contains the report, also delivered substantively in chat.
