changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "analysts": {
+ "items": {
+ "properties": {
+ "alertTypes": {
+ "items": {
+ "description": "Signal alert types routed to this analyst (whale_move, volume_breakout, accumulation, smart_money_loading, fear_buy, whale_convergence)",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "bio": {
+ "description": "Short description of the analyst's focus",
+ "type": "string"
+ },
+ "color": {
+ "type": "string"
+ },
+ "icon": {
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique analyst slug. One of: chain_hawk, whale_watch, alpha_scout, defi_pulse, quant_edge, rate_hawk, flow_tracer, unlock_guard, sentiment_edge, narrative_pulse",
+ "type": "string"
+ },
+ "name": {
+ "description": "Display name, e.g. ChainHawk",
+ "type": "string"
+ },
+ "specialization": {
+ "description": "Domain covered, e.g. BTC & Macro On-Chain",
+ "type": "string"
+ },
+ "stats": {
+ "description": "Live performance stats computed from signalHistory DB. Null values mean < 5 resolved signals.",
+ "properties": {
+ "avgReturn": {
+ "description": "Average return in percentage points (e.g. 12.3 = +12.3%). Null if < 5 resolved signals.",
+ "nullable": true,
+ "type": "number"
+ },
+ "lastSignalAt": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "losses": {
+ "type": "number"
+ },
+ "resolvedSignals": {
+ "description": "Signals with a win/loss outcome determined",
+ "type": "number"
+ },
+ "totalSignals": {
+ "description": "Total signals ever attributed to this analyst",
+ "type": "number"
+ },
+ "winRate": {
+ "description": "Fraction (0–1). Multiply by 100 for %. Null if < 5 resolved signals.",
+ "nullable": true,
+ "type": "number"
+ },
+ "wins": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "attribution": {
+ "$ref": "#/components/schemas/Attribution"
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ "type": "object"
+}