{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/degenhedge-com/json-schema/degenhedge-com-record-schema.json",
  "title": "Record",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/degenhedge-com-openapi.yml#/components/schemas/Record",
  "type": "object",
  "required": [
    "product",
    "overall",
    "by_entry_price",
    "data_through_et",
    "ties_out_with_stats",
    "results_csv",
    "disclaimer",
    "summary"
  ],
  "properties": {
    "product": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "overall": {
      "type": "object",
      "required": [
        "signals",
        "wins",
        "losses",
        "win_rate_pct",
        "avg_entry_cents",
        "breakeven_before_fees_pct"
      ],
      "properties": {
        "signals": {
          "type": "integer",
          "description": "Graded alerts counted"
        },
        "wins": {
          "type": "integer"
        },
        "losses": {
          "type": "integer"
        },
        "win_rate_pct": {
          "type": [
            "number",
            "null"
          ],
          "description": "wins / signals x 100"
        },
        "wilson95_lo_pct": {
          "type": [
            "number",
            "null"
          ],
          "description": "Wilson 95% interval, low end"
        },
        "wilson95_hi_pct": {
          "type": [
            "number",
            "null"
          ],
          "description": "Wilson 95% interval, high end"
        },
        "avg_entry_cents": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average whole-cent entry price"
        },
        "breakeven_before_fees_pct": {
          "type": [
            "number",
            "null"
          ],
          "description": "Equals the average entry price: the win rate needed to break even before fees"
        },
        "breakeven_after_1contract_fee_pct": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average of (entry + one-contract taker fee) in cents"
        },
        "win_rate_minus_breakeven_before_fees_pts": {
          "type": [
            "number",
            "null"
          ],
          "description": "Negative = below breakeven"
        },
        "median_entry_cents": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "summary": {
      "type": "string",
      "description": "One sentence comparing the win rate with its breakeven"
    },
    "by_entry_price": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "bucket",
          "signals",
          "wins",
          "losses",
          "win_rate_pct",
          "avg_entry_cents",
          "breakeven_before_fees_pct"
        ],
        "properties": {
          "bucket": {
            "type": "string",
            "enum": [
              "79c or less",
              "80-85c",
              "86-89c",
              "90-92c",
              "93-94c",
              "95c",
              "96c",
              "97c",
              "98c",
              "99c"
            ]
          },
          "signals": {
            "type": "integer",
            "description": "Graded alerts counted"
          },
          "wins": {
            "type": "integer"
          },
          "losses": {
            "type": "integer"
          },
          "win_rate_pct": {
            "type": [
              "number",
              "null"
            ],
            "description": "wins / signals x 100"
          },
          "wilson95_lo_pct": {
            "type": [
              "number",
              "null"
            ],
            "description": "Wilson 95% interval, low end"
          },
          "wilson95_hi_pct": {
            "type": [
              "number",
              "null"
            ],
            "description": "Wilson 95% interval, high end"
          },
          "avg_entry_cents": {
            "type": [
              "number",
              "null"
            ],
            "description": "Average whole-cent entry price"
          },
          "breakeven_before_fees_pct": {
            "type": [
              "number",
              "null"
            ],
            "description": "Equals the average entry price: the win rate needed to break even before fees"
          },
          "breakeven_after_1contract_fee_pct": {
            "type": [
              "number",
              "null"
            ],
            "description": "Average of (entry + one-contract taker fee) in cents"
          },
          "win_rate_minus_breakeven_before_fees_pts": {
            "type": [
              "number",
              "null"
            ],
            "description": "Negative = below breakeven"
          }
        }
      }
    },
    "excluded_rows_disclosed_in_csv": {
      "type": "integer",
      "description": "BTC rows shown in results.csv but not counted (price capture error, 100c entry, not sent)"
    },
    "first_signal_et": {
      "type": [
        "string",
        "null"
      ]
    },
    "data_through_et": {
      "type": [
        "string",
        "null"
      ]
    },
    "data_through_utc": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "ties_out_with_stats": {
      "type": "boolean",
      "description": "n and wins equal the site's live /stats figures"
    },
    "stats_figures": {
      "type": "object"
    },
    "how_to_read": {
      "type": "string"
    },
    "method": {
      "type": "string"
    },
    "results_csv": {
      "type": "string",
      "format": "uri"
    },
    "results_page": {
      "type": "string",
      "format": "uri"
    },
    "dataset": {
      "type": "string",
      "format": "uri"
    },
    "attribution": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string"
    },
    "generated_at": {
      "type": "string",
      "format": "date-time"
    },
    "stale": {
      "type": "boolean",
      "description": "true if the last refresh failed and an older copy is served"
    },
    "service_information": {
      "type": "object",
      "description": "Optional dated product facts; not statistical evidence, investment advice or a personalized offer. Existing record fields are unchanged.",
      "properties": {
        "reviewed_at": {
          "type": "string",
          "format": "date"
        },
        "provider": {
          "type": "string"
        },
        "delivery_channel": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "setup": {
          "type": "string"
        },
        "product_url": {
          "type": "string",
          "format": "uri"
        },
        "demo_url": {
          "type": "string",
          "format": "uri"
        },
        "offer_url": {
          "type": "string",
          "format": "uri"
        },
        "monthly_price_usd": {
          "type": "string",
          "description": "Decimal USD amount per month for one BTC feed, as of reviewed_at. Check current checkout terms."
        },
        "billing_unit": {
          "type": "string"
        },
        "offer_terms": {
          "type": "string"
        },
        "limitation": {
          "type": "string"
        },
        "trial_days": {
          "type": "integer",
          "minimum": 0
        },
        "places_trades": {
          "type": "boolean"
        },
        "requires_kalshi_credentials": {
          "type": "boolean"
        },
        "card_required": {
          "type": "boolean"
        }
      }
    }
  }
}