What (One-liner)
Aggregates a stock's scores across business model / leadership / competitive advantage / valuation into a 0-100 composite buy/sell signal. Inspiration: Buffett-Munger philosophy + Porter's five forces + Graham-Dodd value investing, synthesised.
How to use
Drag the blcv_score_v1 node onto the Canvas, fill symbol (required), optionally weights + peers.
Reading the output:
blcv_score— the 0-100 compositesignal:strong_buy(>70 + MoS>15%) /buy(>60 + MoS>5%) /neutral/avoid(<35) /caution(industry blacklist)dimension_scores— drill into the four dimensions in the UImargin_of_safety— relative valuation (PE/PB/EV-EBITDA/FCF yield) implied intrinsic value vs current price
Core formulas
blcv_raw = (0.30·B + 0.15·L + 0.25·C + 0.30·V) / 1.00
if industry_avoided: blcv_raw *= 0.6
blcv_score = round(clamp(blcv_raw, 0, 100), 2)Signal buckets (0-100 scale thresholds):
| Condition | signal |
|---|---|
| blcv > 70 and MoS > 15% | strong_buy |
| blcv > 60 and MoS > 5% | buy |
| blcv < 35 | avoid |
| Industry-blacklist hit | caution |
| Otherwise | neutral |
Assumptions & applicability
Assumptions: four dimensions on the same 0-100 scale / adequate yfinance data quality / 0.6 blacklist penalty.
Fits: developed-market equities (US foremost) / medium-to-long horizons / cross-sectional selection / fundamental filtering.
Does not fit: crypto / private companies / intraday signals / distressed names.
Input / Output contract
Details in the frontmatter. In short: symbol (str) → {blcv_score: float, signal: str, dimension_scores: dict, margin_of_safety: dict, industry_filter: dict, details: dict, logic_lineage: list}.
Known limitations
- Quarterly granularity → not for short-term trading
- yfinance dependence → degrades on small caps / international names
- Porter 5-forces heuristics → interpretable, moderately stable numerically
- Static industry blacklist → no ESG dynamics
- The 0.6 multiplier is practitioner-set → not academic consensus
References
See source_papers in the frontmatter. Three pillars: Buffett-Munger philosophy + Porter (1979) five forces + Graham-Dodd (1934) Security Analysis.
Golden Test
tests/golden/fixtures/tier1/blcv_score/, 1e-10 tolerance, 9 test cases (compose + clamp + industry-penalty + 4 signal buckets + custom weights + full response schema). Passing as of 2026-04-20.
Changelog
- 1.1.0 (2026-04-20) — Full-stack 0-100 alignment + threshold update + BUG-GOLDEN-001 sweep + lineage sync
- 1.0.0 (2026-04-19) — First production (0-1 scale)

