Mini Market
A daily market-decision game that tests expected-value judgment with generated puzzles, hidden answer keys, one-attempt sessions, profile stats, sharing, analytics, and tests.
What it is
Mini Market teaches decision quality. The player is not rewarded for guessing a hidden fact alone; they are judged on whether they found the edge and sized confidence appropriately.
The daily format gives it a small repeatable loop, while the reveal explains fair value, expected value, edge capture, and confidence in plain terms.
The loop it has to make believable
- 01
Built a market-decision game around expected value and confidence instead of a generic trivia score.
- 02
Derived puzzle answers from an explicit Bayesian model and cross-checked the math with Monte Carlo tests.
How it’s built
The engine computes posterior probability, fair value, expected value, and best action from explicit inputs. Puzzle generation samples scenarios and then asks the same engine to derive the answer.
That matters because the game is not hand-waving the answer key. Validation recomputes the answer, public APIs withhold solution data, and tests cover the domain logic, route behavior, analytics, and rate limiting.
Architecture
- Product loop
- Daily contract, noisy signals, quoted price, buy/sell/pass decision, confidence, fair-value reveal, share result
- Engine
- Closed-form posterior from prior and likelihood ratios, cross-checked with Monte Carlo tests
- Generator
- Deterministic daily puzzles starting 2026-05-23 with semantic validation against recomputed answer keys
- Persistence
- Prisma/Postgres puzzles, attempts, analytics, and rate-limit buckets when configured; in-memory fallback for local demos
What has to hold up
- Added deterministic daily generation plus semantic validation so explanations and answer keys stay tied to the same engine.
- Implemented daily/archive/profile/glossary routes, one-attempt behavior, calibration stats, analytics, sharing, rate limiting, and Prisma-backed persistence.
How I would present it
I would start with the product loop, then open the engine: prior, signals, likelihood ratios, posterior, fair value, action choice, and explanation.
The portfolio value is the domain boundary: product UI on top, tested inference/scoring core underneath.
Proof
VerifyRepository, checks, stack, status
- 01
Open the GitHub repo.
- 02
Read the architecture and edge-case sections.
- 03
Follow the documented proof path: README, tests, puzzle validator, Prisma schema, CI commands.
- Role
- Domain model, scoring engine, generator, API routes, product UI
- Scope
- Daily market-decision puzzle with explainable scoring
- Proof
- README, tests, puzzle validator, Prisma schema, CI commands
- Stack
- Next.js, React, TypeScript, Prisma, PostgreSQL, Tailwind CSS, Vitest
- Engine
- Bayesian
- Actions
- Buy/Sell/Pass
- Persistence
- Prisma/Postgres
- Backend
- Next routes