Methodology
How the numbers are made, how they're checked, and where they fall short.
Cirvia's design rule is simple: every number you see is computed in code from market data; the AI only narrates. This page explains what that means for the daily Model Picks, the public track record, and the portfolio analytics, including the limitations we haven't fixed yet.
How the daily picks are made
1. Universe. Roughly 560 names: the S&P 500 plus the TSX 60. Membership is recorded as dated history: when a company leaves the index or delists, its record stays and its prices keep updating while any published pick references it, so failures remain visible.
2. Quantitative screen. A pure-math factor screen ranks the universe before any AI is involved: value, quality, growth, momentum (12-months skipping the last month), analyst upside (shrunk toward zero when coverage is thin), and low risk. Metrics are scored relative to each stock's industry peers — falling back to its sector, then the full tracked universe, when there aren't enough industry peers — using robust statistics (median and MAD, not mean and standard deviation, because financial ratios have fat tails). Names with stale prices or missing data are excluded with a recorded reason; nothing is imputed.
3. AI analysts, on a leash. Each top candidate gets an AI analyst that may only cite numbers from a fact sheet computed in step 2. Its output is then machine-checked: any cited figure that doesn't match the fact sheet is repaired to the canonical value or dropped.
4. Adversarial verification. A separate AI critic re-checks the most load-bearing claims using its own live data tools and marks each one verified or challenged. A pick with two or more challenged claims is demoted below every clean pick. Confidence scores are computed in code from screen rank, data coverage, and verification results; the AI is never asked how confident it feels.
How the track record is measured
- Entry prices freeze at publication. Each pick records the last market close before its pre-market publication, and that number is never revised.
- Returns are total returns. Performance is computed from dividend- and split-adjusted closes drawn from one consistent price series, from the pick's publication bar to the latest close, fresh on every page load.
- The benchmark includes dividends. Picks are compared against SPY's adjusted close (an S&P 500 total-return proxy) over each pick's identical span; a price-only index would flatter us by the index's dividend yield.
- Cohorts, not cherry-picks. Because a good pick can stay on the board for weeks, per-pick averages over-count persistent names. The honest headline numbers group picks into daily cohorts measured only at fully-elapsed horizons, plus a simulated portfolio that buys each day's top five equal-weighted and rebalances when the board changes.
- Misses stay on the board. Nothing is deleted, including picks on companies that later fell, were removed from their index, or delisted.
- Small samples stay quiet. Headline stats appear only once at least 30 picks have fully-measured outcomes; below that, averages are noise.
- Inputs are archived nightly. Every evening we store a dated, hashed snapshot of each stock's fundamentals. From the first snapshot onward, any pick can be re-derived from data timestamped before the pick was published.
Portfolio analytics
The Risk Lab and chat answers use the same discipline: returns are built from adjusted closes aligned across markets (Canadian and US holidays differ, so only common trading days are compared); portfolio risk uses a shrunk covariance estimate (Ledoit-Wolf) rather than raw sample correlations; downside estimates report Value-at-Risk several ways (including a fat-tail adjustment) and say which is which; Monte Carlo projections use zero drift by default: the fan shows risk, not a forecast. All of it is unit-tested against closed-form results.
How the valuation screener works
Every stock Cirvia tracks gets a plain verdict: Undervalued, Fairly Valued, or Expensive. Here is exactly what that measures, and what it deliberately doesn't claim yet.
It compares a stock to its closest peers, today. Each verdict is built from the same value factor the daily screen uses above: trailing/forward P/E, PEG, price/sales, price/book, EV/EBITDA, and price/FCF, each normalized against the stock's industry peers — a narrower, more like-for-like group than its broad GICS sector — using the same robust (median/MAD) statistics, then averaged into one score. A stock needs at least two of those seven metrics to be scored at all; fewer than that, and the verdict reads “Not enough data” rather than guessing. When a stock's industry doesn't have enough scored peers to compare against reliably, the comparison widens to its sector, and if even that's too thin, to the whole tracked universe; the evidence table always says which lens was used.
It does not yet compare a stock to its own history. A "is this cheap for this stock, historically" verdict needs years of point-in-time valuation snapshots. Cirvia only started archiving those nightly snapshots recently, so there isn't yet a decade (or even a full year) of a stock's own history to compare against. Rather than fabricate that comparison, today's verdict only measures the peer-relative lens. Once enough snapshot history accrues, a second "vs. its own history" lens will be added and disclosed with the exact window it's built from, not a fixed claim we can't back up.
The verdict is free; the numbers behind it are Pro. Anyone can browse the full grid with no account. On a stock's own page, the per-metric evidence (this stock's ratio vs. its peer median) is part of Cirvia Pro, the same as the rest of the fact sheet it's built from.
How Notable Trades is sourced
The Notable Trades feed surfaces disclosed trading activity, not analysis: nothing here is screened, ranked, or interpreted the way Model Picks are. Congress trades come from public congressional trading disclosure datasets; insider and institutional trades come from filings made with securities regulators. Every row links back to its original source.
Disclosures lag the actual trade. Members of Congress and corporate insiders have a legal window, days to weeks, to report a trade after it happens, so a trade you see today may have been made well before it was disclosed. This is a record of what was reported, not a live feed of what’s happening right now.
It’s informational, not a signal. A notable investor buying or selling a stock says nothing about their reasoning, their full portfolio, or their time horizon. Cirvia surfaces the activity; it never suggests copying it.
Limitations, honestly
- Data source. Prices and fundamentals come from free/retail market-data services, not an institutional vendor. Fields are occasionally revised upstream; the nightly snapshots bound this going forward but cannot repair history before they began.
- Benchmark mismatch. SPY is a US total-return proxy while the pick universe includes TSX names; a blended benchmark is planned.
- Factor weights are judgment. The screen's factor weights come from the academic literature and our judgment; they have not yet been validated out-of-sample on our own data. A walk-forward validation harness is planned, and its results will be published here.
- The simulated portfolio ignores costs. Spreads and commissions are not netted from the top-5 simulation; it is a research measure, not a trading result.
- Short history. The track record is young. Judge it by its rules and its transparency until it has the sample size to be judged by its numbers.
Cirvia is informational only: research with receipts, not recommendations, and never personalized advice to buy or sell a security. Past performance does not guarantee future results.