IndexLovers
Developer API & Quantitative MethodologyTicker: AGIOPS · 54 Verified Tech Firms55-Day Point-in-Time SEC Lag

The AGI-Ops Index — Methodology, Python Engine & JSON API Reference

Complete technical specification for quantitative researchers and developers. Review the 4 audited accounting pillars, point-in-time anti-bias safeguards, Python pipeline logic, and interactive JSON endpoints.

Section 01 · Quantitative Scoring Architecture

The 4 Audited Accounting Pillars & Master Formula

Every company in the 54-stock universe is evaluated across four winsorized cross-sectional percentile sub-scores (0 to 100) and combined into a master 0–100 AGI-Ops Score.

Master Composite Formula (0–100 Scale)
AGI_Ops_Score = (0.35 × Productivity_Score) + (0.25 × Margin_Score) + (0.20 × SGA_Efficiency_Score) + (0.20 × AI_Investment_Score)

Revenue Stability Guardrail: To prevent companies losing market share and conducting distress layoffs from artificially inflating their Revenue/Employee ratio, any firm with negative YoY revenue growth below -3.0% receives a 0.78× penalty multiplier on its composite score.

Pillar 01 · Productivity Score35% Weight

Revenue per Employee Growth (Δ Rev/Emp)

Combines YoY expansion in Total Revenue / Full-Time Employees (70% sub-weight) with log-normalized absolute revenue per employee (30% sub-weight). Captures structural output scaling per human worker.

Pillar 02 · Operating Margin Score25% Weight

Operating Margin Expansion (Δ OpMargin)

Measures YoY basis-point expansion in GAAP/IFRS Operating Income / Total Revenue (65% sub-weight) paired with current operating margin level (35% sub-weight), verifying that process automation converts into bottom-line profit.

Pillar 03 · SG&A Efficiency Score20% Weight

SG&A Overhead Compression (−Δ SG&A/Rev)

Inverts the YoY change in Selling, General & Administrative / Total Revenue so that companies compressing corporate bureaucracy and sales overhead receive the highest percentile rank.

Pillar 04 · AI Investment Score20% Weight

R&D + CapEx Commitment (With Profitability Gate)

Tracks (R&D + Capital Expenditure) / Total Revenue and YoY intensity change. Enforces an operating profitability gate (OpMargin ≥ 8%) so unprofitable cash-burners are not rewarded.

Section 02 · Anti-Bias Backtesting Engine (`scripts/generate_agi_ops_quant.py`)

Point-in-Time SEC Lag, Causal Forward-Fill & Liquidity Gates

Designed to institutional standards to eliminate Look-Ahead Bias, Survivorship Bias, and Micro-Cap Distortion across all 16 quarterly rebalances (2022–2026).

1. 55-Day SEC Filing Lag

Quarterly accounting statements are strictly lagged by 55 calendar days after the fiscal period-end date (`periodEndDate + 55d`) before entering any quarterly rebalance snapshot.

2. Causal Forward-Fill Only

Price matrices use strictly causal .ffill() without .bfill(). Missing SG&A keys fall back to Operating Expense − R&D rather than dropping constituents.

3. Size & Liquidity Gate

Constituents must maintain Market Cap ≥ $2.0B and 60-Day ADDV ≥ $25.0M at each quarterly rebalance window to enter the Top 10 or Bottom 10 baskets.

Python Quantitative Engine · scripts/generate_agi_ops_quant.py
# Excerpt from scripts/generate_agi_ops_quant.py
# Point-in-Time SEC Filing Lag & 4-Pillar Scoring Engine

FILING_LAG_DAYS = 55               # Strict 55-day operational lag post quarter-end
MIN_MARKET_CAP_USD = 2_000_000_000 # $2.0B minimum market cap gate
MIN_ADDV_USD = 25_000_000          # $25.0M minimum 60-day average daily dollar volume

def compute_point_in_time_agi_ops_score(df_cross_section: pd.DataFrame, cutoff_date: pd.Timestamp):
    """
    Evaluates only financial statements whose effective availability date
    (period_end_date + 55 days) is <= cutoff_date (eliminating Look-Ahead Bias).
    """
    # 1. Winsorize raw accounting ratios at [5th, 95th] percentiles
    # 2. Convert each pillar into a cross-sectional 0-100 percentile rank:
    #    - Productivity_Score: YoY Revenue/Employee growth + log(Rev/Emp)
    #    - Margin_Score:       YoY Operating Margin expansion + absolute OpMargin
    #    - SGA_Efficiency:     YoY SG&A/Revenue compression (-1 * delta_sga)
    #    - AI_Investment:      R&D + CapEx intensity (with Operating Margin >= 8% gate)
    
    agi_ops_score = (
        0.35 * df_cross_section["Productivity_Score"]
        + 0.25 * df_cross_section["Margin_Score"]
        + 0.20 * df_cross_section["SGA_Efficiency_Score"]
        + 0.20 * df_cross_section["AI_Investment_Score"]
    )
    
    # Revenue Stability Guardrail: prevent shrinking companies firing staff
    # due to demand collapse from masquerading as AI process optimizers.
    shrinking_mask = df_cross_section["rev_growth_yoy"] < -0.03
    agi_ops_score.loc[shrinking_mask] *= 0.78
    
    return agi_ops_score.clip(0.0, 100.0).round(1)
