# Developer portfolios — September 6, 2026

Quantitative study of the September 5 Steam snapshot, computed offline. No Steam
collection or store-image downloads. One bounded web search checked an official SNK
launch announcement to resolve a date error. Earlier research logs were not consulted. All new artifacts
are in this directory; source tables were not edited.

## Read this first

**This measures relationships between current catalog outcomes, not historical
audience transfer.** Every review total is observed on September 5. An earlier
game could have gained reviews after its follow-up launched, including because of
that follow-up. We cannot establish release-time reputation, returning-player
counts, follower conversion, sales, or a causal effect of experience.

**Steam creator-page IDs are not safe developer identities.** The initial audit
found pages shared by many differently named developers. The main study therefore
groups by exact normalized developer credit name (Unicode normalization,
case-folding and whitespace only). Unverified name changes are not merged.
Names pointing to multiple creator pages are conservatively excluded. Homonyms,
staff changes and ownership changes can remain. Developer credits can refer to
individuals or large organizations; there is no verified solo/indie flag.

The earlier genre-study game counts do not depend on this correction, but its
clan-based creator concentration/removal checks need caution. The source issue and
preliminary audit are preserved in `shared_creator_page_audit.csv`.

## Population and chronology

Of 184,664 source game apps, 102,394 are currently paid, valid dated released
records outside explicit-content descriptors 3/4. Removing multi-credit/missing
developer records (6,515), ambiguous-name records (2,814), and 52 remaining titles
explicitly marked demo/prologue/playtest/preview leaves **93,013 games credited to
59,259 normalized developer names**. This is not a manual quality or content audit.
The main study does not exclude particular genres.

The main catalog-shape population has 2–10 included releases through 2025, first
observed included release in 2010–2023, and latest in 2020–2025: 7,427 catalogs.
Of those, 1,248 have a game with at least 1,000 current reviews. The 2–5 and 6–10
subsets are separate sensitivities. Single-title developers are retained in the
longer-term release-presence table, not in multi-title concentration statistics.

Consecutive **eligible paid** releases define pairs. Free releases, jointly
credited games and excluded records may have occurred between them. Qualifying
gaps are 30–3,650 days. At most one pair, the latest qualifying one, represents
each developer in each period (2019–2022, 2023–2025, January–August 2026).
The primary 2023–2025 comparison contains 6,721 developers.

Dates prefer the existing original-Steam date where supplied, otherwise the Steam
release date. Steam release dates are not production dates or necessarily the
work's first public appearance. Bulk ports, editions and incomplete EA history
can alter order. Sensitivities exclude recorded EA and a recorded original release
over a year earlier; unknown history remains. Delisted games, changed names,
co-developed games and other platforms can make a catalog incomplete. No additional
observed paid release does not mean retirement, inactivity or loss of interest.

One independently verified source error was corrected locally: app 1498570,
The King of Fighters XV, has December 12, 2024 in the snapshot, whereas SNK's
official launch announcement explicitly includes Steam on February 17, 2022:
https://www.snk-corp.co.jp/us/press/2022/021701/ . `date_overrides.json` records the
source and `source_data.py` applies it only to this study's in-memory inputs. The
original snapshot is unchanged. All quantitative tables were regenerated. The
frozen 24-pair pilot retains its originally sampled members; the affected SNK pair
is marked invalid in `direction_pilot_outcomes.csv`, leaving 23 valid original
pairs (15 major activity changes, six related variations, two unclear). This
single repair is not an exhaustive date audit. Chronological claims remain
provisional where no independent first-release record was checked.

## Measurements and comparisons

- Reviews measure response scale, not sales or artistic value. Thresholds 100 and
  1,000 and >=80% positivity are explicit conventions.
- Current review totals naturally favor older games. Release-quarter percentile
  ranks offer a descriptive relative comparison, not equal-age historical counts.
- Catalog peak shares are mechanical concentration measures; a two-game catalog's
  largest game necessarily holds at least half of its reviews. Size sensitivities
  are essential. Comparing a follow-up with a selected peak also produces regression
  to the mean; a smaller later game is not automatically a disappointment.
- Expected 100-review counts use release quarter/current price strata with >=30
  cases and fallback. Gap/similarity comparisons additionally stratify on the
  predecessor's current-review band. Fallback estimates are calibrated globally
  or within prior bands. `full_cell_support` reports complete-cell support.
  Joint positivity ratios in `transition_groups.csv` only use date/price controls;
  do not confuse them with the more-adjusted volume ratios.
- First-versus-returning rows are raw descriptive reference groups. A first observed
  paid game is not evidence of an inexperienced maker. Returning developers are
  selected survivors, so differences do not estimate the effect of practicing.
- Similarity is Jaccard overlap of top-10 tags after administrative exclusions;
  top-20 is a sensitivity. The metric measures store-positioning overlap and is
  unreliable as a measure of creative departure. BYTEPATH/SNKRX and several sequels
  demonstrate the limitation. The 18-pair audit and additional 24-pair pilot retain
  actual descriptions and single-reader judgments. Pilot numerical outcomes were
  withheld until judgments were frozen, but names and aggregate selection criteria
  were visible. Neither audit is a representative market-wide novelty survey.
- Illustrated named catalogs are deliberately selected examples, not a random
  sample. `case_catalogs.csv` includes all matching full credits, flags co-developed
  and free records, and identifies which records entered the main study. This
  prevents calling the sole-credit subset an entire person's career.
- Chart intervals are 95% Wilson intervals, not corrections for selection, identity
  mistakes, current-state look-ahead or repeated comparisons.

## Reproduction

Using `../.venv/bin/python` from this directory:

1. `study.py`: freeze methods, build name-based identity table, catalogs and pairs,
   and generate the main aggregate tables.
2. `followups.py`: generate smaller-catalog/history checks, older-catalog strength,
   release-presence results, audits and case catalogs.
3. `direction_labels.py`: materialize the saved manual audit judgments. These are
   human-readable judgments recorded in the script, not automated classification.
4. `charts.py`: generate the two inspected PNG/SVG figures.
5. `checks.py`: validate accounting, pair identities and dates, source outcomes,
   expected-count calibration, sampled earlier-peak reconstruction, frozen labels,
   scripts and collection state. Also generates all-credit and date-history
   sensitivities and records source hashes.

`direction_pilot_outcomes.csv` joins the frozen manual labels to the source outcomes
by appid. No new classification is performed during that join.

The source snapshot is about games visible in the documented public catalogs, not
all Steam history. Interpret every career claim within this observation boundary.
