{"openapi":"3.1.0","info":{"title":"petral API","description":"Crude desk data API — sourced, proxy-labelled, descriptive only.","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Root  Get"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/api/benchmarks":{"get":{"summary":"Benchmarks","operationId":"benchmarks_api_benchmarks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BenchmarkInfo"},"type":"array","title":"Response Benchmarks Api Benchmarks Get"}}}}}}},"/api/curve/{benchmark}":{"get":{"summary":"Curve","operationId":"curve_api_curve__benchmark__get","parameters":[{"name":"benchmark","in":"path","required":true,"schema":{"type":"string","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/history/{benchmark}":{"get":{"summary":"History","operationId":"history_api_history__benchmark__get","parameters":[{"name":"benchmark","in":"path","required":true,"schema":{"type":"string","title":"Benchmark"}},{"name":"window","in":"query","required":false,"schema":{"type":"string","default":"1Y","title":"Window"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/curves/{benchmark}":{"get":{"summary":"Curves","operationId":"curves_api_curves__benchmark__get","parameters":[{"name":"benchmark","in":"path","required":true,"schema":{"type":"string","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurvesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/markets":{"get":{"summary":"Markets","operationId":"markets_api_markets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketsResponse"}}}}}}},"/api/screener":{"get":{"summary":"Screener","operationId":"screener_api_screener_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerResponse"}}}}}}},"/api/instrument":{"get":{"summary":"Instrument","description":"Yahoo-style detail (1y daily candles + stats) for one screener symbol.","operationId":"instrument_api_instrument_get","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstrumentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/term-structure/{benchmark}":{"get":{"summary":"Term Structure","operationId":"term_structure_api_term_structure__benchmark__get","parameters":[{"name":"benchmark","in":"path","required":true,"schema":{"type":"string","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TermStructureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cracks":{"get":{"summary":"Cracks","operationId":"cracks_api_cracks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CracksResponse"}}}}}}},"/api/eia":{"get":{"summary":"Eia","operationId":"eia_api_eia_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EIAResponse"}}}}}}},"/api/cot/{benchmark}":{"get":{"summary":"Cot","operationId":"cot_api_cot__benchmark__get","parameters":[{"name":"benchmark","in":"path","required":true,"schema":{"type":"string","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/COTResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/macro":{"get":{"summary":"Macro","operationId":"macro_api_macro_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MacroResponse"}}}}}}},"/api/grade-diffs":{"get":{"summary":"Grade Diffs","operationId":"grade_diffs_api_grade_diffs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeDiffsResponse"}}}}}}},"/api/tanker-equities":{"get":{"summary":"Tanker Equities","description":"Crude-tanker equity index + BWET as a freight-direction proxy.","operationId":"tanker_equities_api_tanker_equities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TankerEquityResponse"}}}}}}},"/api/freight":{"get":{"summary":"Freight","operationId":"freight_api_freight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreightResponse"}}}}}}},"/api/news":{"get":{"summary":"News","operationId":"news_api_news_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsResponse"}}}}}}},"/api/news/markers":{"get":{"summary":"News Markers","description":"High-importance headlines in [start, end) for the chart overlay.\n\nDeliberately not folded into /api/news: that endpoint is a 60 s live feed of\nthe current window, this one is a historical range read whose answer barely\nchanges, and sharing a cache entry would make one of them wrong. Falls\nthrough to _DEFAULT_CACHE (5 min edge, 1 day stale-while-revalidate).","operationId":"news_markers_api_news_markers_get","parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsMarkersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/news/topic":{"get":{"summary":"News Topic","operationId":"news_topic_api_news_topic_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicFeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/article":{"get":{"summary":"Article","operationId":"article_api_article_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/synthesis":{"get":{"summary":"Synthesis","operationId":"synthesis_api_synthesis_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SynthesisResponse"}}}}}}},"/api/ai-brief":{"get":{"summary":"Ai Brief Report","description":"Gemini-written morning/close desk note. One generation per slot per\nday (KV-cached); the curves cron pre-generates the close report.","operationId":"ai_brief_report_api_ai_brief_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIBriefResponse"}}}}}}},"/api/ais/capture":{"get":{"summary":"Ais Capture","operationId":"ais_capture_api_ais_capture_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AISCaptureResponse"}}}}}}},"/api/ais/capture-history":{"get":{"summary":"Ais Capture History","operationId":"ais_capture_history_api_ais_capture_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AISCaptureHistoryResponse"}}}}}}},"/api/chokepoints":{"get":{"summary":"Chokepoints","description":"IMF PortWatch daily chokepoint transit counts (free, keyless).","operationId":"chokepoints_api_chokepoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChokepointFlowResponse"}}}}}}},"/api/cron/curves":{"get":{"summary":"Cron Curves","description":"Vercel Cron handler: archive today's EOD forward curves (scrubber\nhistory accrues one real snapshot per day). Piggybacks the AI close\nreport (21:45 UTC is post-settlement) — Hobby's 2 cron slots are full,\nso the report shares this one; the morning report is generated\non-demand by the first visitor and KV-cached.","operationId":"cron_curves_api_cron_curves_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Cron Curves Api Cron Curves Get"}}}}}}},"/api/weather":{"get":{"summary":"Weather","operationId":"weather_api_weather_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeatherResponse"}}}}}}},"/api/refinery":{"get":{"summary":"Refinery","operationId":"refinery_api_refinery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefineryResponse"}}}}}}},"/api/opec":{"get":{"summary":"Opec","operationId":"opec_api_opec_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPECResponse"}}}}}}},"/api/production":{"get":{"summary":"Production","operationId":"production_api_production_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductionResponse"}}}}}}},"/api/demand":{"get":{"summary":"Demand","operationId":"demand_api_demand_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemandResponse"}}}}}}},"/api/arb":{"get":{"summary":"Arb","operationId":"arb_api_arb_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArbResponse"}}}}}}},"/api/storage":{"get":{"summary":"Storage","operationId":"storage_api_storage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageResponse"}}}}}}},"/api/storage-breakeven":{"get":{"summary":"Storage Breakeven","description":"VLCC floating-storage breakeven — live contango vs an assumed charter.","operationId":"storage_breakeven_api_storage_breakeven_get","parameters":[{"name":"benchmark","in":"query","required":false,"schema":{"type":"string","default":"BRENT","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FloatingStorageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/port-congestion":{"get":{"summary":"Port Congestion","operationId":"port_congestion_api_port_congestion_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortCongestionResponse"}}}}}}},"/api/attribution":{"get":{"summary":"Attribution","description":"Today's move split into macro contributions and a crude-specific residual.","operationId":"attribution_api_attribution_get","parameters":[{"name":"benchmark","in":"query","required":false,"schema":{"type":"string","default":"WTI","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/balance":{"get":{"summary":"Balance","description":"The WPSR weekly identity and the adjustment term it forces.","operationId":"balance_api_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponse"}}}}}}},"/api/curve-factors":{"get":{"summary":"Curve Factors","description":"Level / slope / curvature, from petral's own accrued curve archive.","operationId":"curve_factors_api_curve_factors_get","parameters":[{"name":"benchmark","in":"query","required":false,"schema":{"type":"string","default":"WTI","title":"Benchmark"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurveFactorsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/relative-value":{"get":{"summary":"Relative Value","description":"Brent-WTI against the level its live drivers imply.","operationId":"relative_value_api_relative_value_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelativeValueResponse"}}}}}}},"/api/revisions":{"get":{"summary":"Revisions","description":"EIA's first print against its current figure — the vintage archive.","operationId":"revisions_api_revisions_get","parameters":[{"name":"series","in":"query","required":false,"schema":{"type":"string","default":"crude","title":"Series"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevisionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/hedge":{"get":{"summary":"Hedge","description":"Minimum-variance hedge ratios and the basis risk they leave behind.","operationId":"hedge_api_hedge_get","parameters":[{"name":"exposure","in":"query","required":false,"schema":{"type":"string","default":"RBOB","title":"Exposure"}},{"name":"holding_days","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Holding Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HedgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vol-surface":{"get":{"summary":"Vol Surface","description":"ETF option surface + an arbitrage-free SSVI fit. A proxy for crude vol.","operationId":"vol_surface_api_vol_surface_get","parameters":[{"name":"underlying","in":"query","required":false,"schema":{"type":"string","default":"USO","title":"Underlying"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolSurfaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fx":{"get":{"summary":"Fx","operationId":"fx_api_fx_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FXResponse"}}}}}}},"/api/yield-curve":{"get":{"summary":"Yield Curve","operationId":"yield_curve_api_yield_curve_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YieldCurveResponse"}}}}}}},"/api/inflation":{"get":{"summary":"Inflation","operationId":"inflation_api_inflation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InflationResponse"}}}}}}},"/api/central-bank":{"get":{"summary":"Central Bank","operationId":"central_bank_api_central_bank_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CentralBankResponse"}}}}}}},"/api/seasonality":{"get":{"summary":"Seasonality","operationId":"seasonality_api_seasonality_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonalityResponse"}}}}}}},"/api/zscore":{"get":{"summary":"Zscore","operationId":"zscore_api_zscore_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZScoreResponse"}}}}}}},"/api/risk-metrics":{"get":{"summary":"Risk Metrics","operationId":"risk_metrics_api_risk_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskMetricsResponse"}}}}}}},"/api/pnl":{"get":{"summary":"Pnl","operationId":"pnl_api_pnl_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PnLResponse"}}}}}}},"/api/greeks":{"get":{"summary":"Greeks","operationId":"greeks_api_greeks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GreeksResponse"}}}}}}},"/api/journal":{"get":{"summary":"Journal","operationId":"journal_api_journal_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalResponse"}}}}}}},"/api/alerts":{"get":{"summary":"Alerts","operationId":"alerts_api_alerts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertsResponse"}}}}}}},"/api/scenarios":{"get":{"summary":"Scenarios","operationId":"scenarios_api_scenarios_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioResponse"}}}}}}},"/api/econ-surprise":{"get":{"summary":"Econ Surprise","operationId":"econ_surprise_api_econ_surprise_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EconSurpriseResponse"}}}}}}},"/api/candles/{market}":{"get":{"summary":"Candles","operationId":"candles_api_candles__market__get","parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"}},{"name":"tf","in":"query","required":false,"schema":{"type":"string","default":"1D","title":"Tf"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandlesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AIBriefResponse":{"properties":{"slot":{"type":"string","title":"Slot"},"date":{"type":"string","title":"Date"},"generated_at":{"type":"string","title":"Generated At"},"model":{"type":"string","title":"Model"},"report":{"type":"string","title":"Report"},"cached":{"type":"boolean","title":"Cached"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["slot","date","generated_at","model","report","cached","provenance"],"title":"AIBriefResponse"},"AISCaptureHistoryResponse":{"properties":{"points":{"items":{"$ref":"#/components/schemas/RegionHistoryPoint"},"type":"array","title":"Points"},"regions":{"items":{"$ref":"#/components/schemas/CaptureRegion"},"type":"array","title":"Regions"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["points","regions","provenance"],"title":"AISCaptureHistoryResponse"},"AISCaptureResponse":{"properties":{"captured_at":{"type":"string","title":"Captured At"},"ships":{"items":{"$ref":"#/components/schemas/CaptureShip"},"type":"array","title":"Ships"},"regions":{"items":{"$ref":"#/components/schemas/CaptureRegion"},"type":"array","title":"Regions"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["captured_at","ships","regions","provenance"],"title":"AISCaptureResponse"},"ActiveStorm":{"properties":{"name":{"type":"string","title":"Name"},"classification":{"type":"string","title":"Classification"},"wind_mph":{"type":"integer","title":"Wind Mph"},"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"movement":{"type":"string","title":"Movement"},"advisory_summary":{"type":"string","title":"Advisory Summary"}},"type":"object","required":["name","classification","wind_mph","lat","lon","movement","advisory_summary"],"title":"ActiveStorm"},"AlertItem":{"properties":{"timestamp":{"type":"string","title":"Timestamp"},"category":{"type":"string","title":"Category"},"severity":{"type":"string","title":"Severity"},"title":{"type":"string","title":"Title"},"detail":{"type":"string","title":"Detail"},"acknowledged":{"type":"boolean","title":"Acknowledged"}},"type":"object","required":["timestamp","category","severity","title","detail","acknowledged"],"title":"AlertItem"},"AlertsResponse":{"properties":{"alerts":{"items":{"$ref":"#/components/schemas/AlertItem"},"type":"array","title":"Alerts"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["alerts","provenance"],"title":"AlertsResponse"},"ArbResponse":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/ArbRoute"},"type":"array","title":"Routes"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["routes","provenance"],"title":"ArbResponse"},"ArbRoute":{"properties":{"route":{"type":"string","title":"Route"},"grade":{"type":"string","title":"Grade"},"origin":{"type":"string","title":"Origin"},"destination":{"type":"string","title":"Destination"},"fob_price":{"type":"number","title":"Fob Price"},"freight_cost":{"type":"number","title":"Freight Cost"},"insurance":{"type":"number","title":"Insurance"},"duties":{"type":"number","title":"Duties"},"total_cost":{"type":"number","title":"Total Cost"},"dest_value":{"type":"number","title":"Dest Value"},"margin":{"type":"number","title":"Margin"},"viable":{"type":"boolean","title":"Viable"},"grade_key":{"type":"string","title":"Grade Key","default":""},"freight_route":{"type":"string","title":"Freight Route","default":""},"freight_route_name":{"type":"string","title":"Freight Route Name","default":""},"freight_ws":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Freight Ws"},"freight_flat_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Freight Flat Rate"},"freight_bbl_per_tonne":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Freight Bbl Per Tonne"},"freight_basis":{"type":"string","title":"Freight Basis","default":""},"freight_note":{"type":"string","title":"Freight Note","default":""},"freight_derived":{"type":"boolean","title":"Freight Derived","default":false}},"type":"object","required":["route","grade","origin","destination","fob_price","freight_cost","insurance","duties","total_cost","dest_value","margin","viable"],"title":"ArbRoute"},"ArticleResponse":{"properties":{"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"site":{"type":"string","title":"Site"},"title":{"type":"string","title":"Title"},"paragraphs":{"items":{"type":"string"},"type":"array","title":"Paragraphs"},"ok":{"type":"boolean","title":"Ok"},"note":{"type":"string","title":"Note"}},"type":"object","required":["url","final_url","site","title","paragraphs","ok","note"],"title":"ArticleResponse"},"AttributionFactor":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"beta":{"type":"number","title":"Beta"},"factor_move":{"type":"number","title":"Factor Move"},"contribution":{"type":"number","title":"Contribution"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["key","label","beta","factor_move","contribution","unit"],"title":"AttributionFactor"},"AttributionResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"benchmark":{"type":"string","title":"Benchmark","default":""},"target":{"type":"string","title":"Target","default":""},"date":{"type":"string","title":"Date","default":""},"total_move":{"type":"number","title":"Total Move","default":0.0},"drift":{"type":"number","title":"Drift","default":0.0},"factors":{"items":{"$ref":"#/components/schemas/AttributionFactor"},"type":"array","title":"Factors","default":[]},"macro_contribution":{"type":"number","title":"Macro Contribution","default":0.0},"residual":{"type":"number","title":"Residual","default":0.0},"macro_share_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Macro Share Pct"},"r_squared":{"type":"number","title":"R Squared","default":0.0},"window_days":{"type":"integer","title":"Window Days","default":0},"n_obs":{"type":"integer","title":"N Obs","default":0},"collinear":{"type":"boolean","title":"Collinear","default":false},"headline":{"type":"string","title":"Headline","default":""},"excluded_factors":{"items":{"type":"string"},"type":"array","title":"Excluded Factors","default":[]},"residual_history":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Residual History","default":[]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"AttributionResponse","description":"Today's move split into macro contributions and a crude-specific residual.\n\n`residual` is the output that matters — the part of the day the macro\nfactors cannot account for. Descriptive: it decomposes a move that already\nhappened and makes no claim about the next one."},"BalanceResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"latest":{"anyOf":[{"$ref":"#/components/schemas/WeeklyBalanceModel"},{"type":"null"}]},"history":{"items":{"$ref":"#/components/schemas/WeeklyBalanceModel"},"type":"array","title":"History","default":[]},"percentile":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentile"},"weeks_since_larger":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weeks Since Larger"},"n_weeks":{"type":"integer","title":"N Weeks","default":0},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"BalanceResponse","description":"The WPSR balance identity and the adjustment term it forces.\n\nEIA measures flows and stocks separately and they do not agree; the gap is\npublished as \"adjustment\". A week carrying a large adjustment is a week\nwhose headline is substantially survey error rather than barrels, which is\nthe most useful quality signal in the report."},"BalanceTermModel":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"mbd":{"type":"number","title":"Mbd"},"mmbbl":{"type":"number","title":"Mmbbl"},"sign":{"type":"integer","title":"Sign"}},"type":"object","required":["key","label","mbd","mmbbl","sign"],"title":"BalanceTermModel"},"BenchmarkInfo":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"exchange":{"type":"string","title":"Exchange"}},"type":"object","required":["key","name","unit","exchange"],"title":"BenchmarkInfo"},"BunkerPrice":{"properties":{"port":{"type":"string","title":"Port"},"fuel":{"type":"string","title":"Fuel"},"price":{"type":"number","title":"Price"},"unit":{"type":"string","title":"Unit"},"change_1d":{"type":"number","title":"Change 1D"}},"type":"object","required":["port","fuel","price","unit","change_1d"],"title":"BunkerPrice"},"COTPoint":{"properties":{"date":{"type":"string","title":"Date"},"long_mm":{"type":"number","title":"Long Mm"},"short_mm":{"type":"number","title":"Short Mm"},"net_mm":{"type":"number","title":"Net Mm"},"oi":{"type":"number","title":"Oi"}},"type":"object","required":["date","long_mm","short_mm","net_mm","oi"],"title":"COTPoint"},"COTResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"name":{"type":"string","title":"Name"},"series":{"items":{"$ref":"#/components/schemas/COTPoint"},"type":"array","title":"Series"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","name","series","provenance"],"title":"COTResponse"},"CPIRelease":{"properties":{"date":{"type":"string","title":"Date"},"country":{"type":"string","title":"Country"},"period":{"type":"string","title":"Period"},"actual":{"type":"number","title":"Actual"},"expected":{"type":"number","title":"Expected"},"prior":{"type":"number","title":"Prior"},"surprise":{"type":"number","title":"Surprise"}},"type":"object","required":["date","country","period","actual","expected","prior","surprise"],"title":"CPIRelease"},"CalendarEvent":{"properties":{"date":{"type":"string","title":"Date"},"time":{"type":"string","title":"Time"},"event":{"type":"string","title":"Event"},"expected":{"type":"string","title":"Expected"},"actual":{"type":"string","title":"Actual"},"impact":{"type":"string","title":"Impact"}},"type":"object","required":["date","time","event","expected","actual","impact"],"title":"CalendarEvent"},"Candle":{"properties":{"time":{"type":"string","title":"Time"},"open":{"type":"number","title":"Open"},"high":{"type":"number","title":"High"},"low":{"type":"number","title":"Low"},"close":{"type":"number","title":"Close"},"volume":{"type":"integer","title":"Volume"}},"type":"object","required":["time","open","high","low","close","volume"],"title":"Candle"},"CandlesResponse":{"properties":{"market":{"type":"string","title":"Market"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"timeframe":{"type":"string","title":"Timeframe"},"candles":{"items":{"$ref":"#/components/schemas/Candle"},"type":"array","title":"Candles"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["market","name","unit","timeframe","candles","provenance"],"title":"CandlesResponse"},"CaptureRegion":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"},"bbox":{"items":{"type":"number"},"type":"array","title":"Bbox"},"total":{"type":"integer","title":"Total"},"terr":{"type":"integer","title":"Terr"},"sat":{"type":"integer","title":"Sat"},"counts":{"anyOf":[{"$ref":"#/components/schemas/RegionCounts"},{"type":"null"}]},"directional":{"type":"boolean","title":"Directional","default":false}},"type":"object","required":["key","name","color","bbox","total","terr","sat"],"title":"CaptureRegion"},"CaptureShip":{"properties":{"id":{"type":"string","title":"Id"},"rk":{"type":"string","title":"Rk"},"name":{"type":"string","title":"Name"},"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"flag":{"type":"string","title":"Flag"},"sog":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sog"},"cog":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cog"},"dst":{"type":"string","title":"Dst","default":""},"dwt":{"type":"integer","title":"Dwt","default":0},"loa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Loa"},"cls":{"type":"string","title":"Cls","default":"UNKNOWN"},"cby":{"type":"string","title":"Cby","default":""},"dir":{"type":"string","title":"Dir","default":""},"typ":{"type":"string","title":"Typ","default":"UNKNOWN"},"src":{"type":"string","title":"Src"}},"type":"object","required":["id","rk","name","lat","lon","flag","src"],"title":"CaptureShip","description":"One tanker in the hourly scrape.\n\nNumeric since 2026-07-23. These were previously display strings (\"6.4 kn\",\n\"319000\" or \"—\"), which made every downstream computation — size\nsegmentation, DWT-weighted flow, direction — impossible on data we were\nalready collecting. build.py coerces older records into this shape."},"CentralBankInfo":{"properties":{"bank":{"type":"string","title":"Bank"},"country":{"type":"string","title":"Country"},"current_rate":{"type":"number","title":"Current Rate"},"next_meeting":{"type":"string","title":"Next Meeting"},"meetings":{"items":{"$ref":"#/components/schemas/RateMeeting"},"type":"array","title":"Meetings"}},"type":"object","required":["bank","country","current_rate","next_meeting","meetings"],"title":"CentralBankInfo"},"CentralBankResponse":{"properties":{"banks":{"items":{"$ref":"#/components/schemas/CentralBankInfo"},"type":"array","title":"Banks"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["banks","provenance"],"title":"CentralBankResponse"},"ChokepointFlow":{"properties":{"portid":{"type":"string","title":"Portid"},"name":{"type":"string","title":"Name"},"region_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Key"},"latest_tankers":{"type":"integer","title":"Latest Tankers"},"latest_total":{"type":"integer","title":"Latest Total"},"avg_tankers_7d":{"type":"number","title":"Avg Tankers 7D"},"trend_tankers_7d":{"type":"number","title":"Trend Tankers 7D"},"series":{"items":{"$ref":"#/components/schemas/ChokepointPoint"},"type":"array","title":"Series"}},"type":"object","required":["portid","name","region_key","latest_tankers","latest_total","avg_tankers_7d","trend_tankers_7d","series"],"title":"ChokepointFlow"},"ChokepointFlowResponse":{"properties":{"chokepoints":{"items":{"$ref":"#/components/schemas/ChokepointFlow"},"type":"array","title":"Chokepoints"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["chokepoints","provenance"],"title":"ChokepointFlowResponse"},"ChokepointPoint":{"properties":{"date":{"type":"string","title":"Date"},"tankers":{"type":"integer","title":"Tankers"},"total":{"type":"integer","title":"Total"},"tanker_dwt":{"type":"integer","title":"Tanker Dwt"}},"type":"object","required":["date","tankers","total","tanker_dwt"],"title":"ChokepointPoint"},"ConsecutiveSpread":{"properties":{"label":{"type":"string","title":"Label"},"near_label":{"type":"string","title":"Near Label"},"far_label":{"type":"string","title":"Far Label"},"near_tenor":{"type":"integer","title":"Near Tenor"},"far_tenor":{"type":"integer","title":"Far Tenor"},"near_price":{"type":"number","title":"Near Price"},"far_price":{"type":"number","title":"Far Price"},"spread":{"type":"number","title":"Spread"},"group":{"type":"string","title":"Group"}},"type":"object","required":["label","near_label","far_label","near_tenor","far_tenor","near_price","far_price","spread","group"],"title":"ConsecutiveSpread","description":"A month-pair spread for the calendar spread matrix display (§3)."},"CountryProduction":{"properties":{"country":{"type":"string","title":"Country"},"current_mbd":{"type":"number","title":"Current Mbd"},"change_mom":{"type":"number","title":"Change Mom"},"series":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Series"}},"type":"object","required":["country","current_mbd","change_mom","series"],"title":"CountryProduction"},"CrackHistoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"CrackHistoryPoint"},"CrackRow":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"number","title":"Value"},"unit":{"type":"string","title":"Unit"},"change_1d":{"type":"number","title":"Change 1D"}},"type":"object","required":["label","value","unit","change_1d"],"title":"CrackRow"},"CrackSeries":{"properties":{"label":{"type":"string","title":"Label"},"unit":{"type":"string","title":"Unit"},"history":{"items":{"$ref":"#/components/schemas/CrackHistoryPoint"},"type":"array","title":"History"}},"type":"object","required":["label","unit","history"],"title":"CrackSeries"},"CracksResponse":{"properties":{"cracks":{"items":{"$ref":"#/components/schemas/CrackRow"},"type":"array","title":"Cracks"},"history":{"items":{"$ref":"#/components/schemas/CrackSeries"},"type":"array","title":"History"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["cracks","history","provenance"],"title":"CracksResponse"},"CurveFactorModel":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"explained_pct":{"type":"number","title":"Explained Pct"},"loadings":{"items":{"type":"number"},"type":"array","title":"Loadings","default":[]},"score":{"type":"number","title":"Score"},"z":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Z"},"direction":{"type":"string","title":"Direction","default":""}},"type":"object","required":["key","label","explained_pct","score"],"title":"CurveFactorModel"},"CurveFactorsResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"benchmark":{"type":"string","title":"Benchmark","default":""},"asof":{"type":"string","title":"Asof","default":""},"prior_asof":{"type":"string","title":"Prior Asof","default":""},"tenors":{"items":{"type":"integer"},"type":"array","title":"Tenors","default":[]},"factors":{"items":{"$ref":"#/components/schemas/CurveFactorModel"},"type":"array","title":"Factors","default":[]},"observed_change":{"items":{"type":"number"},"type":"array","title":"Observed Change","default":[]},"reconstruction_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reconstruction Pct"},"n_days":{"type":"integer","title":"N Days","default":0},"days_required":{"type":"integer","title":"Days Required","default":0},"roll_days_excluded":{"type":"integer","title":"Roll Days Excluded","default":0},"headline":{"type":"string","title":"Headline","default":""},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"CurveFactorsResponse","description":"Level / slope / curvature from the accrued curve archive.\n\nThe first real dividend of the archive doctrine: it cannot be computed from\none day's curve, only from history petral has kept. Until enough days have\naccrued the panel says so rather than fitting a decomposition to noise."},"CurvePoint":{"properties":{"tenor":{"type":"integer","title":"Tenor"},"price":{"type":"number","title":"Price"},"contract":{"type":"string","title":"Contract"},"expiry":{"type":"string","title":"Expiry"}},"type":"object","required":["tenor","price","contract","expiry"],"title":"CurvePoint"},"CurveResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"structure":{"type":"string","title":"Structure"},"front":{"type":"number","title":"Front"},"back":{"type":"number","title":"Back"},"front_to_back":{"type":"number","title":"Front To Back"},"n_points":{"type":"integer","title":"N Points"},"points":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Points"},"prev_points":{"anyOf":[{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array"},{"type":"null"}],"title":"Prev Points"},"ns_fit":{"anyOf":[{"$ref":"#/components/schemas/NSFit"},{"type":"null"}]},"front_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Front Contract"},"front_last_trade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Front Last Trade"},"days_to_roll":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days To Roll"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","name","unit","structure","front","back","front_to_back","n_points","points","ns_fit","provenance"],"title":"CurveResponse"},"CurvesResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"snapshots":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Snapshots"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","name","unit","snapshots","provenance"],"title":"CurvesResponse"},"DemandRegion":{"properties":{"region":{"type":"string","title":"Region"},"current_mbd":{"type":"number","title":"Current Mbd"},"change_yoy":{"type":"number","title":"Change Yoy"},"series":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Series"}},"type":"object","required":["region","current_mbd","change_yoy","series"],"title":"DemandRegion"},"DemandResponse":{"properties":{"regions":{"items":{"$ref":"#/components/schemas/DemandRegion"},"type":"array","title":"Regions"},"total_mbd":{"type":"number","title":"Total Mbd"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["regions","total_mbd","provenance"],"title":"DemandResponse"},"EIAResponse":{"properties":{"series":{"items":{"$ref":"#/components/schemas/InventorySeries"},"type":"array","title":"Series"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["series","provenance"],"title":"EIAResponse"},"EconRelease":{"properties":{"date":{"type":"string","title":"Date"},"event":{"type":"string","title":"Event"},"country":{"type":"string","title":"Country"},"actual":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Actual"},"expected":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected"},"prior":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prior"},"impact":{"type":"string","title":"Impact"},"asset_impact":{"type":"string","title":"Asset Impact"},"direction":{"type":"string","title":"Direction"}},"type":"object","required":["date","event","country","actual","expected","prior","impact","asset_impact","direction"],"title":"EconRelease"},"EconSurpriseResponse":{"properties":{"releases":{"items":{"$ref":"#/components/schemas/EconRelease"},"type":"array","title":"Releases"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["releases","provenance"],"title":"EconSurpriseResponse"},"EntityAttention":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"},"burst":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burst"}},"type":"object","required":["key","label","count"],"title":"EntityAttention","description":"How much of the current feed one materiality-table entity accounts for."},"FXPair":{"properties":{"pair":{"type":"string","title":"Pair"},"last":{"type":"number","title":"Last"},"prev_close":{"type":"number","title":"Prev Close"},"change":{"type":"number","title":"Change"},"change_pct":{"type":"number","title":"Change Pct"},"is_commodity_fx":{"type":"boolean","title":"Is Commodity Fx"},"series":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Series"}},"type":"object","required":["pair","last","prev_close","change","change_pct","is_commodity_fx","series"],"title":"FXPair"},"FXResponse":{"properties":{"pairs":{"items":{"$ref":"#/components/schemas/FXPair"},"type":"array","title":"Pairs"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["pairs","provenance"],"title":"FXResponse"},"FloatingStorageLeg":{"properties":{"tenor":{"type":"integer","title":"Tenor"},"contract":{"type":"string","title":"Contract"},"expiry":{"type":"string","title":"Expiry"},"forward_price":{"type":"number","title":"Forward Price"},"contango":{"type":"number","title":"Contango"},"days":{"type":"number","title":"Days"},"charter_cost":{"type":"number","title":"Charter Cost"},"financing_cost":{"type":"number","title":"Financing Cost"},"insurance_cost":{"type":"number","title":"Insurance Cost"},"other_cost":{"type":"number","title":"Other Cost"},"total_cost":{"type":"number","title":"Total Cost"},"net":{"type":"number","title":"Net"},"breakeven_tc":{"type":"number","title":"Breakeven Tc"},"viable":{"type":"boolean","title":"Viable"}},"type":"object","required":["tenor","contract","expiry","forward_price","contango","days","charter_cost","financing_cost","insurance_cost","other_cost","total_cost","net","breakeven_tc","viable"],"title":"FloatingStorageLeg"},"FloatingStorageResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"front_price":{"type":"number","title":"Front Price"},"tc_rate_per_day":{"type":"number","title":"Tc Rate Per Day"},"financing_rate_annual_pct":{"type":"number","title":"Financing Rate Annual Pct"},"insurance_rate_annual_pct":{"type":"number","title":"Insurance Rate Annual Pct"},"other_per_bbl_month":{"type":"number","title":"Other Per Bbl Month"},"cargo_bbl":{"type":"number","title":"Cargo Bbl"},"legs":{"items":{"$ref":"#/components/schemas/FloatingStorageLeg"},"type":"array","title":"Legs"},"best_tenor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Best Tenor"},"best_net":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Best Net"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","front_price","tc_rate_per_day","financing_rate_annual_pct","insurance_rate_annual_pct","other_per_bbl_month","cargo_bbl","legs","best_tenor","best_net","provenance"],"title":"FloatingStorageResponse","description":"VLCC floating-storage breakeven. Contango is live from the curve; the\ncharter rate and financing/insurance are labelled assumptions (no free daily\ncharter feed exists — Baltic TD3C is paid)."},"FreightHistoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"FreightHistoryPoint"},"FreightResponse":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/FreightRoute"},"type":"array","title":"Routes"},"bunkers":{"items":{"$ref":"#/components/schemas/BunkerPrice"},"type":"array","title":"Bunkers"},"history":{"items":{"$ref":"#/components/schemas/FreightSeries"},"type":"array","title":"History"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["routes","bunkers","history","provenance"],"title":"FreightResponse"},"FreightRoute":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"rate":{"type":"number","title":"Rate"},"flat_rate":{"type":"number","title":"Flat Rate"},"unit":{"type":"string","title":"Unit"},"change_1d":{"type":"number","title":"Change 1D"},"is_proxy":{"type":"boolean","title":"Is Proxy"},"usd_per_mt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Per Mt"},"usd_per_bbl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Per Bbl"},"bbl_per_tonne":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bbl Per Tonne"},"reference_grade":{"type":"string","title":"Reference Grade","default":""},"density_basis":{"type":"string","title":"Density Basis","default":""}},"type":"object","required":["key","name","rate","flat_rate","unit","change_1d","is_proxy"],"title":"FreightRoute"},"FreightSeries":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"history":{"items":{"$ref":"#/components/schemas/FreightHistoryPoint"},"type":"array","title":"History"}},"type":"object","required":["key","name","unit","history"],"title":"FreightSeries"},"GradeAssay":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"api":{"type":"number","title":"Api"},"sulfur_pct":{"type":"number","title":"Sulfur Pct"},"quality":{"type":"string","title":"Quality"},"bbl_per_tonne":{"type":"number","title":"Bbl Per Tonne"},"region":{"type":"string","title":"Region"}},"type":"object","required":["key","name","api","sulfur_pct","quality","bbl_per_tonne","region"],"title":"GradeAssay","description":"One crude stream's published nominal assay — the quality axis grades are\nactually traded on. Static (`data/grades.py`), so it carries no provenance\nof its own beyond being labelled nominal in the UI."},"GradeDiffsResponse":{"properties":{"spreads":{"items":{"$ref":"#/components/schemas/GradeSpread"},"type":"array","title":"Spreads"},"history":{"items":{"$ref":"#/components/schemas/GradeSeries"},"type":"array","title":"History"},"assays":{"items":{"$ref":"#/components/schemas/GradeAssay"},"type":"array","title":"Assays","default":[]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["spreads","history","provenance"],"title":"GradeDiffsResponse"},"GradeHistoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"GradeHistoryPoint"},"GradeSeries":{"properties":{"label":{"type":"string","title":"Label"},"unit":{"type":"string","title":"Unit"},"is_proxy":{"type":"boolean","title":"Is Proxy"},"history":{"items":{"$ref":"#/components/schemas/GradeHistoryPoint"},"type":"array","title":"History"}},"type":"object","required":["label","unit","is_proxy","history"],"title":"GradeSeries"},"GradeSpread":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"number","title":"Value"},"unit":{"type":"string","title":"Unit"},"change_1d":{"type":"number","title":"Change 1D"},"zscore":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Zscore"},"percentile":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentile"},"is_proxy":{"type":"boolean","title":"Is Proxy"},"proxy_note":{"type":"string","title":"Proxy Note"}},"type":"object","required":["label","value","unit","change_1d","zscore","percentile","is_proxy","proxy_note"],"title":"GradeSpread"},"GreeksResponse":{"properties":{"greeks":{"items":{"$ref":"#/components/schemas/OptionGreek"},"type":"array","title":"Greeks"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["greeks","provenance"],"title":"GreeksResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HedgeFitModel":{"properties":{"instrument":{"type":"string","title":"Instrument"},"label":{"type":"string","title":"Label"},"hedge_ratio":{"type":"number","title":"Hedge Ratio"},"r_squared":{"type":"number","title":"R Squared"},"correlation":{"type":"number","title":"Correlation"},"unhedged_sigma":{"type":"number","title":"Unhedged Sigma"},"hedged_sigma":{"type":"number","title":"Hedged Sigma"},"variance_reduction_pct":{"type":"number","title":"Variance Reduction Pct"},"worst_basis_move":{"type":"number","title":"Worst Basis Move"},"holding_basis_sigma":{"type":"number","title":"Holding Basis Sigma"},"holding_days":{"type":"integer","title":"Holding Days"},"n_obs":{"type":"integer","title":"N Obs"},"quality":{"type":"string","title":"Quality"}},"type":"object","required":["instrument","label","hedge_ratio","r_squared","correlation","unhedged_sigma","hedged_sigma","variance_reduction_pct","worst_basis_move","holding_basis_sigma","holding_days","n_obs","quality"],"title":"HedgeFitModel"},"HedgeResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"exposure":{"type":"string","title":"Exposure","default":""},"exposure_label":{"type":"string","title":"Exposure Label","default":""},"unit":{"type":"string","title":"Unit","default":"$/bbl"},"holding_days":{"type":"integer","title":"Holding Days","default":0},"fits":{"items":{"$ref":"#/components/schemas/HedgeFitModel"},"type":"array","title":"Fits","default":[]},"unmeasured":{"items":{"type":"string"},"type":"array","title":"Unmeasured","default":[]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"HedgeResponse","description":"Minimum-variance hedge ratios and the basis they leave behind.\n\nDescriptive and in-sample by construction: these are the historical\nproperties of a relationship, not a forecast of it. The honest framing is\n\"this is what this hedge would have done\", never \"this is what it will do\"."},"HistoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"price":{"type":"number","title":"Price"}},"type":"object","required":["date","price"],"title":"HistoryPoint"},"HistoryResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"window":{"type":"string","title":"Window"},"series":{"items":{"$ref":"#/components/schemas/HistoryPoint"},"type":"array","title":"Series"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","name","unit","window","series","provenance"],"title":"HistoryResponse"},"InflationResponse":{"properties":{"breakevens":{"additionalProperties":{"type":"number"},"type":"object","title":"Breakevens"},"cpi_releases":{"items":{"$ref":"#/components/schemas/CPIRelease"},"type":"array","title":"Cpi Releases"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["breakevens","cpi_releases","provenance"],"title":"InflationResponse"},"InstrumentResponse":{"properties":{"symbol":{"type":"string","title":"Symbol"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"sector":{"type":"string","title":"Sector"},"unit":{"type":"string","title":"Unit"},"decimals":{"type":"integer","title":"Decimals"},"last":{"type":"number","title":"Last"},"prev_close":{"type":"number","title":"Prev Close"},"change":{"type":"number","title":"Change"},"change_pct":{"type":"number","title":"Change Pct"},"open":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open"},"day_high":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Day High"},"day_low":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Day Low"},"week52_high":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Week52 High"},"week52_low":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Week52 Low"},"volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume"},"candles":{"items":{"$ref":"#/components/schemas/Candle"},"type":"array","title":"Candles"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["symbol","name","category","sector","unit","decimals","last","prev_close","change","change_pct","open","day_high","day_low","week52_high","week52_low","volume","candles","provenance"],"title":"InstrumentResponse","description":"Yahoo-style single-instrument detail for any screener-universe symbol:\na year of daily candles plus the headline stats a quote page shows."},"InventoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"InventoryPoint"},"InventorySeries":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"unit":{"type":"string","title":"Unit"},"current":{"type":"number","title":"Current"},"change":{"type":"number","title":"Change"},"series":{"items":{"$ref":"#/components/schemas/InventoryPoint"},"type":"array","title":"Series"},"seasonal":{"anyOf":[{"$ref":"#/components/schemas/SeasonalContext"},{"type":"null"}]},"days_cover":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Days Cover"},"days_cover_basis":{"type":"string","title":"Days Cover Basis","default":""},"pct_capacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Capacity"},"capacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Capacity"},"capacity_asof":{"type":"string","title":"Capacity Asof","default":""}},"type":"object","required":["key","label","unit","current","change","series"],"title":"InventorySeries"},"JournalEntry":{"properties":{"date":{"type":"string","title":"Date"},"instrument":{"type":"string","title":"Instrument"},"direction":{"type":"string","title":"Direction"},"quantity":{"type":"integer","title":"Quantity"},"entry_price":{"type":"number","title":"Entry Price"},"exit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Exit Price"},"status":{"type":"string","title":"Status"},"thesis":{"type":"string","title":"Thesis"},"stop_loss":{"type":"number","title":"Stop Loss"},"target":{"type":"number","title":"Target"},"pnl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pnl"}},"type":"object","required":["date","instrument","direction","quantity","entry_price","exit_price","status","thesis","stop_loss","target","pnl"],"title":"JournalEntry"},"JournalResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/JournalEntry"},"type":"array","title":"Entries"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["entries","provenance"],"title":"JournalResponse"},"MacroResponse":{"properties":{"series":{"items":{"$ref":"#/components/schemas/MacroSeries"},"type":"array","title":"Series"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["series","provenance"],"title":"MacroResponse"},"MacroSeries":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"unit":{"type":"string","title":"Unit"},"last":{"type":"number","title":"Last"},"change_pct":{"type":"number","title":"Change Pct"},"series":{"items":{"$ref":"#/components/schemas/HistoryPoint"},"type":"array","title":"Series"}},"type":"object","required":["key","label","unit","last","change_pct","series"],"title":"MacroSeries"},"MarketGroup":{"properties":{"group":{"type":"string","title":"Group"},"label":{"type":"string","title":"Label"},"markets":{"items":{"$ref":"#/components/schemas/MarketTile"},"type":"array","title":"Markets"}},"type":"object","required":["group","label","markets"],"title":"MarketGroup"},"MarketTile":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"group":{"type":"string","title":"Group"},"unit":{"type":"string","title":"Unit"},"decimals":{"type":"integer","title":"Decimals"},"last":{"type":"number","title":"Last"},"prev_close":{"type":"number","title":"Prev Close"},"change":{"type":"number","title":"Change"},"change_pct":{"type":"number","title":"Change Pct"},"high_today":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"High Today"},"low_today":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Low Today"},"mode":{"type":"string","title":"Mode"},"sample_only":{"type":"boolean","title":"Sample Only"},"streamable":{"type":"boolean","title":"Streamable"},"td_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Td Symbol"},"legs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Legs"},"factors":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Factors"},"note":{"type":"string","title":"Note"}},"type":"object","required":["key","name","group","unit","decimals","last","prev_close","change","change_pct","mode","sample_only","streamable","td_symbol","legs","factors","note"],"title":"MarketTile"},"MarketsResponse":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/MarketGroup"},"type":"array","title":"Groups"},"streaming":{"$ref":"#/components/schemas/StreamInfo"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["groups","streaming","provenance"],"title":"MarketsResponse"},"NSFit":{"properties":{"grid":{"items":{"type":"number"},"type":"array","title":"Grid"},"fitted":{"items":{"type":"number"},"type":"array","title":"Fitted"},"low_confidence":{"items":{"type":"boolean"},"type":"array","title":"Low Confidence"},"rmse":{"type":"number","title":"Rmse"},"beta0":{"type":"number","title":"Beta0"},"beta1":{"type":"number","title":"Beta1"},"beta2":{"type":"number","title":"Beta2"},"tau":{"type":"number","title":"Tau"},"tau_at_bound":{"type":"boolean","title":"Tau At Bound","default":false}},"type":"object","required":["grid","fitted","low_confidence","rmse","beta0","beta1","beta2","tau"],"title":"NSFit"},"NewsItem":{"properties":{"timestamp":{"type":"string","title":"Timestamp"},"headline":{"type":"string","title":"Headline"},"source":{"type":"string","title":"Source"},"category":{"type":"string","title":"Category"},"sentiment":{"type":"string","title":"Sentiment"},"url":{"type":"string","title":"Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"importance":{"type":"integer","title":"Importance","default":0},"sentiment_score":{"type":"number","title":"Sentiment Score","default":0.0},"confidence":{"type":"number","title":"Confidence","default":0.0},"contested":{"type":"boolean","title":"Contested","default":false},"event_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Class"},"event_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Label"},"entities":{"items":{"type":"string"},"type":"array","title":"Entities","default":[]},"corroboration":{"type":"integer","title":"Corroboration","default":1},"cluster_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cluster Id"},"quantities":{"items":{"type":"string"},"type":"array","title":"Quantities","default":[]},"score_components":{"additionalProperties":{"type":"number"},"type":"object","title":"Score Components","default":{}},"score_unavailable":{"items":{"type":"string"},"type":"array","title":"Score Unavailable","default":[]},"votes":{"items":{"$ref":"#/components/schemas/SentimentVote"},"type":"array","title":"Votes","default":[]},"rationale":{"type":"string","title":"Rationale","default":""}},"type":"object","required":["timestamp","headline","source","category","sentiment","url"],"title":"NewsItem"},"NewsMarker":{"properties":{"first_seen":{"type":"string","title":"First Seen"},"headline":{"type":"string","title":"Headline"},"source":{"type":"string","title":"Source"},"url":{"type":"string","title":"Url"},"sentiment":{"type":"string","title":"Sentiment"},"sentiment_score":{"type":"number","title":"Sentiment Score","default":0.0},"importance":{"type":"integer","title":"Importance"},"event_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Label"},"entities":{"items":{"type":"string"},"type":"array","title":"Entities","default":[]},"cluster_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cluster Id"}},"type":"object","required":["first_seen","headline","source","url","sentiment","importance"],"title":"NewsMarker","description":"One archived high-importance headline, positioned for a chart overlay.\n\nA trimmed NewsItem: only what a marker and its popover render. The archive is\nappend-only, so this shape is effectively permanent — see the note on\n``news_archive._FIELDS``."},"NewsMarkersResponse":{"properties":{"markers":{"items":{"$ref":"#/components/schemas/NewsMarker"},"type":"array","title":"Markers"},"coverage_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Start"},"archive_available":{"type":"boolean","title":"Archive Available","default":true},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["markers","provenance"],"title":"NewsMarkersResponse"},"NewsPressure":{"properties":{"score":{"type":"number","title":"Score"},"label":{"type":"string","title":"Label"},"n_scored":{"type":"integer","title":"N Scored"},"contested":{"type":"integer","title":"Contested"},"bullish":{"type":"integer","title":"Bullish"},"bearish":{"type":"integer","title":"Bearish"},"neutral":{"type":"integer","title":"Neutral"},"attention_available":{"type":"boolean","title":"Attention Available"},"top_entities":{"items":{"$ref":"#/components/schemas/EntityAttention"},"type":"array","title":"Top Entities","default":[]}},"type":"object","required":["score","label","n_scored","contested","bullish","bearish","neutral","attention_available"],"title":"NewsPressure","description":"Feed-level aggregate: importance-weighted sentiment tilt.\n\nDescriptive — \"what the feed is currently saying about the balance\",\nweighted so a 3-outlet Hormuz story counts for more than five op-eds.\nNever a price call."},"NewsResponse":{"properties":{"headlines":{"items":{"$ref":"#/components/schemas/NewsItem"},"type":"array","title":"Headlines"},"risk_flags":{"items":{"$ref":"#/components/schemas/RiskFlag"},"type":"array","title":"Risk Flags"},"topics":{"items":{"$ref":"#/components/schemas/NewsTopic"},"type":"array","title":"Topics","default":[]},"pressure":{"anyOf":[{"$ref":"#/components/schemas/NewsPressure"},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["headlines","risk_flags","provenance"],"title":"NewsResponse"},"NewsTopic":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"query":{"type":"string","title":"Query"},"count":{"type":"integer","title":"Count"},"net_sentiment":{"type":"integer","title":"Net Sentiment"},"kind":{"type":"string","title":"Kind"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"match_terms":{"items":{"type":"string"},"type":"array","title":"Match Terms","default":[]}},"type":"object","required":["key","label","query","count","net_sentiment","kind"],"title":"NewsTopic","description":"A prevailing topic in the feed — keyword heuristic, not editorial."},"OPECMember":{"properties":{"country":{"type":"string","title":"Country"},"quota_mbd":{"type":"number","title":"Quota Mbd"},"production_mbd":{"type":"number","title":"Production Mbd"},"compliance_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Compliance Pct"},"exempt":{"type":"boolean","title":"Exempt"},"overproducing":{"type":"boolean","title":"Overproducing"}},"type":"object","required":["country","quota_mbd","production_mbd","compliance_pct","exempt","overproducing"],"title":"OPECMember"},"OPECResponse":{"properties":{"members":{"items":{"$ref":"#/components/schemas/OPECMember"},"type":"array","title":"Members"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["members","provenance"],"title":"OPECResponse"},"OptionGreek":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"strike":{"type":"number","title":"Strike"},"dte":{"type":"integer","title":"Dte"},"delta":{"type":"number","title":"Delta"},"gamma":{"type":"number","title":"Gamma"},"theta":{"type":"number","title":"Theta"},"vega":{"type":"number","title":"Vega"},"iv":{"type":"number","title":"Iv"},"mark":{"type":"number","title":"Mark"}},"type":"object","required":["name","type","strike","dte","delta","gamma","theta","vega","iv","mark"],"title":"OptionGreek"},"PnLPoint":{"properties":{"date":{"type":"string","title":"Date"},"daily_pnl":{"type":"number","title":"Daily Pnl"},"cumulative_pnl":{"type":"number","title":"Cumulative Pnl"}},"type":"object","required":["date","daily_pnl","cumulative_pnl"],"title":"PnLPoint"},"PnLResponse":{"properties":{"positions":{"items":{"$ref":"#/components/schemas/PositionItem"},"type":"array","title":"Positions"},"total_unrealised_pnl":{"type":"number","title":"Total Unrealised Pnl"},"total_realised_pnl":{"type":"number","title":"Total Realised Pnl"},"pnl_history":{"items":{"$ref":"#/components/schemas/PnLPoint"},"type":"array","title":"Pnl History"},"by_asset_class":{"additionalProperties":{"type":"number"},"type":"object","title":"By Asset Class"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["positions","total_unrealised_pnl","total_realised_pnl","pnl_history","by_asset_class","provenance"],"title":"PnLResponse"},"PortCongestionResponse":{"properties":{"ports":{"items":{"$ref":"#/components/schemas/PortInfo"},"type":"array","title":"Ports"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["ports","provenance"],"title":"PortCongestionResponse"},"PortInfo":{"properties":{"port":{"type":"string","title":"Port"},"country":{"type":"string","title":"Country"},"throughput_mbd":{"type":"number","title":"Throughput Mbd"},"vessels_waiting":{"type":"integer","title":"Vessels Waiting"},"avg_wait_days":{"type":"number","title":"Avg Wait Days"},"congestion_level":{"type":"string","title":"Congestion Level"}},"type":"object","required":["port","country","throughput_mbd","vessels_waiting","avg_wait_days","congestion_level"],"title":"PortInfo"},"PositionItem":{"properties":{"instrument":{"type":"string","title":"Instrument"},"type":{"type":"string","title":"Type"},"direction":{"type":"string","title":"Direction"},"quantity":{"type":"integer","title":"Quantity"},"entry":{"type":"number","title":"Entry"},"unit":{"type":"string","title":"Unit"},"mark":{"type":"number","title":"Mark"},"unrealised_pnl":{"type":"number","title":"Unrealised Pnl"},"notional":{"type":"number","title":"Notional"}},"type":"object","required":["instrument","type","direction","quantity","entry","unit","mark","unrealised_pnl","notional"],"title":"PositionItem"},"ProductionResponse":{"properties":{"countries":{"items":{"$ref":"#/components/schemas/CountryProduction"},"type":"array","title":"Countries"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["countries","provenance"],"title":"ProductionResponse"},"Provenance":{"properties":{"mode":{"type":"string","title":"Mode"},"reliability":{"type":"string","title":"Reliability"},"is_proxy":{"type":"boolean","title":"Is Proxy"},"is_sample":{"type":"boolean","title":"Is Sample"},"source":{"type":"string","title":"Source"},"source_url":{"type":"string","title":"Source Url"},"frequency":{"type":"string","title":"Frequency"},"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of"},"fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetched At"},"caveat":{"type":"string","title":"Caveat"},"proxy_note":{"type":"string","title":"Proxy Note"},"badge":{"type":"string","title":"Badge"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","default":[]}},"type":"object","required":["mode","reliability","is_proxy","is_sample","source","source_url","frequency","as_of","fetched_at","caveat","proxy_note","badge"],"title":"Provenance"},"RVDriverModel":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"beta":{"type":"number","title":"Beta"},"latest":{"type":"number","title":"Latest"},"contribution":{"type":"number","title":"Contribution"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["key","label","beta","latest","contribution","unit"],"title":"RVDriverModel"},"RateMeeting":{"properties":{"date":{"type":"string","title":"Date"},"prob_hike":{"type":"number","title":"Prob Hike"},"prob_hold":{"type":"number","title":"Prob Hold"},"prob_cut":{"type":"number","title":"Prob Cut"},"implied_rate":{"type":"number","title":"Implied Rate"}},"type":"object","required":["date","prob_hike","prob_hold","prob_cut","implied_rate"],"title":"RateMeeting"},"RefineryOutage":{"properties":{"refinery":{"type":"string","title":"Refinery"},"region":{"type":"string","title":"Region"},"capacity_kbd":{"type":"integer","title":"Capacity Kbd"},"reason":{"type":"string","title":"Reason"},"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date"},"status":{"type":"string","title":"Status"}},"type":"object","required":["refinery","region","capacity_kbd","reason","start_date","end_date","status"],"title":"RefineryOutage"},"RefineryRegion":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"capacity_mbd":{"type":"number","title":"Capacity Mbd"},"current":{"type":"number","title":"Current"},"utilisation_pct":{"items":{"type":"number"},"type":"array","title":"Utilisation Pct"},"dates":{"items":{"type":"string"},"type":"array","title":"Dates"}},"type":"object","required":["key","name","capacity_mbd","current","utilisation_pct","dates"],"title":"RefineryRegion"},"RefineryResponse":{"properties":{"regions":{"items":{"$ref":"#/components/schemas/RefineryRegion"},"type":"array","title":"Regions"},"outages":{"items":{"$ref":"#/components/schemas/RefineryOutage"},"type":"array","title":"Outages"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["regions","outages","provenance"],"title":"RefineryResponse"},"RegionCounts":{"properties":{"total":{"type":"integer","title":"Total","default":0},"vlcc":{"type":"integer","title":"Vlcc","default":0},"suezmax":{"type":"integer","title":"Suezmax","default":0},"aframax":{"type":"integer","title":"Aframax","default":0},"mr":{"type":"integer","title":"Mr","default":0},"small":{"type":"integer","title":"Small","default":0},"unknown":{"type":"integer","title":"Unknown","default":0},"outbound":{"type":"integer","title":"Outbound","default":0},"inbound":{"type":"integer","title":"Inbound","default":0},"sat":{"type":"integer","title":"Sat","default":0},"has_breakdown":{"type":"boolean","title":"Has Breakdown","default":false}},"type":"object","title":"RegionCounts","description":"Class/direction breakdown for one region at one capture.\n\n`has_breakdown` distinguishes \"zero VLCCs were present\" from \"this point\npredates class segmentation\". Without it a legacy point renders as a\nconfident row of zeros, which is a fabricated reading of history — the\nsame failure mode as an unlabelled proxy."},"RegionHistoryPoint":{"properties":{"captured_at":{"type":"string","title":"Captured At"},"counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts"},"breakdown":{"additionalProperties":{"$ref":"#/components/schemas/RegionCounts"},"type":"object","title":"Breakdown","default":{}}},"type":"object","required":["captured_at","counts"],"title":"RegionHistoryPoint"},"RelativeValueResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"target":{"type":"string","title":"Target","default":""},"asof":{"type":"string","title":"Asof","default":""},"actual":{"type":"number","title":"Actual","default":0.0},"fitted":{"type":"number","title":"Fitted","default":0.0},"residual":{"type":"number","title":"Residual","default":0.0},"residual_z":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Residual Z"},"intercept":{"type":"number","title":"Intercept","default":0.0},"drivers":{"items":{"$ref":"#/components/schemas/RVDriverModel"},"type":"array","title":"Drivers","default":[]},"r_squared":{"type":"number","title":"R Squared","default":0.0},"change_r_squared":{"type":"number","title":"Change R Squared","default":0.0},"spurious_risk":{"type":"boolean","title":"Spurious Risk","default":false},"n_obs":{"type":"integer","title":"N Obs","default":0},"read":{"type":"string","title":"Read","default":""},"excluded_drivers":{"items":{"type":"string"},"type":"array","title":"Excluded Drivers","default":[]},"actual_history":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Actual History","default":[]},"fitted_history":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Fitted History","default":[]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"RelativeValueResponse","description":"A spread against the level its drivers imply.\n\nThe residual is descriptive: it states that two things petral measures\ndisagree. It is not a forecast that the gap closes, and `spurious_risk`\nwithholds the read entirely when the fit is common trend rather than\nrelationship."},"RevisionRow":{"properties":{"observation":{"type":"string","title":"Observation"},"first_vintage":{"type":"string","title":"First Vintage"},"first_value":{"type":"number","title":"First Value"},"latest_vintage":{"type":"string","title":"Latest Vintage"},"latest_value":{"type":"number","title":"Latest Value"},"revision":{"type":"number","title":"Revision"},"n_vintages":{"type":"integer","title":"N Vintages"}},"type":"object","required":["observation","first_vintage","first_value","latest_vintage","latest_value","revision","n_vintages"],"title":"RevisionRow"},"RevisionsResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"series":{"type":"string","title":"Series","default":""},"label":{"type":"string","title":"Label","default":""},"rows":{"items":{"$ref":"#/components/schemas/RevisionRow"},"type":"array","title":"Rows","default":[]},"n":{"type":"integer","title":"N","default":0},"mean_revision":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean Revision"},"mean_abs_revision":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean Abs Revision"},"revised_up":{"type":"integer","title":"Revised Up","default":0},"revised_down":{"type":"integer","title":"Revised Down","default":0},"largest_revision":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Largest Revision"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"RevisionsResponse","description":"EIA's own first print against EIA's own current figure.\n\nCannot be backfilled: publishers serve only the latest vintage, so a figure\nrestated before petral began archiving is invisible and always will be. An\nempty archive is therefore the honest early state, not a failure."},"RiskFlag":{"properties":{"category":{"type":"string","title":"Category"},"region":{"type":"string","title":"Region"},"severity":{"type":"string","title":"Severity"},"description":{"type":"string","title":"Description"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["category","region","severity","description","active"],"title":"RiskFlag"},"RiskMetricsResponse":{"properties":{"var_95_1d":{"type":"number","title":"Var 95 1D"},"var_99_1d":{"type":"number","title":"Var 99 1D"},"es_95_1d":{"type":"number","title":"Es 95 1D"},"sharpe_ann":{"type":"number","title":"Sharpe Ann"},"max_drawdown_pct":{"type":"number","title":"Max Drawdown Pct"},"current_drawdown_pct":{"type":"number","title":"Current Drawdown Pct"},"beta_to_spx":{"type":"number","title":"Beta To Spx"},"beta_to_dxy":{"type":"number","title":"Beta To Dxy"},"volatility_ann_pct":{"type":"number","title":"Volatility Ann Pct"},"skewness":{"type":"number","title":"Skewness"},"kurtosis":{"type":"number","title":"Kurtosis"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["var_95_1d","var_99_1d","es_95_1d","sharpe_ann","max_drawdown_pct","current_drawdown_pct","beta_to_spx","beta_to_dxy","volatility_ann_pct","skewness","kurtosis","provenance"],"title":"RiskMetricsResponse"},"SSVISliceModel":{"properties":{"expiry":{"type":"string","title":"Expiry"},"tau":{"type":"number","title":"Tau"},"theta":{"type":"number","title":"Theta"},"phi":{"type":"number","title":"Phi"},"rho":{"type":"number","title":"Rho"},"forward":{"type":"number","title":"Forward"},"forward_source":{"type":"string","title":"Forward Source"},"atm_vol":{"type":"number","title":"Atm Vol"},"rmse_vol":{"type":"number","title":"Rmse Vol"},"vega_rmse_vol":{"type":"number","title":"Vega Rmse Vol"},"n_quotes":{"type":"integer","title":"N Quotes"},"raw_butterfly_violations":{"type":"integer","title":"Raw Butterfly Violations","default":0}},"type":"object","required":["expiry","tau","theta","phi","rho","forward","forward_source","atm_vol","rmse_vol","vega_rmse_vol","n_quotes"],"title":"SSVISliceModel"},"Scenario":{"properties":{"name":{"type":"string","title":"Name"},"probability":{"type":"string","title":"Probability"},"impacts":{"items":{"$ref":"#/components/schemas/ScenarioImpact"},"type":"array","title":"Impacts"}},"type":"object","required":["name","probability","impacts"],"title":"Scenario"},"ScenarioImpact":{"properties":{"instrument":{"type":"string","title":"Instrument"},"impact_pct":{"type":"number","title":"Impact Pct"},"direction":{"type":"string","title":"Direction"}},"type":"object","required":["instrument","impact_pct","direction"],"title":"ScenarioImpact"},"ScenarioResponse":{"properties":{"scenarios":{"items":{"$ref":"#/components/schemas/Scenario"},"type":"array","title":"Scenarios"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["scenarios","provenance"],"title":"ScenarioResponse"},"ScreenerCategory":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["key","label","count"],"title":"ScreenerCategory"},"ScreenerResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/ScreenerRow"},"type":"array","title":"Rows"},"categories":{"items":{"$ref":"#/components/schemas/ScreenerCategory"},"type":"array","title":"Categories"},"universe_size":{"type":"integer","title":"Universe Size"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["rows","categories","universe_size","provenance"],"title":"ScreenerResponse"},"ScreenerRow":{"properties":{"symbol":{"type":"string","title":"Symbol"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"sector":{"type":"string","title":"Sector"},"unit":{"type":"string","title":"Unit"},"decimals":{"type":"integer","title":"Decimals"},"last":{"type":"number","title":"Last"},"change":{"type":"number","title":"Change"},"change_pct":{"type":"number","title":"Change Pct"},"w1_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"W1 Pct"},"m1_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"M1 Pct"},"hi_3m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hi 3M"},"lo_3m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lo 3M"},"volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume"},"sparkline":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Sparkline"}},"type":"object","required":["symbol","name","category","sector","unit","decimals","last","change","change_pct","w1_pct","m1_pct","hi_3m","lo_3m","volume"],"title":"ScreenerRow"},"SeasonalContext":{"properties":{"usable":{"type":"boolean","title":"Usable","default":false},"n_years":{"type":"integer","title":"N Years","default":0},"first_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"First Year"},"last_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Year"},"weeks":{"items":{"type":"integer"},"type":"array","title":"Weeks","default":[]},"low":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Low","default":[]},"high":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"High","default":[]},"avg":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Avg","default":[]},"current_year":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Current Year","default":[]},"prior_year":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Prior Year","default":[]},"current_year_label":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Year Label"},"prior_year_label":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prior Year Label"},"vs_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vs Avg"},"vs_avg_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vs Avg Pct"},"pct_of_range":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Of Range"},"week_low":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Week Low"},"week_high":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Week High"},"week_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Week Avg"}},"type":"object","title":"SeasonalContext","description":"The 5-year seasonal envelope for a weekly series, plus where the latest\nprint sits inside it.\n\nIndexed by week of year (`weeks`), not by date, because that is the shape\nof the chart every desk reproduces: weeks across the x-axis, the 5-year\nrange shaded behind, this year's line drawn through it. All arrays are\nparallel to `weeks`. Doing the week mapping here (including folding ISO\nweek 53 into 52) keeps it in one place rather than reimplemented in\nTypeScript, where the two would drift.\n\n`usable`/`n_years` exist because this is the panel's most misinterpretable\nnumber: a band built from two years is still a band, it just isn't a\n*5-year* band, and nothing downstream could otherwise tell."},"SeasonalityResponse":{"properties":{"months":{"items":{"type":"integer"},"type":"array","title":"Months"},"month_labels":{"items":{"type":"string"},"type":"array","title":"Month Labels"},"avg_5y":{"items":{"type":"number"},"type":"array","title":"Avg 5Y"},"avg_10y":{"items":{"type":"number"},"type":"array","title":"Avg 10Y"},"current_year":{"items":{"type":"number"},"type":"array","title":"Current Year"},"current_month":{"type":"integer","title":"Current Month"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["months","month_labels","avg_5y","avg_10y","current_year","current_month","provenance"],"title":"SeasonalityResponse"},"SentimentVote":{"properties":{"voter":{"type":"string","title":"Voter"},"direction":{"type":"number","title":"Direction"},"weight":{"type":"number","title":"Weight"},"note":{"type":"string","title":"Note"}},"type":"object","required":["voter","direction","weight","note"],"title":"SentimentVote","description":"One voter's contribution to a headline's sentiment (analytics/news_score)."},"Snapshot":{"properties":{"asof":{"type":"string","title":"Asof"},"points":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Points"}},"type":"object","required":["asof","points"],"title":"Snapshot"},"SpreadHistoryPoint":{"properties":{"date":{"type":"string","title":"Date"},"spread":{"type":"number","title":"Spread"}},"type":"object","required":["date","spread"],"title":"SpreadHistoryPoint"},"SpreadRow":{"properties":{"label":{"type":"string","title":"Label"},"near_tenor":{"type":"integer","title":"Near Tenor"},"far_tenor":{"type":"integer","title":"Far Tenor"},"near_price":{"type":"number","title":"Near Price"},"far_price":{"type":"number","title":"Far Price"},"spread":{"type":"number","title":"Spread"},"carry_ann_pct":{"type":"number","title":"Carry Ann Pct"},"zscore":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Zscore"},"percentile":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentile"},"zscore_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Zscore N"}},"type":"object","required":["label","near_tenor","far_tenor","near_price","far_price","spread","carry_ann_pct","zscore","percentile"],"title":"SpreadRow"},"StorageLocation":{"properties":{"name":{"type":"string","title":"Name"},"rate":{"type":"number","title":"Rate"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["name","rate","unit"],"title":"StorageLocation"},"StorageResponse":{"properties":{"front_price":{"type":"number","title":"Front Price"},"storage_rate_monthly":{"type":"number","title":"Storage Rate Monthly"},"financing_rate_annual_pct":{"type":"number","title":"Financing Rate Annual Pct"},"scenarios":{"items":{"$ref":"#/components/schemas/StorageScenario"},"type":"array","title":"Scenarios"},"locations":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array","title":"Locations"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["front_price","storage_rate_monthly","financing_rate_annual_pct","scenarios","locations","provenance"],"title":"StorageResponse"},"StorageScenario":{"properties":{"months":{"type":"integer","title":"Months"},"contango":{"type":"number","title":"Contango"},"storage_cost":{"type":"number","title":"Storage Cost"},"financing_cost":{"type":"number","title":"Financing Cost"},"total_carry_cost":{"type":"number","title":"Total Carry Cost"},"net_margin":{"type":"number","title":"Net Margin"},"viable":{"type":"boolean","title":"Viable"}},"type":"object","required":["months","contango","storage_cost","financing_cost","total_carry_cost","net_margin","viable"],"title":"StorageScenario"},"StreamInfo":{"properties":{"provider":{"type":"string","title":"Provider"},"env_var":{"type":"string","title":"Env Var"},"docs":{"type":"string","title":"Docs"}},"type":"object","required":["provider","env_var","docs"],"title":"StreamInfo"},"StrikeConcentrationModel":{"properties":{"strike":{"type":"number","title":"Strike"},"side":{"type":"string","title":"Side"},"open_interest":{"type":"integer","title":"Open Interest"},"share_pct":{"type":"number","title":"Share Pct"}},"type":"object","required":["strike","side","open_interest","share_pct"],"title":"StrikeConcentrationModel"},"SynthesisBullet":{"properties":{"category":{"type":"string","title":"Category"},"text":{"type":"string","title":"Text"},"direction":{"type":"string","title":"Direction"}},"type":"object","required":["category","text","direction"],"title":"SynthesisBullet"},"SynthesisResponse":{"properties":{"date":{"type":"string","title":"Date"},"bullets":{"items":{"$ref":"#/components/schemas/SynthesisBullet"},"type":"array","title":"Bullets"},"calendar":{"items":{"$ref":"#/components/schemas/CalendarEvent"},"type":"array","title":"Calendar"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["date","bullets","calendar","provenance"],"title":"SynthesisResponse"},"TankerEquityPoint":{"properties":{"date":{"type":"string","title":"Date"},"index":{"type":"number","title":"Index"},"bwet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bwet"}},"type":"object","required":["date","index"],"title":"TankerEquityPoint"},"TankerEquityResponse":{"properties":{"members":{"items":{"$ref":"#/components/schemas/TankerMember"},"type":"array","title":"Members"},"latest_index":{"type":"number","title":"Latest Index"},"change_1d_pct":{"type":"number","title":"Change 1D Pct"},"change_1m_pct":{"type":"number","title":"Change 1M Pct"},"latest_bwet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Bwet"},"bwet_change_1d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bwet Change 1D Pct"},"series":{"items":{"$ref":"#/components/schemas/TankerEquityPoint"},"type":"array","title":"Series"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["members","latest_index","change_1d_pct","change_1m_pct","latest_bwet","bwet_change_1d_pct","series","provenance"],"title":"TankerEquityResponse","description":"Equal-weighted crude-tanker equity index + BWET, as a leading proxy for\nfreight direction. Not a rate — see the provenance proxy_note."},"TankerMember":{"properties":{"symbol":{"type":"string","title":"Symbol"},"name":{"type":"string","title":"Name"},"last":{"type":"number","title":"Last"}},"type":"object","required":["symbol","name","last"],"title":"TankerMember"},"TermStructureResponse":{"properties":{"benchmark":{"type":"string","title":"Benchmark"},"name":{"type":"string","title":"Name"},"unit":{"type":"string","title":"Unit"},"structure":{"type":"string","title":"Structure"},"spreads":{"items":{"$ref":"#/components/schemas/SpreadRow"},"type":"array","title":"Spreads"},"m1m2_history":{"items":{"$ref":"#/components/schemas/SpreadHistoryPoint"},"type":"array","title":"M1M2 History"},"history_label":{"type":"string","title":"History Label","default":"M1–M2"},"consecutive_spreads":{"items":{"$ref":"#/components/schemas/ConsecutiveSpread"},"type":"array","title":"Consecutive Spreads","default":[]},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["benchmark","name","unit","structure","spreads","m1m2_history","provenance"],"title":"TermStructureResponse"},"TimeSeriesPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"TimeSeriesPoint"},"TopicFeedResponse":{"properties":{"query":{"type":"string","title":"Query"},"headlines":{"items":{"$ref":"#/components/schemas/NewsItem"},"type":"array","title":"Headlines"},"google_ok":{"type":"boolean","title":"Google Ok"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["query","headlines","google_ok","provenance"],"title":"TopicFeedResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VolExpirySlice":{"properties":{"expiry":{"type":"string","title":"Expiry"},"days_to_expiry":{"type":"integer","title":"Days To Expiry"},"atm_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Atm Iv"},"put_wing_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Put Wing Iv"},"call_wing_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Wing Iv"},"skew":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Skew"},"fitted_atm_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fitted Atm Iv"},"fitted_put_wing_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fitted Put Wing Iv"},"fitted_call_wing_iv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fitted Call Wing Iv"},"fitted_skew":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fitted Skew"},"skew_gap":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Skew Gap"},"put_oi":{"type":"integer","title":"Put Oi","default":0},"call_oi":{"type":"integer","title":"Call Oi","default":0},"n_contracts":{"type":"integer","title":"N Contracts","default":0}},"type":"object","required":["expiry","days_to_expiry"],"title":"VolExpirySlice"},"VolSurfaceResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"reason":{"type":"string","title":"Reason","default":""},"underlying":{"type":"string","title":"Underlying","default":""},"label":{"type":"string","title":"Label","default":""},"tracks":{"type":"string","title":"Tracks","default":""},"spot":{"type":"number","title":"Spot","default":0.0},"asof":{"type":"string","title":"Asof","default":""},"slices":{"items":{"$ref":"#/components/schemas/VolExpirySlice"},"type":"array","title":"Slices","default":[]},"concentration":{"items":{"$ref":"#/components/schemas/StrikeConcentrationModel"},"type":"array","title":"Concentration","default":[]},"term_slope":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Term Slope"},"put_call_oi_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Put Call Oi Ratio"},"total_put_oi":{"type":"integer","title":"Total Put Oi","default":0},"total_call_oi":{"type":"integer","title":"Total Call Oi","default":0},"skew_read":{"type":"string","title":"Skew Read","default":""},"realised_vol_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Realised Vol 30D"},"ovx_last":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ovx Last"},"ovx_change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ovx Change Pct"},"ssvi_fitted":{"type":"boolean","title":"Ssvi Fitted","default":false},"ssvi_slices":{"items":{"$ref":"#/components/schemas/SSVISliceModel"},"type":"array","title":"Ssvi Slices","default":[]},"ssvi_arbitrage_free":{"type":"boolean","title":"Ssvi Arbitrage Free","default":false},"ssvi_calendar_violations":{"type":"integer","title":"Ssvi Calendar Violations","default":0},"ssvi_dropped_expiries":{"items":{"type":"string"},"type":"array","title":"Ssvi Dropped Expiries","default":[]},"arbitrage_note":{"type":"string","title":"Arbitrage Note","default":""},"dropped":{"additionalProperties":{"type":"integer"},"type":"object","title":"Dropped","default":{}},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["available","provenance"],"title":"VolSurfaceResponse","description":"A quality-filtered ETF option surface, with an arbitrage-free SSVI fit.\n\nA PROXY by construction: USO/BNO hold rolling futures, so the vol *level*\ncarries the fund's roll and tracking error and is not CL/BZ vol. Skew, term\nslope and open-interest distribution survive the proxy because each is a\ncomparison within one instrument — and shape is what a surface is read for."},"WeatherAlert":{"properties":{"id":{"type":"string","title":"Id"},"headline":{"type":"string","title":"Headline"},"severity":{"type":"string","title":"Severity"},"event":{"type":"string","title":"Event"},"area":{"type":"string","title":"Area"},"onset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Onset"},"expires":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires"}},"type":"object","required":["id","headline","severity","event","area"],"title":"WeatherAlert"},"WeatherResponse":{"properties":{"in_season":{"type":"boolean","title":"In Season"},"season_label":{"type":"string","title":"Season Label"},"named_storms_ytd":{"type":"integer","title":"Named Storms Ytd"},"active_storms":{"items":{"$ref":"#/components/schemas/ActiveStorm"},"type":"array","title":"Active Storms"},"gulf_alerts":{"items":{"$ref":"#/components/schemas/WeatherAlert"},"type":"array","title":"Gulf Alerts"},"gulf_alert_count":{"type":"integer","title":"Gulf Alert Count"},"season_note":{"type":"string","title":"Season Note"},"as_of":{"type":"string","title":"As Of"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["in_season","season_label","named_storms_ytd","active_storms","gulf_alerts","gulf_alert_count","season_note","as_of","provenance"],"title":"WeatherResponse"},"WeeklyBalanceModel":{"properties":{"week_ending":{"type":"string","title":"Week Ending"},"terms":{"items":{"$ref":"#/components/schemas/BalanceTermModel"},"type":"array","title":"Terms","default":[]},"net_flow_mbd":{"type":"number","title":"Net Flow Mbd"},"implied_change_mmbbl":{"type":"number","title":"Implied Change Mmbbl"},"actual_change_mmbbl":{"type":"number","title":"Actual Change Mmbbl"},"commercial_change_mmbbl":{"type":"number","title":"Commercial Change Mmbbl"},"spr_change_mmbbl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spr Change Mmbbl"},"adjustment_mbd":{"type":"number","title":"Adjustment Mbd"},"adjustment_mmbbl":{"type":"number","title":"Adjustment Mmbbl"},"adjustment_share_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adjustment Share Pct"},"spr_included":{"type":"boolean","title":"Spr Included","default":false},"is_notable":{"type":"boolean","title":"Is Notable","default":false}},"type":"object","required":["week_ending","net_flow_mbd","implied_change_mmbbl","actual_change_mmbbl","commercial_change_mmbbl","adjustment_mbd","adjustment_mmbbl"],"title":"WeeklyBalanceModel"},"YieldCurveCountry":{"properties":{"country":{"type":"string","title":"Country"},"tenors":{"items":{"type":"string"},"type":"array","title":"Tenors"},"tenor_months":{"items":{"type":"integer"},"type":"array","title":"Tenor Months"},"yields":{"items":{"type":"number"},"type":"array","title":"Yields"},"prev_yields":{"items":{"type":"number"},"type":"array","title":"Prev Yields"},"curve_shape":{"type":"string","title":"Curve Shape"},"spread_2s10s":{"type":"number","title":"Spread 2S10S"}},"type":"object","required":["country","tenors","tenor_months","yields","prev_yields","curve_shape","spread_2s10s"],"title":"YieldCurveCountry"},"YieldCurveResponse":{"properties":{"curves":{"additionalProperties":{"$ref":"#/components/schemas/YieldCurveCountry"},"type":"object","title":"Curves"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["curves","provenance"],"title":"YieldCurveResponse"},"ZScoreItem":{"properties":{"instrument":{"type":"string","title":"Instrument"},"current":{"type":"number","title":"Current"},"mean":{"type":"number","title":"Mean"},"zscore":{"type":"number","title":"Zscore"},"percentile":{"type":"number","title":"Percentile"},"signal":{"type":"string","title":"Signal"}},"type":"object","required":["instrument","current","mean","zscore","percentile","signal"],"title":"ZScoreItem"},"ZScoreResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ZScoreItem"},"type":"array","title":"Items"},"provenance":{"$ref":"#/components/schemas/Provenance"}},"type":"object","required":["items","provenance"],"title":"ZScoreResponse"}}}}