Detailed documentation of scoring algorithms, thresholds, and calculation methods. Version 1.1.0. Last updated: 2026-07-12
Current analysis engine version and changelog
Deterministic category health scores → overall 0–100. Implemented in lib/mapleaudit/scoring.ts. Not AI-scored.
Soft-caps reduce double-counting only for multi-name portfolios where concentration and HHI already describe the same oversized-weight problem. Extreme single-name books (largest ≥50% or <1.5 effective holdings) are hard-capped so diversification cannot appear healthy while concentration is severe. FX withholding and overlapping CRA flags are soft-capped similarly. Higher overall score means healthier structure under these rules — not investment advice.
CRA Pattern Indicator scoring identifies patterns that have been observed in some cases CRA examined. This is NOT a compliance score or risk assessment.
1.1.0
Important: This scoring system reflects the number and severity of patterns observed, NOT a compliance score, risk assessment, or prediction of CRA action. The scoring methodology is an arbitrary weighting system for pattern recognition only and does NOT reflect actual CRA assessment criteria (which are not public).
Mathematical concentration metrics identify single-stock and sector-level concentration. This is NOT a legal or tax concern, but a portfolio risk metric.
1.1.0
Note: Concentration metrics are mathematical calculations only, not legal or tax concerns. They identify portfolio risk characteristics, not compliance issues.
Diversification score measures effective portfolio diversification using HHI. Lower HHI indicates better diversification.
1.1.0
Herfindahl-Hirschman Index (HHI) with normalization to 0-100 scale
Dividend analysis identifies high-yield patterns that may correlate with dividend sustainability concerns. High yield alone is not problematic.
1.1.0
Foreign exchange exposure analysis identifies CAD/USD allocations and TFSA foreign withholding tax implications.
1.1.0
How web and PDF stay consistent
MapleDiv holdings are mapped to a normalized audit input, then run through analyzePortfolio and buildCanonicalAuditResult. The interactive report and PDF consume the same CanonicalAuditResult. PDF download prefers the result already shown in the browser so figures match.
Extended risk metrics (volatility, drawdown, Sharpe, etc.) are included only when sufficient market history exists. Missing history is omitted — never shown as zero.