Methodology & Data Sources
A plain account of the data MoatCheck uses, the choices behind its scores, and the limits that matter when you are doing your own research.
What MoatCheck is for
MoatCheck is an open-source company research and portfolio analysis workspace. It combines stored company fundamentals and market observations with portfolio tracking, risk analysis, historical scenarios, backtests, and medium to long-term allocation research. The Advisor supports a configurable 30 to 365 day horizon.
It is educational research software. It does not connect to a brokerage, place orders, or provide personal financial advice. Model results are estimates for human review, not forecasts or guarantees.
Workspaces
- Research: screener, company and ETF detail, fundamentals, stored price history, scores, and available SEC/RSS event summaries.
- Portfolio: saved target configurations, quantities and average purchase prices, with estimated market value and unrealized PnL when usable stored prices exist. It is not a broker connection or transaction ledger.
- Optimizer and Risk & Stress Lab: long-only allocation analysis, portfolio VaR/CVaR and correlations, plus historical benchmark crisis scenarios.
- Advisor: medium/long-term allocation proposals with turnover and cost estimates, risk comparisons, optional DCA, projections, and rationale for review.
- Backtest: historical fixed-target rebalancing experiments with explicit cost assumptions, equity paths, and drawdowns.
Sources, cadence, and freshness
MoatCheck primarily reads stored observations. The existing weekly equity and ETF history comes from Alpha Vantage. A separate daily pipeline can use Yahoo Finance and enabled Tiingo or FMP fallbacks; Binance covers supported crypto pairs. FRED supplies macro observations where configured. Alpha Vantage provides core fundamentals, with selected Finnhub fields used only after date and magnitude checks. SEC EDGAR and enabled company or press RSS feeds provide qualitative event context; optional Groq classification can label events.
The daily pipeline is separate from the weekly price series used by many screens. A page can show the latest stored snapshot rather than a live quote. Coverage, provider terms, refresh success, and observation dates vary. Check the date, source, currency, sample length, and price convention before interpreting results. Split adjustment is applied to relevant stored price history; dividends are not included as total return.
How to interpret analyses
Historical moments and portfolio models depend on the selected inputs and assumptions. The Optimizer uses aligned stored price history and a long-only Markowitz frontier. The Advisor uses model-based allocation estimates over its configured horizon. Backtests are historical fixed-target experiments, not point-in-time strategy certifications or broker statements. Crisis panels are benchmark scenarios and do not reconstruct a user's historical portfolio.
Execution drag and transaction costs are estimates, not current order-book quotes. Verify important company facts against original filings and review missing data, sample size, currency, cadence, annualization, and cost assumptions.
Important limitations
- Provider coverage and freshness vary; stored data can be incomplete, delayed, or revised.
- Weekly observations can hide within-week losses. Price histories do not include dividend total returns.
- Historical results and statistical estimates do not predict future performance.
- Qualitative event labels may be incomplete or wrong and remain separate from numerical scores.
- Portfolio tracking does not synchronize with a broker and does not provide a transaction ledger, realized PnL, tax, or FX conversion.
- Recommendations are model outputs for human review, not personalized investment advice.
The implementation and detailed assumptions are available in the public MoatCheck repository on GitHub. See also the Privacy Policy.