changedOutput schema / properties / signals / items / properties / condition / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "forms": {
- "description": "SEC form types to listen for, e.g. ['8-K', '10-K'].",
- "items": {
- "maxLength": 10,
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- },
- "tickers": {
- "items": {
- "maxLength": 10,
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 50,
- "minItems": 1,
- "type": "array"
- },
- "type": {
- "const": "filing_event",
- "type": "string"
- }
- },
- "required": [
- "type",
- "tickers",
- "forms"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "comparator": {
- "enum": [
- "lt",
- "gt",
- "lte",
- "gte"
- ],
- "type": "string"
- },
- "ratio": {
- "description": "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda').",
- "maxLength": 60,
- "minLength": 1,
- "type": "string"
- },
- "threshold": {
- "type": "number"
- },
- "ticker": {
- "maxLength": 10,
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "ratio_threshold",
- "type": "string"
- }
- },
- "required": [
- "type",
- "ticker",
- "ratio",
- "comparator",
- "threshold"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "watchlist_change",
- "type": "string"
- },
- "watchlist_name": {
- "maxLength": 80,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "type",
- "watchlist_name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "direction": {
- "description": "Which direction of move to fire on. 'any' fires on either direction.",
- "enum": [
- "up",
- "down",
- "any"
- ],
- "type": "string"
- },
- "threshold_pct": {
- "description": "Minimum absolute close-to-close move, in percent (0.5–50), to fire.",
- "maximum": 50,
- "minimum": 0.5,
- "type": "number"
- },
- "ticker": {
- "maxLength": 10,
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "price_move",
- "type": "string"
- },
- "window_days": {
- "description": "Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).",
- "enum": [
- 1,
- 5,
- 21
- ],
- "type": "number"
- }
- },
- "required": [
- "type",
- "ticker",
- "direction",
- "threshold_pct",
- "window_days"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "change": {
- "description": "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either.",
- "enum": [
- "new_period",
- "restated",
- "any"
- ],
- "type": "string"
- },
- "concept": {
- "description": "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'.",
- "maxLength": 80,
- "minLength": 1,
- "type": "string"
- },
- "ticker": {
- "maxLength": 10,
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "fundamental_change",
- "type": "string"
- }
- },
- "required": [
- "type",
- "ticker",
- "concept",
- "change"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "watchlist_restatement",
- "type": "string"
- },
- "watchlist_name": {
- "description": "Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).",
- "maxLength": 80,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "type",
- "watchlist_name"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "forms": {
+ "description": "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D').",
+ "items": {
+ "maxLength": 20,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 25,
+ "type": "array"
+ },
+ "tickers": {
+ "items": {
+ "maxLength": 10,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 50,
+ "minItems": 1,
+ "type": "array"
+ },
+ "type": {
+ "const": "filing_event",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "tickers",
+ "forms"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "comparator": {
+ "enum": [
+ "lt",
+ "gt",
+ "lte",
+ "gte"
+ ],
+ "type": "string"
+ },
+ "ratio": {
+ "description": "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda').",
+ "maxLength": 60,
+ "minLength": 1,
+ "type": "string"
+ },
+ "threshold": {
+ "type": "number"
+ },
+ "ticker": {
+ "maxLength": 10,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "ratio_threshold",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "ticker",
+ "ratio",
+ "comparator",
+ "threshold"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "forms": {
+ "description": "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing.",
+ "items": {
+ "maxLength": 20,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 25,
+ "type": "array"
+ },
+ "type": {
+ "const": "watchlist_change",
+ "type": "string"
+ },
+ "watchlist_name": {
+ "maxLength": 80,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "watchlist_name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "direction": {
+ "description": "Which direction of move to fire on. 'any' fires on either direction.",
+ "enum": [
+ "up",
+ "down",
+ "any"
+ ],
+ "type": "string"
+ },
+ "threshold_pct": {
+ "description": "Minimum absolute close-to-close move, in percent (0.5–50), to fire.",
+ "maximum": 50,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "ticker": {
+ "maxLength": 10,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "price_move",
+ "type": "string"
+ },
+ "window_days": {
+ "description": "Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).",
+ "enum": [
+ 1,
+ 5,
+ 21
+ ],
+ "type": "number"
+ }
+ },
+ "required": [
+ "type",
+ "ticker",
+ "direction",
+ "threshold_pct",
+ "window_days"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "change": {
+ "description": "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either.",
+ "enum": [
+ "new_period",
+ "restated",
+ "any"
+ ],
+ "type": "string"
+ },
+ "concept": {
+ "description": "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'.",
+ "maxLength": 80,
+ "minLength": 1,
+ "type": "string"
+ },
+ "ticker": {
+ "maxLength": 10,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "fundamental_change",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "ticker",
+ "concept",
+ "change"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "const": "watchlist_restatement",
+ "type": "string"
+ },
+ "watchlist_name": {
+ "description": "Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).",
+ "maxLength": 80,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "watchlist_name"
+ ],
+ "type": "object"
+ }
+]