You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.4 KiB
JSON
146 lines
4.4 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://example.local/schemas/parser_event.schema.json",
|
|
"title": "ParserEvent",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"document_id",
|
|
"parser_kind",
|
|
"event_type",
|
|
"event_direction",
|
|
"event_date",
|
|
"filing_time_bucket",
|
|
"summary",
|
|
"guidance",
|
|
"signals",
|
|
"risk_flags",
|
|
"confidence"
|
|
],
|
|
"properties": {
|
|
"schema_version": { "type": "string" },
|
|
"document_id": { "type": "string", "minLength": 1 },
|
|
"parser_kind": {
|
|
"type": "string",
|
|
"enum": ["rule", "llm", "merged"]
|
|
},
|
|
"event_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"earnings_release",
|
|
"guidance_update",
|
|
"material_contract",
|
|
"regulatory_or_approval",
|
|
"capital_markets_or_financing",
|
|
"management_change",
|
|
"litigation_or_investigation",
|
|
"other_material_event",
|
|
"unknown"
|
|
]
|
|
},
|
|
"event_direction": {
|
|
"type": "string",
|
|
"enum": ["bullish", "bearish", "mixed", "neutral", "unknown"]
|
|
},
|
|
"event_date": { "type": "string", "format": "date" },
|
|
"filing_time_bucket": {
|
|
"type": "string",
|
|
"enum": ["pre_market", "regular_hours", "post_market", "unknown"]
|
|
},
|
|
"headline": { "type": "string" },
|
|
"summary": { "type": "string", "minLength": 1 },
|
|
"guidance": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["status", "scope", "notes"],
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"raised",
|
|
"inline_or_maintained",
|
|
"lowered",
|
|
"withdrawn",
|
|
"not_provided",
|
|
"unclear"
|
|
]
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": ["quarterly", "annual", "both", "unknown"]
|
|
},
|
|
"notes": { "type": "string" }
|
|
}
|
|
},
|
|
"signals": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"demand_strength",
|
|
"pricing_power",
|
|
"backlog_or_bookings",
|
|
"customer_expansion",
|
|
"margin_quality"
|
|
],
|
|
"properties": {
|
|
"demand_strength": { "type": "string", "enum": ["strong", "stable", "weakening", "unknown"] },
|
|
"pricing_power": { "type": "string", "enum": ["present", "mixed", "absent", "unknown"] },
|
|
"backlog_or_bookings": { "type": "string", "enum": ["present", "mixed", "absent", "unknown"] },
|
|
"customer_expansion": { "type": "string", "enum": ["present", "mixed", "absent", "unknown"] },
|
|
"margin_quality": { "type": "string", "enum": ["improving", "stable", "deteriorating", "unknown"] }
|
|
}
|
|
},
|
|
"risk_flags": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"oneoff_item",
|
|
"tax_benefit",
|
|
"valuation_gain",
|
|
"non_gaap_heavy",
|
|
"financing_related",
|
|
"legal_or_regulatory_overhang"
|
|
],
|
|
"properties": {
|
|
"oneoff_item": { "type": "boolean" },
|
|
"tax_benefit": { "type": "boolean" },
|
|
"valuation_gain": { "type": "boolean" },
|
|
"non_gaap_heavy": { "type": "boolean" },
|
|
"financing_related": { "type": "boolean" },
|
|
"legal_or_regulatory_overhang": { "type": "boolean" }
|
|
}
|
|
},
|
|
"evidence": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["label", "text_span", "section_hint", "confidence"],
|
|
"properties": {
|
|
"label": { "type": "string" },
|
|
"text_span": { "type": "string" },
|
|
"section_hint": { "type": "string" },
|
|
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
|
|
}
|
|
}
|
|
},
|
|
"confidence": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["overall", "event_type", "event_direction", "guidance", "risk_flags"],
|
|
"properties": {
|
|
"overall": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"event_type": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"event_direction": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"guidance": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"risk_flags": { "type": "number", "minimum": 0, "maximum": 1 }
|
|
}
|
|
},
|
|
"warnings": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
}
|
|
}
|
|
}
|