---
title: "Cron Name Index Model"
method: POST
path: "/cron/name-index-model"
tags: ["cron"]
---

# Cron Name Index Model

`POST /cron/name-index-model`

## Request

- Base URL: `https://api.equity-rank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.equity-rank.com/cron/name-index-model`
- Auth: none declared

Refit every symbol's single-index risk model into name_index_model.

BKM Ch. 8 / audit 2026-09-30 #3. 252-trading-day OLS of each name's daily
excess SIMPLE returns on SPY's: beta_raw, beta_blume, alpha_ann,
resid_var_ann (σ²(e)), r_squared. Pure DB→DB — one
price_history_close_panel RPC (mig 174) in, one upsert on the symbol PK
(mig 224) out. No AlphaVantage, no yfinance, no screener batch.

Normally runs as the tail of the 22:30 UTC price-history chain
(scheduler_setup.py) so the fit always includes the close that just
landed. This endpoint exists for a manual refit after a backfill.
Idempotent — the table is one slot per symbol and a re-run rewrites it.

## Headers

- `x-cron-secret` string, nullable

## Response `202`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/equity-rank/apis/equity-rank-api.md) · [All operations](https://skmtc.dev/equity-rank/apis/equity-rank-api/llms.txt) · [OpenAPI document](https://skmtc.dev/equity-rank/apis/equity-rank-api/revisions/c2f2463fee33?raw)
