---
title: "Economic model"
method: GET
path: "/api/company/economic-model"
tags: ["Company"]
---

# Economic model

`GET /api/company/economic-model`

![Stock](https://img.shields.io/badge/Stock-f97316) ![Pro](https://img.shields.io/badge/Pro-8b5cf6)

## 🔒 Audit-grade by construction

**Every claim in this response is defensible in an IC meeting or audit.** Most competing "AI fundamentals" APIs return plausible-sounding prose you cannot verify. This endpoint is different. For each claim you get:

- 🔗 a clickable URL to the exact authoritative document (SEC EDGAR 10-K / 10-Q / 8-K),
- 📄 the document section the claim is drawn from (e.g., `Item 7 MD&A`, `Note 3 — Revenue`),
- 💬 a **verbatim quote** from that section (20–400 characters, copied word-for-word),
- ✅ **machine-verified at generation time** — we fetch the filing, strip HTML, and confirm the quote literally appears in the document before we store it. Fabricated or paraphrased quotes are rejected and the model is regenerated.

An analyst can click a URL, jump to the section, `Ctrl-F` the quote, and have the source paragraph in front of them in ten seconds. No more "trust me, the AI read the filing."

## What's in the model

Offerings, value delivery, monetization, cost structure, reinvestment, cash conversion, sensitivities, unit economics, capital allocation, management style, operating levers, strategic initiatives, structural advantages, flywheels, and failure modes.

Every section and array item carries a `sources` array of machine-verified citations.

## Two possible response shapes

### ✅ `200 OK` — model is ready

Returns the full `EconomicModel` JSON. Stable and safe to cache client-side.

### ⏳ `202 Accepted` — model is being generated

The model for this company has never been built. A background job has been queued (or one was already in flight).

**Generation takes a few minutes.** The job fetches the company's latest 10-K, 10-Q, and 8-Ks directly from SEC EDGAR, passes them to the AI along with strict citation requirements, verifies every quote against the filing text, and writes the result.

**Poll this same endpoint** with the same `symbol` — once the job completes you will start receiving the `200` response. A reasonable poll interval is every 30 seconds.

```json
{
  "status": "generating",
  "jobId": "64abfe1234567890abcdef12",
  "message": "Generating economic model — this can take a few minutes. Call this endpoint again to retrieve the result."
}
```

## Deduplication

If a generation job is already in flight for this company — regardless of which account queued it — this endpoint returns the existing `jobId`. You will never queue two generations for the same company.

## Cost

Generation runs server-side and does not count against your API request budget beyond the call to this endpoint.

## Query parameters

- `symbol` string
- `cik` integer
- `cusip` string
- `composite_figi` string
- `share_class_figi` string

## Response `200`

Model is ready. Full economic model JSON with per-claim SEC-filing citations.

- object
  - `summary` object — High-level inventory of what the company sells.
    - `primaryOfferings` string[]
    - `secondaryOfferings` string[]
  - `valueDelivery` object — How the company creates value and who pays for it.
    - `offeringTypes` string[]
    - `customer` object
      - `primaryPayerTypes` string[]
      - `demandDriver` string
    - `unitOfValue` string
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `monetization` object — Revenue model, pricing mechanisms, pricing power, and revenue drivers.
    - `revenueModel` string — one-time | recurring | hybrid
    - `pricingMechanisms` string[]
    - `priceSettingPower` string — price-taker | some | strong | regulated | unknown
    - `primaryRevenueDrivers` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `costStructure` object — Variable and fixed cost drivers, margin mechanics, primary constraint.
    - `variableCostDrivers` string[]
    - `fixedCostDrivers` string[]
    - `marginDriverMechanisms` string[]
    - `primaryConstraint` string
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `reinvestment` object — Capital intensity and reinvestment orientation.
    - `capitalIntensity` string — asset-light | moderate | asset-heavy | regulated-asset-base | unknown
    - `reinvestmentVehicles` string[]
    - `maintenanceVsGrowth` string — mostly-maintenance | balanced | mostly-growth | unknown
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `cashConversion` object — Working-capital profile and cash-flow timing.
    - `workingCapitalProfile` string — negative | neutral | positive | seasonal | unknown
    - `cashTimingNotes` string
    - `keyBalanceSheetSensitivities` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `sensitivities` object — What moves top line, margin, and balance sheet.
    - `topLineSensitivities` string[]
    - `marginSensitivities` string[]
    - `balanceSheetSensitivities` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `unitEconomics` object — Per-unit revenue drivers, variable costs, and marginal margin.
    - `unit` string
    - `revenueDrivers` string[]
    - `variableCosts` string[]
    - `marginalMargin` string — low | mid | high
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `capitalAllocation` object — Capital-allocation priorities, historical pattern, and metrics to watch.
    - `priorities` string[]
    - `historicalPattern` string
    - `watchMetrics` string[], nullable
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `managementStyle` object — Management orientation and strategy notes.
    - `orientation` string — growth-first | margin-first | balanced | capital-return
    - `strategyNotes` string
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `provenance` object — Whole-model confidence and a deduped list of the source kinds cited across the model.
    - `confidence` string — low | medium | high
    - `sources` string[]
  - `offerings` object[] — Structured list of each product or service with monetization, economics notes, KPIs, and citations.
    - `name` string
    - `type` string — product | service | platform | bundle
    - `category` string, nullable
    - `targetCustomer` string, nullable
    - `revenueRole` string — core | growth | adjacent | legacy | other
    - `monetization` object, nullable
      - `model` string
      - `pricingUnit` string, nullable
    - `economicsNotes` object, nullable
      - `marginProfile` string, nullable
      - `keyCostDrivers` string[], nullable
      - `keyGrowthDrivers` string[], nullable
    - `kpiMappings` object, nullable
      - `primaryMetrics` string[], nullable
      - `supportingMetrics` string[], nullable
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `operatingLevers` object[] — Named operating levers with directionality (↑ lever → ↑ revenue, etc.) and the metrics they map to.
    - `lever` string
    - `directionality` string
    - `mapsToMetrics` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `strategicInitiatives` object[] — Named initiatives with stage, expected impact, time horizon, affected levers, metrics to watch, and citations.
    - `initiative` string
    - `category` string
    - `rationale` string
    - `financialImpact` string
    - `stage` string — announced | early | scaling | mature
    - `impactLevel` string — minor | moderate | major
    - `timeHorizon` string — short | medium | long
    - `affectsLevers` string[], nullable
    - `watchMetrics` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `structuralAdvantages` object[] — Moat elements with type, mechanism, persistence, affected levers, and citations.
    - `advantage` string
    - `type` string — network-effect | switching-cost | scale-economy | data-advantage | brand | regulatory-moat | distribution | ip-patents | other
    - `mechanism` string
    - `persistence` string — weak | moderate | strong
    - `affectsLevers` string[]
    - `watchMetrics` string[]
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `flywheels` object[] — Causal loops (growth / margin / defensibility) with ordered steps and citations.
    - `name` string
    - `loop` string[]
    - `impact` string — growth | margin | defensibility
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.
  - `failureModes` object[] — Risks that could break the business model, with mechanism, metrics to watch, and citations.
    - `risk` string
    - `mechanism` string
    - `watchMetrics` string[], nullable
    - `sources` EconSource[]
      - `url` string, uri, required — HTTPS URL to the cited document (SEC EDGAR 10-K / 10-Q / 8-K / 20-F / 40-F / 6-K, investor presentation, earnings call, or website)
      - `source` '10-K' | '10-Q' | '8-K' | '20-F' | '40-F' | '6-K' | 'investor-presentation' | 'earnings-call' | 'website', required — Document kind. Foreign private issuers file 20-F/40-F annual reports and 6-K interim reports instead of 10-K/10-Q/8-K.
      - `publisher` string, required — URL host, derived server-side (e.g., `www.sec.gov`).
      - `section` string, required — Named location within the document (e.g., `Item 7 MD&A`, `Note 3 — Revenue`, `Recent Developments`).
      - `quote` string, required — Verbatim excerpt (20–400 characters) copied word-for-word from the cited section. Machine-verified at generation time.
      - `validated` boolean — Present and `false` only when the URL could not be re-fetched at verification time (e.g., 403/429/timeout). Absent ≡ fully verified.

## Other responses

- `202` — Model generation has been queued (or one is already in flight). Poll the same URL for the finished result.
- `400` — Invalid parameters, company not found, or the symbol is not a stock (funds use `/api/fund/exposure-model`)
- `401` — Missing or invalid API token
- `403` — Feature not available on current plan

---

[API](https://skmtc.net/stockfit/apis/stockfit-api.md) · [All operations](https://skmtc.net/stockfit/apis/stockfit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stockfit/stockfit-api/revisions/3d5897270d8a/schema)
