Equity Rank · Schema

AuditTrail

Phase 48 / AUDIT-01..05 — versioned, structured "show your work" trail. Schema-stable: breaking changes MUST bump `schema_version` AND update the pinned fixture in `backend/tests/test_audit_trail.py`. Compliance: - "model_horizon" defaults to "~1 year" (matches Phase 46 Model Horizon badge on ValuationPanel projected section). - `disclaimer` field always contains the LEGAL-OK negation pattern. LEGAL-OK: disclaimer field text NEGATES "forecast" and "price target".

FinanceStock AnalysisValuationInvestment Tools

Properties

Name Type Description
schema_version string
ticker string
sector object
model_horizon string
inputs object
sector_multiples object
consensus object
anomalies array
anomaly_window_days integer
disclaimer string
generated_at string
compute_ms object
View JSON Schema on GitHub

JSON Schema

equity-rank-com-audit-trail-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/equity-rank-com/json-schema/equity-rank-com-audit-trail-schema.json",
  "title": "AuditTrail",
  "description": "Phase 48 / AUDIT-01..05 — versioned, structured \"show your work\" trail.\n\nSchema-stable: breaking changes MUST bump `schema_version` AND update the\npinned fixture in `backend/tests/test_audit_trail.py`.\n\nCompliance:\n- \"model_horizon\" defaults to \"~1 year\" (matches Phase 46 Model Horizon\n  badge on ValuationPanel projected section).\n- `disclaimer` field always contains the LEGAL-OK negation pattern.\n  LEGAL-OK: disclaimer field text NEGATES \"forecast\" and \"price target\".",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/equity-rank-com-audit-api-openapi.yml#/components/schemas/AuditTrail",
  "properties": {
    "schema_version": {
      "type": "string",
      "title": "Schema Version",
      "default": "1.0"
    },
    "ticker": {
      "type": "string",
      "title": "Ticker"
    },
    "sector": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sector"
    },
    "model_horizon": {
      "type": "string",
      "title": "Model Horizon",
      "default": "~1 year"
    },
    "inputs": {
      "$ref": "#/$defs/AuditInputSnapshot"
    },
    "sector_multiples": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditSectorMultiples"
        },
        {
          "type": "null"
        }
      ]
    },
    "consensus": {
      "$ref": "#/$defs/AuditConsensusMath"
    },
    "anomalies": {
      "items": {
        "$ref": "#/$defs/AuditAnomaly"
      },
      "type": "array",
      "title": "Anomalies"
    },
    "anomaly_window_days": {
      "type": "integer",
      "title": "Anomaly Window Days",
      "default": 7
    },
    "disclaimer": {
      "type": "string",
      "title": "Disclaimer",
      "default": "These values are model scenarios under stated assumptions — not a forecast, price target, or recommendation. For informational use only."
    },
    "generated_at": {
      "type": "string",
      "title": "Generated At"
    },
    "compute_ms": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Compute Ms"
    }
  },
  "type": "object",
  "required": [
    "ticker"
  ],
  "$defs": {
    "AuditAnomaly": {
      "properties": {
        "field_path": {
          "type": "string",
          "title": "Field Path"
        },
        "rule": {
          "type": "string",
          "title": "Rule"
        },
        "raw_value": {
          "title": "Raw Value"
        },
        "fetch_function": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fetch Function"
        },
        "severity": {
          "type": "string",
          "title": "Severity",
          "default": "error"
        },
        "root_cause": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Root Cause"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "field_path",
        "rule"
      ],
      "title": "AuditAnomaly",
      "description": "One row from `av_anomaly_log` within the audit window. Lets the user\nsee if data quality issues affected this ticker's valuation."
    },
    "AuditConsensusMath": {
      "properties": {
        "consensus_fair_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Consensus Fair Value"
        },
        "consensus_margin_of_safety": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Consensus Margin Of Safety"
        },
        "methods_used": {
          "type": "integer",
          "title": "Methods Used",
          "default": 0
        },
        "method_contributions": {
          "items": {
            "$ref": "#/$defs/AuditMethodValue"
          },
          "type": "array",
          "title": "Method Contributions"
        },
        "interval_low": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Interval Low"
        },
        "interval_high": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Interval High"
        },
        "confidence": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Confidence"
        },
        "model_confidence_score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model Confidence Score"
        }
      },
      "type": "object",
      "title": "AuditConsensusMath",
      "description": "The consensus blend's intermediate values: methods included + their\nweights, the weighted average math, and the resulting consensus FV.\nIncludes the 80% CI on the consensus when Phase 47 data is present."
    },
    "AuditInputSnapshot": {
      "properties": {
        "price": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Price"
        },
        "eps_ttm": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Eps Ttm"
        },
        "bvps": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bvps"
        },
        "ps_ratio": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ps Ratio"
        },
        "ev_ebitda_ratio": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ev Ebitda Ratio"
        },
        "beta": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Beta"
        },
        "revenue_growth_yoy": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Revenue Growth Yoy"
        },
        "eps_growth_yoy": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Eps Growth Yoy"
        },
        "dividend_yield": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Dividend Yield"
        },
        "forward_pe_ratio": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Forward Pe Ratio"
        },
        "realized_vol_60d": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Realized Vol 60D"
        },
        "market_cap": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Market Cap"
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Updated At"
        }
      },
      "type": "object",
      "title": "AuditInputSnapshot",
      "description": "Snapshot of inputs that drove the valuation, with timestamps.\n\nThese are the SAME values that compute_* functions consumed. No re-fetch\n— they come from screener_cache's already-persisted columns."
    },
    "AuditMethodValue": {
      "properties": {
        "method": {
          "type": "string",
          "title": "Method"
        },
        "fair_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fair Value"
        },
        "weight": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Weight"
        },
        "interval_low": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Interval Low"
        },
        "interval_high": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Interval High"
        },
        "confidence": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Confidence"
        }
      },
      "type": "object",
      "required": [
        "method"
      ],
      "title": "AuditMethodValue",
      "description": "One method's contribution to the consensus.\n\n`weight` is the SECTOR_METHOD_WEIGHTS entry; `fair_value` is the\ncompute_*_fair_value output; `interval_low/high` are the 80% CI bounds\nfrom Phase 47 (Optional — rows pre-Phase-47 won't have them)."
    },
    "AuditSectorMultiples": {
      "properties": {
        "sector": {
          "type": "string",
          "title": "Sector"
        },
        "pe_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Pe Multiple"
        },
        "pb_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Pb Multiple"
        },
        "ps_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ps Multiple"
        },
        "ev_ebitda_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ev Ebitda Multiple"
        },
        "ev_sales_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ev Sales Multiple"
        },
        "roe_pct": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Roe Pct"
        },
        "pfcf_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Pfcf Multiple"
        },
        "evfcf_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Evfcf Multiple"
        },
        "ev_ebit_multiple": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ev Ebit Multiple"
        }
      },
      "type": "object",
      "required": [
        "sector"
      ],
      "title": "AuditSectorMultiples",
      "description": "Sector multiples applied during this calc — the DEFAULT_SECTOR_MULTIPLES\ndict entry for this ticker's sector, surfaced for transparency."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/equity-rank-com-audit-trail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.