How the Koda data and the model estimate are made
Every market number on this site is a median of recorded prints or a count of live asks — except one, and it is labeled: the model estimate, a fitted statistical output published only where the sample supports it. This page is the pipeline behind the numbers: what counts as a sale, what is excluded, how the listings book stays honest, how the estimate is built and where it refuses, and — just as important — what none of it can see.
What counts as a recorded sale
Sale events come from OpenSea's events feed for the Otherside Koda collection (the collection is
resolved live from the contract, 0xe012…0903, never assumed). A record is kept when the
payment was ETH or WETH — sales priced in any other currency are excluded rather than
converted, so no exchange-rate assumption ever enters the record. Each record stores the token id,
the per-token price (bundle and multi-quantity fills are divided by quantity), the payment symbol,
the UTC day, the timestamp and the transaction hash.
The record is merge-only, deduplicated exactly on (transaction, token id) — top-up sweeps append what is new and can never truncate or rewrite history. Recorded history begins 2025-07-13 (a 400-day backfill taken 2026-08-16, topped up since). On top of the backfill, the same stream daemon that keeps deed prices live records confirmed Koda sales in real time — each flagged ETH or accepted-bid WETH at the moment it happens — so the sale history on a Koda's page can be ahead of the last backfill sweep.
ETH and WETH are never mixed
An ETH print is a buyer paying a seller's ask — ask-side price discovery. A WETH print is a seller accepting a standing bid — bid-side clearing, which systematically sits below asks. They answer different questions, so every table on the market page separates them: medians are computed from ETH prints only, accepted bids are counted in their own column, and each print in the feed is labeled. This is the same discipline the deed pipeline uses.
Median rules
Cohort medians are computed over 90-day and 365-day windows and shown only at n ≥ 5, with n printed beside every median — a median of three prints is trivia, not signal, and you should be able to see the difference. The "vs regulars" column divides a cohort's 90-day median by the all-regulars 90-day median: a measured ratio of what printed, nothing more. Two things the tables deliberately do NOT do: cohorts are not isolated (they overlap — a pendant Koda with a weapon is in both rows; the ratios are raw observed medians, not separated trait effects), and prices are not normalized for market level over time (a 365-day median mixes market regimes; we state it rather than adjust for it). The oracle computes these same cohort numbers with the same definitions at boot, so Ask Mr. Deeds and this site cannot quote different medians.
The listings book
The book is a full sweep of the collection's live listings — cheapest ETH/WETH-priced ask per Koda, per-unit for quantity listings. Sweeps are transactional: a partial page-walk never overwrites the previous book (a partial book written as truth would silently delist real listings), and a sweep that drops the listed count by more than 40% is refused without a manual override. The quoted floor is the lower of OpenSea's collection floor and the cheapest swept ask. Between sweeps, a websocket stream applies listings, sales, cancellations and order invalidations (which is how a fill on another marketplace removes its listing here) with a 10-minute reconcile pass, and pages poll the resulting file every 30 seconds. Listed counts are quoted against tradable supply (10,000 minus the 1,684 deed-locked Kodas — supply audit trail), because a locked Koda cannot be listed.
What this data cannot see
Honesty about the edges: private and off-marketplace transfers don't appear in the events feed, so a Koda that changed hands over-the-counter shows no print here. Wash trading is not detectable from price data alone — no filter here claims to remove it; thin cohorts are exactly where a motivated participant could move a median, which is one more reason every median carries its n. And a recorded print is a fact about one past transaction, not a statement about any other Koda. Full disclosures.
The model estimate
Until August 2026 this section read "no estimates anywhere — by design." That changed on 2026-08-23, deliberately and narrowly: Kodas now carry a model estimate where — and only where — the sale record supports one. The refusals are as much the product as the number.
What this number is. Think of it as a market-level estimate with evidence-backed premiums: a strong estimate of where the plain-Koda market clears, adjusted only by the few characteristics that have proven — in held-out sales — that they move price. As the market produces more sales, the model earns the right to become more individual; it does not pretend to be there yet.
The formula. estimate = level × weapon × mt-rung × pendant. The level
is the trailing median of plain-Koda ETH sales (plain = non-Mega, no weapon, no shared
Mega traits, no KodaPendant, no scarce ability), over a window that widens from 28 to 180 days
until it holds at least 8 prints. The multipliers are fitted to recorded ETH sales over 365 days
with recency weighting, empirical-Bayes shrinkage, and a monotonic ladder guard. Accepted WETH
bids are never in the fit — same discipline as everywhere else on this site.
What the data supports — and what it doesn't. Three effects clear the publishing bar: carrying a Weapon (currently ×1.444 — the strongest priced trait; among otherwise-plain Kodas, weapon carriers printed 1.43–1.73× the weapon-free level in every single month on record), the KodaPendant (×1.172, positive in all 14 months), and 2–3 shared Mega traits (×1.080 at two; the three-trait cohort is currently GATED — too few sales to fit, so those Kodas stay receipts-only). Three measurable effects are deliberately pinned at ×1 because they sit inside sale-to-sale noise: a single shared Mega trait (~3% pooled), the scarce abilities (~5%, and unstable across regimes), and everything in the LotM stat block. Publishing effects that small adds error, not information — the fit's own holdouts proved it.
Why the raw sales table and the model can disagree. The market page shows raw cohort medians, and those cohorts overlap — a weapon-carrying pendant Koda with two Mega traits sits in three rows at once, so a raw cohort ratio bundles every correlated trait its members happen to carry (56% of two-Mega-trait Kodas carry weapons, vs 31% of the collection). The model's multipliers are fitted jointly, so each one is the effect that remains after the others are accounted for. When a raw cohort looks stronger than its fitted multiplier, the difference is composition, not a hidden premium — and when a raw effect vanishes under joint fitting, it doesn't get published. The weapon premium is the model's own proof it works both ways: it looked large raw, survived joint fitting, and was added the day the evidence was checked.
Where we refuse. Megas never get a point estimate: 99 assets, a handful of prints a year, single sales moving the whole cohort — any number would be an invention with a confidence costume. Cohorts below the n ≥ 8 effective-sample gate stay receipts-only. Locked Kodas show no estimate — there is no standalone market to estimate into. At the current fit that means 8,137 Kodas carry an estimate and the rest carry a labeled refusal.
How we know it isn't nonsense. The fit validates walk-forward: refit each day exactly as the nightly build would have stood, predict the sales it hadn't seen, compare against the market level alone. Current scorecard: median miss 4.4% on 91 held-out sales vs 5.5% for level-only (mean miss 6.2% vs 12.8%). The fit refuses to publish itself if it loses that comparison, and the site build independently re-checks and drops the estimate layer rather than ship a losing fit. Model v2, coefficients as of 2026-09-11 — every page in this release is generated from that one coefficient file, refit nightly on the same runbook as the deed model.
What the estimate is not. It is not a price, not a floor, not a prediction of the next print, and not advice. It is the model's central read of a thin market that moves on single sales — the receipts on every page outrank it whenever they disagree.
Data as of 2026-09-11 14:23 UTC · Koda market ↩ · all Kodas ↩