← Files Brokerage Screenshot ParserARCHIVED FILE

skills/parse-brokerage-screenshots/references/output-schema.json

6.28 KB · Oct 3, 2026 · 06:32 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/sizheng/prof/skills/parse-brokerage-screenshots/references/output-schema.json",
  "title": "Brokerage Screenshot Extraction",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "broker",
    "screen_type",
    "account_type",
    "account_identifier",
    "currency",
    "positions",
    "transactions",
    "warnings",
    "source_screenshots"
  ],
  "properties": {
    "broker": {
      "type": ["string", "null"]
    },
    "screen_type": {
      "enum": [
        "portfolio_positions",
        "transaction_history",
        "order_history",
        "balances",
        "unknown"
      ]
    },
    "account_type": {
      "type": ["string", "null"]
    },
    "account_identifier": {
      "type": ["string", "null"],
      "description": "Use [REDACTED] unless the user explicitly requests inclusion."
    },
    "currency": {
      "type": ["string", "null"],
      "description": "ISO 4217 currency code when visible or unambiguous."
    },
    "positions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/position"
      }
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/transaction"
      }
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "source_screenshots": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/sourceScreenshot"
      }
    }
  },
  "$defs": {
    "nullableNumber": {
      "type": ["number", "null"]
    },
    "warningList": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "instrumentType": {
      "enum": [
        "stock",
        "option",
        "etf",
        "cash",
        "cryptocurrency",
        "unknown"
      ]
    },
    "position": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "symbol",
        "description",
        "instrument_type",
        "expiration",
        "expiration_displayed",
        "strike",
        "option_type",
        "quantity",
        "last_price",
        "average_price",
        "cost_basis",
        "market_value",
        "day_gain",
        "day_gain_percent",
        "total_gain",
        "total_gain_percent",
        "confidence",
        "warnings"
      ],
      "properties": {
        "symbol": {
          "type": ["string", "null"]
        },
        "description": {
          "type": ["string", "null"]
        },
        "instrument_type": {
          "$ref": "#/$defs/instrumentType"
        },
        "expiration": {
          "type": ["string", "null"],
          "format": "date"
        },
        "expiration_displayed": {
          "type": ["string", "null"]
        },
        "strike": {
          "$ref": "#/$defs/nullableNumber"
        },
        "option_type": {
          "enum": ["call", "put", null]
        },
        "quantity": {
          "$ref": "#/$defs/nullableNumber"
        },
        "last_price": {
          "$ref": "#/$defs/nullableNumber"
        },
        "average_price": {
          "$ref": "#/$defs/nullableNumber"
        },
        "cost_basis": {
          "$ref": "#/$defs/nullableNumber"
        },
        "market_value": {
          "$ref": "#/$defs/nullableNumber"
        },
        "day_gain": {
          "$ref": "#/$defs/nullableNumber"
        },
        "day_gain_percent": {
          "$ref": "#/$defs/nullableNumber"
        },
        "total_gain": {
          "$ref": "#/$defs/nullableNumber"
        },
        "total_gain_percent": {
          "$ref": "#/$defs/nullableNumber"
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "warnings": {
          "$ref": "#/$defs/warningList"
        }
      }
    },
    "transaction": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "date",
        "date_displayed",
        "settlement_date",
        "symbol",
        "description",
        "instrument_type",
        "action",
        "quantity",
        "price",
        "amount",
        "fees",
        "status",
        "order_type",
        "expiration",
        "strike",
        "option_type",
        "confidence",
        "warnings"
      ],
      "properties": {
        "date": {
          "type": ["string", "null"],
          "format": "date"
        },
        "date_displayed": {
          "type": ["string", "null"]
        },
        "settlement_date": {
          "type": ["string", "null"],
          "format": "date"
        },
        "symbol": {
          "type": ["string", "null"]
        },
        "description": {
          "type": ["string", "null"]
        },
        "instrument_type": {
          "$ref": "#/$defs/instrumentType"
        },
        "action": {
          "type": ["string", "null"]
        },
        "quantity": {
          "$ref": "#/$defs/nullableNumber"
        },
        "price": {
          "$ref": "#/$defs/nullableNumber"
        },
        "amount": {
          "$ref": "#/$defs/nullableNumber"
        },
        "fees": {
          "$ref": "#/$defs/nullableNumber"
        },
        "status": {
          "type": ["string", "null"]
        },
        "order_type": {
          "type": ["string", "null"]
        },
        "expiration": {
          "type": ["string", "null"],
          "format": "date"
        },
        "strike": {
          "$ref": "#/$defs/nullableNumber"
        },
        "option_type": {
          "enum": ["call", "put", null]
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "warnings": {
          "$ref": "#/$defs/warningList"
        }
      }
    },
    "sourceScreenshot": {
      "type": "object",
      "additionalProperties": false,
      "required": ["sequence", "screen_type", "notes"],
      "properties": {
        "sequence": {
          "type": "integer",
          "minimum": 1
        },
        "screen_type": {
          "enum": [
            "portfolio_positions",
            "transaction_history",
            "order_history",
            "balances",
            "unknown"
          ]
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}

SHA-256: e75e9b54bd308693a1549c426a4b960f274c8972acba51fed6124c7ad7f6bcbe