{
  "$id": "https://geoasked.com/data/geo-cases.schema.json",
  "title": "GEO Asked case record",
  "description": "One publicly reported GEO result: a brand, experiment or study that measurably gained visibility, citations or traffic in AI assistants. In geo-cases.json each record also has an \"id\" (the file name).",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "brand",
        "experiment",
        "study",
        "benchmark"
      ]
    },
    "brand": {
      "type": "string",
      "minLength": 1
    },
    "brand_disclosed": {
      "type": "boolean"
    },
    "website": {
      "default": null,
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[a-z0-9.-]+\\.[a-z]{2,}(\\/\\S*)?$"
        },
        {
          "type": "null"
        }
      ]
    },
    "industry": {
      "type": "string",
      "enum": [
        "saas",
        "developer-tools",
        "ecommerce",
        "fintech",
        "finance",
        "insurance",
        "health",
        "travel",
        "hospitality",
        "local-services",
        "home-services",
        "education",
        "media-publishing",
        "b2b-services",
        "marketing-agency",
        "consumer-app",
        "real-estate",
        "automotive",
        "legal",
        "food-beverage",
        "beauty-fashion",
        "manufacturing",
        "nonprofit",
        "other"
      ]
    },
    "business_model": {
      "default": "unknown",
      "type": "string",
      "enum": [
        "B2B",
        "B2C",
        "B2B2C",
        "unknown"
      ]
    },
    "company_size": {
      "default": "unknown",
      "type": "string",
      "enum": [
        "solo",
        "startup",
        "smb",
        "mid-market",
        "enterprise",
        "unknown"
      ]
    },
    "hq_country": {
      "default": null,
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "assistants": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "ChatGPT",
          "Perplexity",
          "Gemini",
          "Claude",
          "Copilot",
          "Google AI Overviews",
          "Google AI Mode",
          "Meta AI",
          "Grok",
          "DeepSeek",
          "Other"
        ]
      }
    },
    "headline": {
      "type": "object",
      "properties": {
        "en": {
          "type": "string",
          "minLength": 1
        },
        "tr": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "en",
        "tr"
      ],
      "additionalProperties": false
    },
    "result": {
      "default": "positive",
      "type": "string",
      "enum": [
        "positive",
        "mixed",
        "null",
        "negative"
      ]
    },
    "metrics": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ai_referral_traffic",
              "ai_signups",
              "ai_leads",
              "ai_revenue",
              "ai_conversion_rate",
              "ai_citations",
              "ai_mentions",
              "share_of_voice",
              "visibility_rate",
              "avg_position",
              "other"
            ]
          },
          "label": {
            "type": "string",
            "minLength": 1
          },
          "before": {
            "default": null,
            "type": [
              "number",
              "null"
            ]
          },
          "after": {
            "default": null,
            "type": [
              "number",
              "null"
            ]
          },
          "value": {
            "default": null,
            "type": [
              "number",
              "null"
            ]
          },
          "unit": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "change_pct": {
            "default": null,
            "type": [
              "number",
              "null"
            ]
          },
          "period": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "assistant": {
            "default": null,
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "ChatGPT",
                  "Perplexity",
                  "Gemini",
                  "Claude",
                  "Copilot",
                  "Google AI Overviews",
                  "Google AI Mode",
                  "Meta AI",
                  "Grok",
                  "DeepSeek",
                  "Other"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "type",
          "label"
        ],
        "additionalProperties": false
      }
    },
    "tactics": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "answer-content",
          "comparison-pages",
          "third-party-listicles",
          "reddit-community",
          "wikipedia-wikidata",
          "digital-pr",
          "reviews-ugc",
          "original-research",
          "statistics-citations",
          "structured-data",
          "technical-crawlability",
          "llms-txt",
          "bing-indexing",
          "entity-consistency",
          "content-refresh",
          "topical-depth",
          "youtube-video",
          "documentation-help-center",
          "product-feeds",
          "partnerships-integrations",
          "social-linkedin",
          "ai-visibility-tracking",
          "manipulation",
          "other"
        ]
      }
    },
    "timeframe": {
      "default": {
        "start": null,
        "end": null,
        "duration_months": null
      },
      "type": "object",
      "properties": {
        "start": {
          "default": null,
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$"
            },
            {
              "type": "null"
            }
          ]
        },
        "end": {
          "default": null,
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$"
            },
            {
              "type": "null"
            }
          ]
        },
        "duration_months": {
          "default": null,
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "executed_by": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "in-house",
            "agency",
            "vendor",
            "individual",
            "researchers",
            "unknown"
          ]
        },
        "name": {
          "default": null,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": false
    },
    "tools": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "publisher": {
            "type": "string",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "first-party",
              "agency",
              "vendor",
              "press",
              "research",
              "social",
              "podcast-video"
            ]
          },
          "published": {
            "default": null,
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "url",
          "title",
          "publisher",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "evidence": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C"
      ]
    },
    "conflict_of_interest": {
      "type": "boolean"
    },
    "notes": {
      "type": "object",
      "properties": {
        "en": {
          "type": "string",
          "minLength": 1
        },
        "tr": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "en",
        "tr"
      ],
      "additionalProperties": false
    },
    "added": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "verified": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "id": {
      "type": "string"
    }
  },
  "required": [
    "kind",
    "brand",
    "brand_disclosed",
    "industry",
    "headline",
    "metrics",
    "executed_by",
    "sources",
    "evidence",
    "conflict_of_interest",
    "added",
    "verified"
  ],
  "additionalProperties": false
}