Indices equal-weight, base 100 at day −89; click a sector to filter
Movers 30-day change
Gainers
Losers
The floor click a column to sort, a row to open
| Sym | Title | Sector | Price | 1d | 30d | Vol | 90d |
|---|
| Sym | Title | Sector | Price | 1d | 30d | Vol | 90d |
|---|
This is a joke. Nothing here is a real market, a real price or real advice. Every book in the library catalog is listed as a security and its price is computed, deterministically, from Jack’s blog posts every time the page loads.
Three to five letters from the title (acronym, then first word), falling back to the author and description for Japanese titles; collisions get a letter suffix. Symbols are unique across the exchange.
base = 12 + 0.06 × pages + 0.22 × age. Nobody counted pages, so a page proxy stands in: a typical thickness for the type of book (manga 190, textbook 720…) plus half the description length. Age in years makes old books blue chips; unknown years are treated as 2000.
The title and description are tokenised (Latin words of three or more letters minus stopwords, light plural stemming, character bigrams for Japanese). For each post, every term the book shares with it contributes idf(term) × ln(1 + count in post), divided by the square root of the book’s term count. IDF is computed over all books plus all posts, so a rare shared word such as phenomenology is worth far more than history. Demand is the sum over posts.
price = base × (1 + K × demand) with K = 0.12. The chart covers the last 90 trading days, day 0 = today. Each blog post is an event on its publish date: books whose terms it uses jump by that post’s contribution. A low-amplitude, mean-reverting wobble is added from a mulberry32 generator seeded by the ticker, then pinned so the wobble is exactly zero today; the last point of every chart is the model price. Sector indices and the JACK composite are equal-weight averages of each book indexed to 100 at day −89.
Ratings are demand percentiles among covered books (top 10% strong buy, next 20% buy, 30% hold, 20% underweight, the rest sell; no shared words means no coverage). Analyst notes are assembled from templates and the top shared terms, nothing more.
The paper portfolio starts with 10,000 credits and lives in localStorage. Trades execute at the model price. Since prices only change when a post is published or edited, it is a very slow market. “Simulate session” adds animated intraday noise to the displayed prices for fun; it is labelled, fake, and does not affect trades.
Library: assets/data/library.json (the owner’s catalog). Posts: blog/index.json and the markdown under blog/posts/. If either cannot be fetched the page falls back to a bundled set of invented books and posts and says so. Selected symbol and sort order are kept in the URL hash.