Fintech
Cohort live 2026-05-07GammaRips
Autonomous overnight options-flow scanner. Picks one V5.3 contract per day with pre-set stop and target. Every paper trade published, win or loss.
Fourteen Cloud Run services, ~20 schedulers, and a multi-agent publishing layer that filters market noise into one tracked, public, mechanically-held trade idea per day.
Problem
The problem.
Retail options traders drown in "unusual activity" feeds that are mostly noise: hedges, dealer offsets, multi-leg spreads, late prints. Existing UOA tools dump everything and let users sort it; false signals are the norm and outcomes are never tracked. Buy-side gets Bloomberg and quants. Retail gets newsletters that brag about wins and bury losses.
Approach
How I built it.
- Four gated stages run overnight on Google Cloud. The scanner pulls option chains across an equity universe, scores overnight unusual activity, and writes raw candidates to BigQuery.
- An enrichment service applies literature-anchored gates (overnight score ≥ 1, spread ≤ 8%, directional UOA > $500K).
- A signal-notifier layers V5.3 quality filters (V/OI > 2.0, 5 to 10% out-of-the-money, VIX ≤ VIX3M, no earnings overlap), ranks deterministically, and writes one pick (or none) to Firestore.
- A forward-paper-trader simulates V5.3 entry rules (10:00 ET entry, −60% stop, +80% target, 3-day hold) against Polygon minute bars and writes every outcome to a versioned ledger.
- A separate multi-agent publishing layer (Google ADK) handles X, blog, and Reddit posts. Pattern: Planner → Writer → Reviewer LoopAgent → Publisher. A deterministic compliance rubric is enforced twice: at the EscalationChecker and again at the Publisher.
- Every Gemini call from every instrumented service lands in a BigQuery trace table; an eval pipeline runs LLM-as-judge weekly and writes digests to its own table.
Architecture
What's running, and why.
Cloud Run services (14 production)
- overnight-scanner
- Generates raw flow candidates from Polygon + a GCS ticker universe.
- enrichment-trigger
- Score / spread / UOA gates → overnight_signals_enriched.
- signal-notifier
- V5.3 quality stack, dual-writes today's pick, fires the operator email.
- forward-paper-trader
- V5.3 paper execution against minute bars, plus an IV cache.
- win-tracker
- Outcome tracking, signal_performance writes, 30-trade gate watcher.
- overnight-report-generator
- Gemini synthesis → daily_reports/{date}.
- x-poster
- ADK 4-agent X publisher; 7 post types behind POST /post.
- blog-generator
- ADK weekly blog post pipeline rendered by webapp /blog.
- reddit-poster
- Distraction-frame drafter to gs://gammarips-reddit-drafts/{date}/.
- gammarips-eval
- Gemini-as-judge over llm_traces_v1, monitoring-only.
- gammarips-mcp
- 18-tool MCP attack surface for the sandboxed gammarips-bot.
- gammarips-webapp
- Next.js on Firebase App Hosting (gammarips.com).
BigQuery (profit_scout)
- Signal pipeline
- overnight_signals → overnight_signals_enriched → forward_paper_ledger.
- Frozen training set
- signals_labeled_v1 (immutable backtest substrate).
- Reference data
- polygon_iv_history, signal_performance.
- LLM observability
- llm_traces_v1 / llm_eval_results_v1. Every Gemini call, every weekly judge run.
LLMs
- Gemini
- Report synthesis, blog and X-poster Writer + Reviewer agents, eval LLM-as-judge, MCP-fronted gammarips-bot.
Data sources
- Polygon
- Option chains and minute bars.
- FRED
- VIX and VIX3M for term-structure gating.
- FMP
- Earnings calendar (/stable/earnings-calendar) and news.
Orchestration
- Cloud Scheduler
- ~20 cron jobs, all America/New_York, gating each pipeline stage.
- Pub/Sub
- Fan-out between stages so failures isolate cleanly.
- Firestore
- Runtime state: today's pick, cohort_stats/current, blast_killswitch, park_watchdog.
Shared libs (vendored at deploy)
- libs/trace_logger
- Single instrumentation point for every Gemini call.
- libs/gammarips_content
- Compliance rubric and voice rules consumed by every publishing agent.
- Mailgun
- Operator preview + Mon 05:30 ET auto-blast, kill-switchable from Firestore.
Outcome
What shipped.
Trade #1 live
Cohort opened 2026-05-07 (NVAX BULLISH, exits 5/12)
14 services
Production Cloud Run + ~20 Cloud Scheduler crons
211 users
Registered webapp users in Firestore
~9 min
Enrichment runtime over ~70 tickers/day
Every call
Gemini calls instrumented to llm_traces_v1; weekly judge digests written
Pending
Win-rate, latency, MRR, gated until 30-trade public-track-record threshold
Stack
- Python 3.12
- Flask
- Gunicorn
- Google ADK
- Gemini Enterprise
- Gemini
- Cloud Run
- Cloud Scheduler
- Pub/Sub
- BigQuery
- Firestore
- GCS
- Firebase App Hosting
- Next.js
- TypeScript
- Polygon
- FRED
- FMP
- Mailgun
- pandas
- pandas-ta
What this proves
Where this ports.
Multi-agent LLM publishing with a deterministic compliance gate (Planner, Writer, Reviewer LoopAgent, rubric scored at both EscalationChecker and Publisher) reproduces for any team that needs auditable, voice-consistent autonomous content. The same scaffold ports to ticketing, RFP drafting, or compliance-bound research notes: anywhere a human reviewer is the bottleneck and the rubric is encodable.
Want the same pattern in your business?
Thirty minutes. Describe what you're working on and I'll tell you if I can ship it.