Section 03 · Direct JSON Downloads & Interactive Schema Previews

4 Static JSON Endpoints & Dynamic REST API v1

Click any of the 4 endpoint cards below to inspect its live JSON response payload, copy its URL, or download the raw file.

Open Live REST API (/api/v1/indices/agi-ops)
1. General Index Time-Series
1004 Daily EOD Points
/data/agi-ops-general.json

Daily cumulative returns and Base-100 index levels for the AGI-Ops Equal-Weight Index (54 firms), Top 10 Leaders, Bottom 10 Laggards, Efficiency Spread, and QQQ/IGV benchmarks.

2. Operational Sectors Breakdown
4 Operational Sectors
/data/agi-ops-sectors.json

Daily performance curves and average 0–100 sub-scores grouped across Hardware & Semiconductors, AI-Native, Cloud & Infra, and Enterprise SaaS.

3. Top 10 Leaders vs. Bottom 10 Laggards
Top 10 / Bottom 10 Baskets
/data/agi-ops-extremes.json

Constituent profiles, 4-year spread metrics, and daily performance curves for the Top 10 Process Optimization Leaders vs. Bottom 10 Bloated Legacy Laggards.

4. Full 54-Company Scoring Database
54 Verified Tickers
/data/agi-ops-constituents.json

Complete cross-sectional dataset of all 54 technology firms with 0–100 AGI-Ops scores, 4 audited accounting sub-scores, SEC filing lag metadata, liquidity metrics, and 4Y historical curves.

Live Response Preview: /data/agi-ops-general.json
Key Schema Fields:dateagi_ops_equal_weightagi_ops_leaders_top10agi_ops_laggards_bottom10leaders_laggards_spreadqqq_benchmarkrebalancedrebalanceQuartereffectiveFilingCutoff
Open Raw JSON
GET https://indexlovers.com/data/agi-ops-general.json · 200 OK · application/json
{
  "indexName": "The AGI-Ops Index",
  "ticker": "AGIOPS",
  "filingLagDays": 55,
  "totalSessions": 1004,
  "latestPoint": {
    "date": "2026-10-23",
    "agi_ops_equal_weight": 219.68,
    "agi_ops_leaders_top10": 510.87,
    "agi_ops_laggards_bottom10": 88.32,
    "leaders_laggards_spread": 422.56,
    "qqq_benchmark": 159.03,
    "igv_benchmark": 111.82,
    "rebalanced": false,
    "rebalanceQuarter": "2026-Q4",
    "effectiveFilingCutoff": "2026-08-07",
    "lean_long": 510.87,
    "bloated_short": 88.32,
    "long_short_spread": 422.56,
    "LeanAI_EqualWeight": 219.68,
    "QQQ": 159.03,
    "IGV": 111.82,
    "LeanAI_Index": 610.87,
    "AGIOps_Index": 610.87,
    "QQQ_Index": 259.03,
    "IGV_Index": 211.82
  }
}
Section 04 · Quickstart Integration

Ready-to-Copy cURL & Python Snippets

Pull the AGI-Ops Index time-series, sector curves, or the 54-company 0–100 scoring dataframe directly into your research environment.

cURL · Fetch REST API & Download Static JSON Feeds
# 1. Query the dynamic REST API v1 endpoint (supports ?range=1M|6M|1Y|2Y|4Y|MAX)
curl -s "https://indexlovers.com/api/v1/indices/agi-ops?range=4Y" | jq '.summary'

# 2. Download any of the 4 static JSON datasets directly
curl -O "https://indexlovers.com/data/agi-ops-general.json"
curl -O "https://indexlovers.com/data/agi-ops-sectors.json"
curl -O "https://indexlovers.com/data/agi-ops-extremes.json"
curl -O "https://indexlovers.com/data/agi-ops-constituents.json"
Python (requests + pandas) · Load AGI-Ops DataFrames
import requests
import pandas as pd

BASE_URL = "https://indexlovers.com"

# 1. Load the 54-company AGI-Ops Leaderboard & Accounting Pillars
constituents = requests.get(f"{BASE_URL}/data/agi-ops-constituents.json", timeout=15).json()
df_scores = pd.DataFrame(constituents)

print("Top 5 AGI-Ops Process Optimization Leaders:")
print(df_scores[["rank", "ticker", "operationalSector", "agiOpsScore", "productivityScore", "marginScore", "return4Y"]].head(5))

# 2. Load 4-Year Daily Time-Series (with 55-day SEC filing lag enforced)
general = requests.get(f"{BASE_URL}/data/agi-ops-general.json", timeout=15).json()
df_ts = pd.DataFrame(general["timeseries"]).set_index("date")
print(f"Loaded {len(df_ts)} point-in-time trading sessions.")