Skip to content

What (One-liner)

A lightweight narrative intensity heuristic (type-token ratio + length + token density weighted) + optional topic overlap / break detection (Jaccard). Used for quick narrative monitoring of central bank statements, research reports, news texts.

How to use

Drag b0_narrative_v1 into Canvas, fill in text (required) and optionally reference_text (for topic comparison). Outputs token_count / TTR / narrative_intensity (0-1) + optional Jaccard / topic_break.

Core formulas

TTR = unique_tokens / total_tokens
length_norm = min(len(text) / 4000, 1)
intensity = min(1, 0.45·TTR + 0.35·sqrt(length_norm) + 0.2·min(n/500, 1))

# Optional (when reference_text provided):
Jaccard = |set(A) ∩ set(B)| / |set(A) ∪ set(B)|
topic_break = 1 - Jaccard

Assumptions & applicability

Assumptions: Token-level heuristics are sufficient to roughly reflect narrative intensity; no need for deep semantics (that's FinBERT's job, Tier 2+ upgrade path).

Applicability: English / Chinese news / central bank statements / research reports / long text comments.

Not applicable: Short texts (<50 tokens), structured data, multilingual mixed text, pure numbers / tables.

Input / Output contract

See frontmatter. Note scale: The output field is named narrative_intensity_0_1, with a value range of [0, 1] (not BLCV's 0-100 scale). The naming convention itself implies this — consumers should not multiply by 100.

Known limitations

  1. Lexical heuristic does not understand semantics ('not bullish' vs 'bullish' are indistinguishable)
  2. Weights 0.45/0.35/0.2 are empirically tuned
  3. Tokenizer regex may miss emojis / URLs
  4. Jaccard is sensitive to length differences (biased low)
  5. Scale convention is 0-1, naming has been indicated — do not confuse with BLCV's 0-100 scale

References

Shiller (2017) Narrative Economics + Loughran & McDonald (2011) financial text TTR. See frontmatter for details.

Golden Test

tests/golden/fixtures/tier1/b0_narrative/, 1e-12 tolerance, 3 tests (matches_reference / empty_text / with_reference_jaccard). Passing as of 2026-04-20.

Changelog

  • 1.0.0 (2026-04-20) — Initial Active release

Verifiable intelligence for the decisions that demand scrutiny.