A AutoLab
About

What AutoLab is

AutoLab is an equity-research workbench: a small Python toolchain that produces sourced, publication-grade single-name analyses, sector deep dives and portfolio briefs, plus this website to read and share them.

Every output ends with the same line: analysis, not investment advice. That's the whole posture — long-form, cited, opinionated, transparent about confidence; not a recommendation engine.

Three verticals

Equities

End-to-end company tearsheets — Snapshot, Executive summary, Company overview, Management & founders, Business model & products, multi-year Financials, Sector & TAM, Competitive landscape, Growth drivers, Recent news, Headwinds & risks, Valuation, Verdict & what to watch. Every quantitative claim carries an inline [Sn] citation; the Sources section at the foot of each analysis lists the primary references. Each is rendered as a downloadable PDF and a one-page PNG infographic.

Research

Open-ended deep dives: moat analyses, sector landscapes, thematic questions. Less prescriptive than an equity tearsheet — these explore rather than conclude.

Fund

A portfolio-level view that bundles multiple equity analyses into one web page + downloadable infographic + downloadable report. Each holding gets a card with the value-chain position, financial snapshot, recent news, and selected sources — in fund-position order, not re-ranked by conviction. On the web cards a small conviction-tier badge surfaces the per-name read at a glance; the deliverables themselves stay focused on the underlying business data, not the score.

How the research loop works

AutoLab supports two modes:

  • Thesis — defend a verdict on a tight question ("Does NVIDIA have a moat?"). Converges on one claim with decision boundaries.
  • Survey — map a landscape ("AI supply chain in Europe: companies and bottlenecks"). Accretes a catalog of entities, segments, and bottlenecks. Additive: found entities are not reverted on a flat-scoring iteration.

Each iteration runs Scout → Researcher → Editor → Scorer → Red-team, with Wildcard prompts at key checkpoints to avoid local optima. A plateau_window + open_q_threshold determine when to stop. Run metrics land in results.tsv; the working artifact is thesis.md; finished analyses are archived to topics/equities/<slug>.md or topics/research/<slug>.md.

Subcommands

  • python -m autolab topic "Does X have a moat?" — front door for new research questions. Runs the doctrine-injected loop end-to-end and archives a dated, frontmattered note at topics/research/<slug>-YYYY-MM-DD.md. Add --scaffold to write the note interactively (Claude Code mode). See docs/workflows/TOPICS.md.
  • python -m autolab research <topic> — the lower-level loop driver (thesis or survey mode). topic wraps it.
  • python -m autolab refresh <path> — keeps an analysis from going stale. Archives the prior version, bumps the frontmatter date, and appends an entry to the conviction-history sidecar. The website's "N days ago" badge picks the new date up automatically. See docs/workflows/REFRESH.md.
  • python -m autolab report --repo . — long-form PDF (multi-page report).
  • python -m autolab report --repo . --infographic — one-page PNG infographic.
  • python -m autolab compare topics/equities/*.md -o out — ranked watchlist (PNG + PDF).
  • python -m autolab fund topics/equities/*.md -o out --theme "..." — fund brief (PNG + PDF), order-preserving.
  • python -m autolab dashboard --repo . — live web dashboard for a running loop.
  • python -m autolab summarize --repo . — condensed audit trail of a finished run.

How research gets done — the doctrine

AutoLab operates under five explicit principles — fundamentals first, trace every claim with a source-tier tag, steel-man the bear before the verdict, calibrate for asymmetric upside, and explain complex things in simple terms. They are codified at /principles and are mirrored in the autonomous-loop agent prompts (autolab/prompts.py) so the same standard applies to a human writing an analysis and to a Researcher / Editor / Scorer agent producing one.

The short version of citation rigour: every quantitative claim carries an inline [Sn] with a tier tag (T1 primary record → T2 quality secondary → T3 supplemental → T4 flag explicitly). Single-source claims must say so in prose. The Sources section at the foot of each analysis lists every reference with publisher, title, date, and URL.

Glossary handling

Technical abbreviations get an inline parenthetical the first time they appear in body prose — "GaN (gallium nitride)", "TGV (through-glass via)", "EBITDA (earnings before interest, taxes, depreciation & amortisation)" — so a reader doesn't have to flip to a bottom-of-document table. Subsequent occurrences stay clean. The full glossary is at the end of each fund brief and tearsheet.

Adding a new analysis

Scaffold from the canonical template with python -m autolab equity <slug> --name "<Company>" --ticker "<EXCH: TICK>". This drops a frontmattered file at topics/equities/<slug>.md with every required section pre-stubbed (Snapshot, Verdict, Financials, Competitive, Risks, …). The website indexes from the frontmatter. Fill the sections under the doctrine, then python scripts/audit.py and python scripts/build_artifacts.py regenerate the audit report + PDF + PNG.

This site

Static Astro site, deployed to Cloudflare Pages, installable as a Progressive Web App (PWA) — visit in any modern browser, click "Install" in the address bar, and AutoLab appears in your dock / taskbar / launcher as a standalone window with its own icon. Auto-updates on every push to main.