Skip to main content

Stanford Securities Litigation Analytics

Dense securities litigation filings, reduced to verified structured data.

An AI model reads a securities litigation filing and fills the schema for its document type, citing verbatim evidence per field. A human reviewer verifies every field against the source PDF before it is accepted. Nothing ships unread.

Sign in → See it in action → Get involved

How it works

01

Upload

Drop in a filing PDF and pick its type. Scanned-doc and draft detection up front.

02

Extract

The model fills that document type's schema with verbatim evidence for each field.

03

Verify

A guided viewer jumps to each highlighted passage. Approve field by field.

04

Submit

Entity-normalized, validated, and queued to the downstream pipeline.

Features

Grounded extraction

Every field carries verbatim evidence; a coverage threshold flags low-grounding extractions before review.

Passage-linked review

The viewer steps between highlighted source passages one at a time, so each value is checked against the page it came from.

Field-by-field approval

Nothing is auto-accepted. A per-field approval flow keeps a human in the loop on every value.

Entity normalization

Issuers and parties are fuzzy-matched against a live catalog, with same-name and stale-cache guards before submission.

Drafts that survive

Work auto-saves; a draft picker lets reviewers resume mid-review across sessions and devices.

Scanned-PDF detection

Likely-scanned filings with no extractable text are rejected up front instead of producing empty extractions.

Extensible by document type

A registry maps each document type to its extractor and schema. New types slot in without touching the core flow.

Stanford SSO

SAML single sign-on with an individually managed reviewer allowlist.

Supported document types

SCA First Identified Complaint SCA Amended Complaint (Non-Consolidated) SCA Consolidated Complaint SCA Order Appointing Lead Plaintiff/Counsel SCA Order on Motion to Dismiss more coming

Architecture

A Flask backend coordinates the pipeline; a Vue review surface runs the per-field approval flow over a PDF.js viewer. Extraction calls the model with a per-document-type system prompt and a JSON-prefilled response, then maps evidence spans to passage coordinates for the viewer.

Storage, the submission ledger, the entity cache, and secrets sit behind a backend-adapter seam: a filesystem/JSONL/in-memory implementation for local development and an AWS implementation (S3, DynamoDB, Secrets Manager, CloudWatch) for deployment, selected by one environment switch. The same application code runs in both.

It is deployed as a container on AWS Fargate behind an Application Load Balancer with HTTPS, authenticated by Stanford SAML SSO, with structured telemetry and per-extraction cost tracking throughout.

Get involved

Interested in learning more?

Reviewing means reading a securities litigation filing alongside the extracted fields, then confirming or correcting each one against the source. The work is close to a paralegal's: careful reading of complaints, attention to the theory of liability, and a working sense of how securities cases are built.

People who find this interesting often have a footing between undergrad and law school, or are otherwise looking to build hands-on experience in securities law. The project is part of Securities Litigation Analytics at Stanford Law School, led by Professor Michael Klausner, a leading authority on securities litigation. We are happy to tell you more about it.

Email to get involved See it in action →