No description
  • Python 85.6%
  • HTML 9.8%
  • Rust 2.9%
  • Shell 1%
  • TypeScript 0.7%
Find a file
Love Billenius f67e2afc5b feat(pin-exec): a Kelly cap set per run
The owner set 20% of the bankroll as the most one bet may take on the
anchored policy; the default stays 5%.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012NTmUzKB8Kq2hARrVLPqWZ
2026-09-28 10:56:10 +02:00
.claude feat: ledger-reminder hook — mechanical backstop for the write-down protocol 2026-07-03 14:25:39 +02:00
alembic refactor: switch from The Graph to Polymarket Data API 2026-04-27 17:38:11 +02:00
alembic_hltv feat: veto capture clock — observation-time stamps + poll log, as a resident poller (migration additive, NOT installed) 2026-08-13 21:23:08 +02:00
dashboard ops: run every executor from the workspace target 2026-09-27 13:06:04 +02:00
data feat: demo-feature chain as a daily build step 2026-09-12 06:20:44 +02:00
data_tmp feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
deploy feat(pin-exec): a Kelly cap set per run 2026-09-28 10:56:10 +02:00
docs feat(pin-exec): a Kelly cap set per run 2026-09-28 10:56:10 +02:00
logs feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
mika-tester research: mika-tester — isolated fundamental-model suite (Elo/Glicko/Kalman/TrueSkill/classifier) 2026-06-11 01:08:39 +02:00
recon_b feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
rust feat(pin-exec): a Kelly cap set per run 2026-09-28 10:56:10 +02:00
scratchpad ops: retrain once the store is rebuilt without moving prefire 2026-09-28 08:59:49 +02:00
scripts research: bets use the market-anchored p, λ 0.4 2026-09-28 10:46:22 +02:00
src fix(demoedge): take moving prefire out of serving 2026-09-27 20:12:12 +02:00
tests fix(demo): no grenades table, no unused-utility count 2026-09-28 07:42:33 +02:00
tmp feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_adj feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_arch feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_feas feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_judge feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_mapaff feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_recon_a feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_recon_a2 feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_vetoclock feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_vetoclock2 feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
youtube-cs-analysis refactor: reports -> docs/reports{,/archive}, hypotheses -> docs/hypotheses; banners 2026-07-03 14:18:19 +02:00
.env.example ops: scraping egress moves to home IP + SSH SOCKS tunnels 2026-09-07 17:16:26 +02:00
.gitignore docs: Sportmarket account MG reads 154 EUR 2026-09-28 10:35:25 +02:00
.python-version chore: scaffold project with uv, dependencies, and gitignore 2026-04-27 17:00:22 +02:00
_amp_test.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_amp_test2.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_ban_signal.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_chk_fairs.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_map1_b.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_map1_ll.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_map1_ll2.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_map1_test.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_pick_premium.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_recon_books.pkl feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_recon_clean.pkl feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_rev_q1.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_rev_q3.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
_rev_q4.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
AGENTS.md docs: canon (STATUS/LEDGER/RUNBOOK/EXPERIMENTS/DATA) + CLAUDE.md agent protocol 2026-07-03 14:23:06 +02:00
alembic.ini chore: add alembic config and initial migration 2026-04-27 17:00:30 +02:00
alembic_hltv.ini feat: integrate hltv_scraper as second module under src/ 2026-04-29 08:44:25 +02:00
CLAUDE.md Revert "docs: handover for the next session — the week of 2026-09-14..20" 2026-09-20 17:50:11 +02:00
probe_veto.py research: CS2 ideation — the own-pick premium (under verification), and two ceiling measurements that close slate work 2026-08-13 16:51:47 +02:00
probe_veto2.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto3.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto4.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto5.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto6.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto7.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
probe_veto8.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
pyproject.toml feat: one writer for the xK channel, fit on the pre-holdout span 2026-09-20 19:11:53 +02:00
README.md docs: canon (STATUS/LEDGER/RUNBOOK/EXPERIMENTS/DATA) + CLAUDE.md agent protocol 2026-07-03 14:23:06 +02:00
scratch_recon_a_db.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
scratch_recon_a_npz.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_order_pred.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_order_shape.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_pickprem_era.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_pickprem_probe.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_ppv_out.txt feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_bulkbench.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_cadence.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_rowcounts.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_sim.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_solvecost.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_solves.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
tmp_review_stamp.py feat: FIX 1 (type gate + wide-book gate) and FIX 2 (k<=1, skip-not-round-up) built and costed at $200 — not deployed 2026-08-14 10:32:46 +02:00
uv.lock fix(proxy): cap the SOCKS5 handshake so a blackholing tunnel cannot hang collectors 2026-09-07 17:41:41 +02:00

cs-data

Start here: current state & results → docs/STATUS.md · findings history → docs/LEDGER.md · operations → docs/RUNBOOK.md · agent protocol → CLAUDE.md · script index → scripts/README.md

Two ingest pipelines into one shared SQLite at data/polymarket.db:

  • polymarket-cs (this README) — Polymarket CS market trades
  • hltv-scraper — HLTV match, map, round, and player data; see src/hltv_scraper/README.md

The hltv pipeline writes only to hltv_* tables and uses a dedicated hltv_alembic_version row, so the two pipelines coexist without fighting each other's migrations.


polymarket-cs

Ingest Polymarket Counter-Strike market trades into a local SQL database.

Setup

uv sync
cp .env.example .env

No API keys required — uses Polymarket's public Gamma and Data APIs.

Usage

1. Discover CS markets

uv run polymarket-cs discover

Fetches esports events from the Gamma API, classifies CS markets by tags and keywords, and upserts them into the database.

Add --report to write a summary to data/discovery_report.md.

2. Backfill trades

uv run polymarket-cs backfill

For every known market, paginates the Polymarket Data API to fetch all trades. Idempotent via ON CONFLICT DO NOTHING on tx_hash. After backfill, flags markets with zero trades for investigation.

3. Incremental sync

uv run polymarket-cs sync

Re-fetches trades for all markets, skipping already-ingested ones.

Data model

Table Primary key Description
markets condition_id CS market metadata (question, slug, exchange type)
outcomes token_id Outcome tokens per market (Yes/No or multi-outcome)
trades id (unique on tx_hash) Individual trades with price, size, side, trader address
needs_investigation condition_id Markets flagged by self-healing (zero trades despite existing)

Key fields on trades

  • price: probability (0-1) at which the trade executed
  • size: number of outcome tokens traded
  • side: BUY or SELL
  • trader: proxy wallet address
  • outcome: outcome label (e.g. "Yes", "NaVi", "FaZe")

Development

uv run ruff check .
uv run mypy --strict src/polymarket_cs/
uv run pytest

Migrations

uv run alembic revision --autogenerate -m "description"   # polymarket
uv run alembic upgrade head

uv run alembic -c alembic_hltv.ini revision --autogenerate -m "description"
uv run alembic -c alembic_hltv.ini upgrade head            # hltv