lululemon athletica inc.
Year-over-year narrative change on LULU 10-K and 10-Q filings
Ticker
LULU
Forms
10-K + 10-Q
Refresh
Weekly
Sections
3
What the LULU Filing Change Signal measures
Each time lululemon athletica inc. files a 10-K or 10-Q, VectorFin compares it to the same issuer's prior-year filing (a 10-K to last year's 10-K; a 10-Q to the same quarter a year earlier) and measures how far the language moved. We report a lexical change (TF cosine and token-set jaccard) and a semantic change (cosine over 768-dim Gemini embeddings), then publish the divergence between them. A high lexical change with low semantic change is a format reshuffle; a high change on both is a genuine disclosure shift. This operationalizes the Lazy Prices anomaly. Every row is bitemporal, carrying effective_ts (the period reported) and knowledge_ts (EDGAR acceptance), so percentiles are ranked point-in-time with no look-ahead.
Sections scored for LULU
Each filing is compared at three grains, requested via the section param.
risk_factorsRisk Factors (Item 1A)
The enumerated risks. Quiet additions here, like Zillow's Offers language, are the classic Lazy Prices tell.
mdaMD&A (Item 7)
Management's Discussion & Analysis. Tone and emphasis on results, liquidity, and outlook shift here before the numbers do.
documentWhole document
The full filing, for a single top-line read on how much the issuer's disclosure moved year over year.
Access via API
# Latest 10-K change metrics for LULU (risk factors section)
curl https://api.vectorfinancials.com/v1/filings/LULU/changes \
-H "X-API-Key: vf_sk_your_key_here" \
-G \
-d "form_type=10-K" \
-d "section=risk_factors" \
-d "limit=5"Example response (one FilingChangeRecord):
2026-06-142025-12-31[{
"ticker": "LULU",
"cik": "0000000000",
"accession": "0000000000-25-000079",
"prior_accession": "0000000000-24-000123",
"filing_type": "10-K",
"comparison": "yoy_same_type",
"effective_ts": "2025-12-31T00:00:00Z",
"knowledge_ts": "2026-02-12T21:14:00Z",
"sections": [
{
"section_id": "risk_factors", "parse_status": "ok",
"cosine": 0.90, "jaccard": 0.86,
"change_pctile_universe": 0.71,
"cosine_embedding": 0.96,
"lex_sem_divergence": 0.06,
"format_switch_suspected": false,
"word_count": 12940, "prior_word_count": 12110,
"null_reason": null
},
{
"section_id": "mda", "parse_status": "empty",
"cosine": null, "jaccard": null,
"change_pctile_universe": null,
"cosine_embedding": null,
"lex_sem_divergence": null,
"format_switch_suspected": null,
"word_count": null, "prior_word_count": null,
"null_reason": "empty_section"
}
]
}]Illustrative shape. change = 1 − cosine; here lexical and semantic both move only modestly and the format-switch flag is clear, so the risk-factor edit reads as real but minor. The empty mda section shows an honest null: the issuer declared no material change, so we report no metric rather than a fabricated zero. Read every field in the docs.
Track LULU disclosure changes in your pipeline
Free tier covers the top 100 tickers and 250 calls a month. Pro delivers the full universe via Snowflake or BigQuery Iceberg.