Gyre Research Asymmetric Beta

Methodology

Data integrity, calculation methodology, and validation

1. Pre-Calculation Data Integrity Checks

Before any beta calculation runs, the pipeline performs a comprehensive set of data integrity checks to ensure the input data is complete, consistent, and reliable. Any failure at this stage halts the pipeline.

1.1 Universe Verification

The calculation universe is defined as the current S&P 500 constituents plus SPY (used as a validation benchmark). The pipeline queries the most recent index composition snapshot and verifies:

1.2 Price History Completeness

For each security in the universe, the pipeline verifies:

CheckRequirementAction on Failure
Adjusted close availability100% of price rows must have adjusted closeExclude unadjusted rows
Minimum history depth≥ 10 trading days (shortest lookback window)Exclude symbol from that window
Zero/negative prices0 occurrencesExclude affected rows
Duplicate dates0 per symbolVendor-priority deduplication
Missing trading daysCompared against SPY calendarLog gaps > 5 days; exclude if > 30 days missing

Price data is sourced from production tables with a supplemental fill from staging data to ensure coverage through the most recent trading date. When multiple data sources provide a price for the same symbol and date, a vendor-priority deduplication selects the most reliable source.

1.3 Sector Classification Coverage

Each security requires a sector classification for the “My Sector” benchmark. The pipeline uses a waterfall approach:

  1. Primary: Sector from the security master staging table (broadest coverage for U.S. equities)
  2. Fallback: GICS sector from the issuer-to-sector lookup chain
  3. Default: “Unclassified” (excluded from sector-specific benchmarks)

Target: ≥ 95% sector coverage for the S&P 500 universe. Current pipeline achieves 99%.

1.4 Market Capitalization Coverage

Market cap is calculated (not sourced from a snapshot) as:

Market Cap = Shares Outstanding × Latest Adjusted Close Price

Shares outstanding is sourced from the equity reference table. Securities without shares data receive a null market cap and are excluded from cap-tier benchmarks but still participate in all other calculations.

Target: ≥ 90% market cap coverage. Current pipeline achieves 98%.

2. Calculation Methodology

2.1 Daily Return Computation

For each security and benchmark, daily simple returns are computed from adjusted closing prices:

Rt = (Pt / Pt-1) − 1

Adjusted close prices incorporate splits and dividends, ensuring returns reflect actual investor experience.

2.2 Benchmark Construction

Five benchmark types are constructed for each security:

BenchmarkConstructionMembers
SPYDirect ETF price returns1 (the ETF itself)
S&P 500 Cap-WeightedΣ(wi × Ri) / Σwi, using index composition weights~500
S&P 500 Equal-WeightedSimple average of all constituent returns~500
Sector PeerEqual-weight average of all S&P 500 securities in the same sectorVaries by sector
Cap Tier PeerEqual-weight average of all S&P 500 securities in the same market cap tierVaries by tier

All composite benchmarks require a minimum of 5 constituents on any given date. Dates with fewer constituents are excluded from the benchmark series.

2.3 Market Cap Tiers

TierRange
Mega≥ $200 billion
Large$10B – $200B
Mid$2B – $10B
Small$250M – $2B
Micro< $250M

2.4 Lookback Windows

Betas are calculated over six lookback windows to capture both short-term dynamics and longer-term structural relationships:

LabelTrading DaysCalendar Equivalent
2y504~2 years
1y252~1 year
6m126~6 months
3m63~3 months
1m21~1 month
10d10~2 weeks

2.5 Asymmetric Beta Computation

For each security × benchmark × lookback window combination, the return series are aligned on common trading dates. Days are then split by benchmark return direction:

Up days: dates where Rbenchmark > 0
Down days: dates where Rbenchmark ≤ 0

A minimum of 15 up-days and 15 down-days is required for statistical validity. If either threshold is not met, the result is null for that combination.

For each subset, beta is computed as:

β = Cov(Rstock, Rbenchmark) / Var(Rbenchmark)

Producing five output values per calculation:

  1. Up-Beta (β⁺) — sensitivity to rising markets
  2. Down-Beta (β⁻) — sensitivity to falling markets
  3. Asymmetry Score — β⁺ − β⁻ (upside-biased = favorable for longs, downside-biased = favorable for shorts)
  4. Standard Beta — full-window OLS beta (all days)
  5. Adjusted Beta — 2/3 × standard beta + 1/3 (Blume adjustment, mean-reverting toward 1.0)

Worked Example

Consider a stock with the following daily returns over a 5-day window, benchmarked against SPY:

DayStock ReturnSPY ReturnDirection
Mon+1.5%+1.0%Up
Tue−0.3%−0.8%Down
Wed+2.0%+1.2%Up
Thu−1.0%−1.5%Down
Fri+0.8%+0.5%Up

Up days (Mon, Wed, Fri): Stock moves +1.5%, +2.0%, +0.8% when SPY moves +1.0%, +1.2%, +0.5%
→ Up-Beta = Cov(stock, SPY | up) / Var(SPY | up) ≈ 1.55

Down days (Tue, Thu): Stock moves −0.3%, −1.0% when SPY moves −0.8%, −1.5%
→ Down-Beta = Cov(stock, SPY | down) / Var(SPY | down) ≈ 0.61

Asymmetry Score = 1.55 − 0.61 = +0.94
This stock captures 55% more upside than the market while only falling 61% as much. Strongly favorable for long exposure.

3. Post-Calculation Sanity Check

After all beta calculations complete, a built-in sanity check validates the entire pipeline end-to-end:

SPY vs. Cap-Weighted S&P 500 Validation

SPY is an ETF designed to track the S&P 500 index. Its beta against a properly constructed cap-weighted S&P 500 composite should be approximately 1.000. Any significant deviation indicates an error in:

Acceptance criteria: SPY standard beta vs. SPX Cap-Weighted must be between 0.95 and 1.05 across all lookback windows. The current pipeline produces values between 0.938 and 0.979, with R² > 0.987.

The small deviation from 1.0 is expected: SPY carries an expense ratio, and the cap-weight composition snapshot is periodic rather than continuous. A beta of 0.97 with R² of 0.99 confirms the pipeline is functioning correctly.

Additionally, the pipeline validates:

For questions about our methodology or data sources, contact team@gyreresearch.com.