13D·WATCH Activist + Insider Intelligence Live feed Blog Methodology API Pricing Pilot
DATA METHODOLOGY

How the 13D Watch data moat is built.

10 government and regulatory sources, ingested on cron, normalized into Postgres, cross-referenced by issuer CIK and ticker, enriched with AI analyst briefs. Every claim on the site traces to a primary source.

Data sources

The pipeline ingests the following ten sources directly from their authoritative origins. No third-party aggregators sit between us and the source.

Ingestion architecture

All ingestion runs in a single Cloudflare Worker (data-moat-ingest) on cron triggers. Each source has its own ingest function with idempotent upserts. Raw payloads are also stored in an R2 bucket (data-moat-bronze) as immutable bronze-layer snapshots, so any extraction logic change can be back-applied without re-fetching from the source.

Storage: Supabase Postgres (project ref acouoyxkzrqtcbimveyl). Tables include activist_filings, insider_transactions, institutional_holdings, short_interest, treasury_auctions, tic_holdings, cot_positions, normalized_series (FRED + BLS + CoinGecko), entities. Views activist_latest and institutional_consensus serve common joins.

Cross-referencing and enrichment

Each new activist filing is joined to the other sources at query time, not pre-computed:

AI analyst briefs

Each filing receives a 1-2 sentence analyst brief plus an intent classification, generated by Anthropic's Claude Sonnet 4.6 via OpenRouter. The model receives the full enrichment context (filer, issuer, stake, Item 4 text, insider activity, institutional consensus, short interest, issuer cluster, filer history) and returns strict JSON: { summary, intent, confidence }.

Intent classes: passive, strategic, m&a-arb, board-change, capital-structure, distressed, unclear. Briefs are cached forever per accession_number in Cloudflare KV — filings are immutable and never need regeneration. Cost is bounded at roughly $0.005 per filing, ~$0.04/day steady-state.

Refresh cadence

Source freshness as currently scheduled:

Accuracy and known limitations

Some data quality limits we disclose openly:

For methodology questions or data-quality reports, contact contact@13dwatch.com.

The infrastructure that powers this is the moat.

One pipeline. Ten sources. Cross-referenced at query time. Built on Cloudflare Workers + Supabase. API documentation →

Request a pilot →