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 attopics/research/<slug>-YYYY-MM-DD.md. Add--scaffoldto 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).topicwraps 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.