{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://helpcompare.com/data/schema/ai-pricing.schema.json",
    "title": "The AI Tax: B2B SaaS AI Pricing Dataset",
    "description": "Field definitions for https://helpcompare.com/data/ai-pricing.json (CSV columns with the same name mean the same thing).",
    "type": "object",
    "required": [
        "dataset",
        "license",
        "generated",
        "records"
    ],
    "properties": {
        "$schema": {
            "type": "string",
            "description": "URL of this JSON Schema.",
            "format": "uri"
        },
        "dataset": {
            "type": "string",
            "description": "Dataset name."
        },
        "description": {
            "type": "string",
            "description": "What the dataset contains."
        },
        "license": {
            "type": "string",
            "description": "Licence URL (CC BY 4.0: reuse freely, credit HelpCompare and link to the source page).",
            "format": "uri"
        },
        "attribution": {
            "type": "string",
            "description": "The credit line to use when reusing the data."
        },
        "generated": {
            "type": "string",
            "description": "When this file was generated (UTC, ISO 8601).",
            "format": "date-time"
        },
        "record_count": {
            "type": "integer",
            "description": "Number of records in the file.",
            "minimum": 0
        },
        "notes": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Plain-English reading notes for the fields."
        },
        "records": {
            "type": "array",
            "description": "One record per vendor AI offering.",
            "items": {
                "type": "object",
                "required": [
                    "tool",
                    "pricing_model",
                    "pricing_model_key"
                ],
                "properties": {
                    "tool": {
                        "type": "string",
                        "description": "Product name."
                    },
                    "category": {
                        "type": "string",
                        "description": "Software category."
                    },
                    "ai_feature": {
                        "type": "string",
                        "description": "Name of the AI feature."
                    },
                    "pricing_model": {
                        "type": "string",
                        "description": "How the AI feature is billed: \"Bundled free\", \"Flat-fee add-on\", \"Metered / credit-based\", \"Custom quote hybrid\", \"New — pricing unclear\" or \"No major AI push\"."
                    },
                    "pricing_model_key": {
                        "type": "string",
                        "description": "Short filter label for pricing_model: \"Bundled free\", \"Flat add-on\", \"Metered\", \"Custom quote\", \"Not published\" or \"No major AI push\"."
                    },
                    "detail": {
                        "type": "string",
                        "description": "What the billing model means on the invoice, in words."
                    },
                    "tool_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "HelpCompare entity page for the tool; null if the tool has no entity page.",
                        "format": "uri"
                    },
                    "last_verified": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Date the tool's source comparison was last re-checked; null if the tool has no entity page.",
                        "format": "date"
                    }
                }
            }
        }
    }
}