changedOutput schema / properties / data / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "bestPerformer": {
- "additionalProperties": false,
- "description": "Best performing location (for comparison analysis)",
- "properties": {
- "bestPractices": {
- "description": "Practices other locations should adopt",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "reason": {
- "description": "Why this location performs best",
- "type": "string"
- },
- "storeId": {
- "description": "Store identifier of the best performing location",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "storeId",
- "reason",
- "bestPractices"
- ],
- "type": "object"
- },
- "commonStrengths": {
- "description": "Strengths shared across locations (for comparison analysis)",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "commonWeaknesses": {
- "description": "Weaknesses shared across locations (for comparison analysis)",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "issues": {
- "description": "Issues identified (for issues analysis)",
- "items": {
- "additionalProperties": false,
- "properties": {
- "affectedLocations": {
- "description": "Store IDs of affected locations",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "category": {
- "description": "Issue category (e.g., \"Wait Times\", \"Cleanliness\", \"Staff\")",
- "minLength": 1,
- "type": "string"
- },
- "description": {
- "description": "Description of the issue",
- "minLength": 1,
- "type": "string"
- },
- "exampleQuotes": {
- "description": "Representative quotes illustrating this issue",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "frequency": {
- "description": "How often this issue appears",
- "minimum": 0,
- "type": "integer"
- },
- "severity": {
- "description": "Severity level of the issue",
- "enum": [
- "low",
- "medium",
- "high",
- "critical"
- ],
- "type": "string"
- },
- "suggestedAction": {
- "description": "Recommended action to address the issue",
- "type": "string"
- }
- },
- "required": [
- "category",
- "description",
- "severity",
- "frequency"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "locationComparison": {
- "description": "Location comparison (for comparison analysis)",
- "items": {
- "additionalProperties": false,
- "properties": {
- "averageRating": {
- "description": "Average rating for this location (1-5)",
- "maximum": 5,
- "minimum": 1,
- "type": "number"
- },
- "locationName": {
- "description": "Location name",
- "type": "string"
- },
- "lowConfidence": {
- "description": "True when location has few reviews (<10)",
- "type": "boolean"
- },
- "recommendations": {
- "description": "Specific actions to improve this location",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "reviewCount": {
- "description": "Number of reviews analyzed",
- "minimum": 0,
- "type": "integer"
- },
- "sentiment": {
- "description": "Overall sentiment for this location",
- "enum": [
- "positive",
- "neutral",
- "negative",
- "mixed"
- ],
- "type": "string"
- },
- "storeId": {
- "description": "Store identifier",
- "minLength": 1,
- "type": "string"
- },
- "strengths": {
- "description": "Key strengths identified",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "weaknesses": {
- "description": "Key weaknesses identified",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "storeId",
- "averageRating",
- "reviewCount",
- "sentiment",
- "strengths",
- "weaknesses"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "summary": {
- "additionalProperties": false,
- "description": "Executive summary (for summary analysis)",
- "properties": {
- "averageRating": {
- "description": "Average rating across analyzed reviews (1-5)",
- "maximum": 5,
- "minimum": 1,
- "type": "number"
- },
- "executiveSummary": {
- "description": "2-3 sentence summary of findings",
- "minLength": 1,
- "type": "string"
- },
- "lowConfidence": {
- "description": "True when sample size is small (<20 reviews)",
- "type": "boolean"
- },
- "overallSentiment": {
- "description": "Overall sentiment classification",
- "enum": [
- "positive",
- "neutral",
- "negative",
- "mixed"
- ],
- "type": "string"
- },
- "ratingDistribution": {
- "additionalProperties": {
- "minimum": 0,
- "type": "integer"
- },
- "description": "Rating distribution (e.g., {\"5\": 100, \"4\": 50})",
- "type": "object"
- },
- "sentimentDistribution": {
- "additionalProperties": false,
- "description": "Sentiment breakdown by percentage",
- "properties": {
- "negative": {
- "description": "Percentage of negative reviews (0-100)",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "neutral": {
- "description": "Percentage of neutral reviews (0-100)",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "positive": {
- "description": "Percentage of positive reviews (0-100)",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "positive",
- "neutral",
- "negative"
- ],
- "type": "object"
- }
- },
- "required": [
- "executiveSummary",
- "overallSentiment",
- "averageRating",
- "sentimentDistribution",
- "ratingDistribution"
- ],
- "type": "object"
- },
- "themes": {
- "additionalProperties": false,
- "description": "Theme analysis (for summary/themes analysis)",
- "properties": {
- "negative": {
- "description": "Negative themes/areas for improvement",
- "items": {
- "$ref": "#/properties/data/anyOf/0/properties/themes/properties/positive/items"
- },
- "type": "array"
- },
- "positive": {
- "description": "Positive themes identified",
- "items": {
- "additionalProperties": false,
- "properties": {
- "exampleQuote": {
- "description": "Representative quote illustrating this theme",
- "type": "string"
- },
- "frequency": {
- "description": "How often this theme appears in reviews",
- "minimum": 0,
- "type": "integer"
- },
- "severity": {
- "description": "Severity level (for negative themes only)",
- "enum": [
- "low",
- "medium",
- "high",
- "critical"
- ],
- "type": "string"
- },
- "theme": {
- "description": "Theme or topic identified (e.g., \"Service Speed\", \"Staff Friendliness\")",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "theme",
- "frequency"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "positive",
- "negative"
- ],
- "type": "object"
- },
- "trends": {
- "additionalProperties": false,
- "description": "Trends analysis (for trends analysis)",
- "properties": {
- "currentPeriod": {
- "additionalProperties": false,
- "description": "Current period summary",
- "properties": {
- "averageRating": {
- "description": "Average rating in current period (1-5)",
- "maximum": 5,
- "minimum": 1,
- "type": "number"
- },
- "reviewCount": {
- "description": "Number of reviews in current period",
- "minimum": 0,
- "type": "integer"
- },
- "sentiment": {
- "description": "Overall sentiment in current period",
- "enum": [
- "positive",
- "neutral",
- "negative",
- "mixed"
- ],
- "type": "string"
- }
- },
- "required": [
- "averageRating",
- "sentiment",
- "reviewCount"
- ],
- "type": "object"
- },
- "direction": {
- "description": "Overall trend direction (based on ±0.2 rating threshold)",
- "enum": [
- "improving",
- "stable",
- "declining"
- ],
- "type": "string"
- },
- "emergingIssues": {
- "description": "New issues that emerged",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "previousPeriod": {
- "additionalProperties": false,
- "description": "Prior period summary",
- "properties": {
- "averageRating": {
- "description": "Average rating in prior period (1-5)",
- "maximum": 5,
- "minimum": 1,
- "type": "number"
- },
- "reviewCount": {
- "description": "Number of reviews in prior period",
- "minimum": 0,
- "type": "integer"
- },
- "sentiment": {
- "description": "Overall sentiment in prior period",
- "enum": [
- "positive",
- "neutral",
- "negative",
- "mixed"
- ],
- "type": "string"
- }
- },
- "required": [
- "averageRating",
- "sentiment",
- "reviewCount"
- ],
- "type": "object"
- },
- "prominenceChanges": {
- "description": "Themes gaining or losing prominence",
- "items": {
- "additionalProperties": false,
- "properties": {
- "note": {
- "description": "Brief explanation of the change",
- "type": "string"
- },
- "theme": {
- "description": "Theme name",
- "minLength": 1,
- "type": "string"
- },
- "trend": {
- "description": "Direction of change",
- "enum": [
- "increasing",
- "stable",
- "decreasing"
- ],
- "type": "string"
- }
- },
- "required": [
- "theme",
- "trend"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "ratingChange": {
- "description": "Rating change between periods (current - previous)",
- "type": "number"
- },
- "resolvedIssues": {
- "description": "Issues that were resolved",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "direction",
- "previousPeriod",
- "currentPeriod",
- "emergingIssues",
- "resolvedIssues"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bestPerformer": {
+ "additionalProperties": false,
+ "description": "Best performing location (for comparison analysis)",
+ "properties": {
+ "bestPractices": {
+ "description": "Practices other locations should adopt",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "reason": {
+ "description": "Why this location performs best",
+ "type": "string"
+ },
+ "storeId": {
+ "description": "Store identifier of the best performing location",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "storeId",
+ "reason",
+ "bestPractices"
+ ],
+ "type": "object"
+ },
+ "commonStrengths": {
+ "description": "Strengths shared across locations (for comparison analysis)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "commonWeaknesses": {
+ "description": "Weaknesses shared across locations (for comparison analysis)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "issues": {
+ "description": "Issues identified (for issues analysis)",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affectedLocations": {
+ "description": "Store IDs of affected locations",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "category": {
+ "description": "Issue category (e.g., \"Wait Times\", \"Cleanliness\", \"Staff\")",
+ "minLength": 1,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the issue",
+ "minLength": 1,
+ "type": "string"
+ },
+ "exampleQuotes": {
+ "description": "Representative quotes illustrating this issue",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "frequency": {
+ "description": "How often this issue appears",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "severity": {
+ "description": "Severity level of the issue",
+ "enum": [
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "type": "string"
+ },
+ "suggestedAction": {
+ "description": "Recommended action to address the issue",
+ "type": "string"
+ }
+ },
+ "required": [
+ "category",
+ "description",
+ "severity",
+ "frequency"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "locationComparison": {
+ "description": "Location comparison (for comparison analysis)",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "averageRating": {
+ "description": "Average rating for this location (1-5)",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "number"
+ },
+ "locationName": {
+ "description": "Location name",
+ "type": "string"
+ },
+ "lowConfidence": {
+ "description": "True when location has few reviews (<10)",
+ "type": "boolean"
+ },
+ "recommendations": {
+ "description": "Specific actions to improve this location",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "reviewCount": {
+ "description": "Number of reviews analyzed",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "sentiment": {
+ "description": "Overall sentiment for this location",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "type": "string"
+ },
+ "storeId": {
+ "description": "Store identifier",
+ "minLength": 1,
+ "type": "string"
+ },
+ "strengths": {
+ "description": "Key strengths identified",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "weaknesses": {
+ "description": "Key weaknesses identified",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "storeId",
+ "averageRating",
+ "reviewCount",
+ "sentiment",
+ "strengths",
+ "weaknesses"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "description": "Executive summary (for summary analysis)",
+ "properties": {
+ "averageRating": {
+ "description": "Average rating across analyzed reviews (1-5)",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "number"
+ },
+ "executiveSummary": {
+ "description": "2-3 sentence summary of findings",
+ "minLength": 1,
+ "type": "string"
+ },
+ "lowConfidence": {
+ "description": "True when sample size is small (<20 reviews)",
+ "type": "boolean"
+ },
+ "overallSentiment": {
+ "description": "Overall sentiment classification",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "type": "string"
+ },
+ "ratingDistribution": {
+ "additionalProperties": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "description": "Rating distribution (e.g., {\"5\": 100, \"4\": 50})",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "sentimentDistribution": {
+ "additionalProperties": false,
+ "description": "Sentiment breakdown by percentage",
+ "properties": {
+ "negative": {
+ "description": "Percentage of negative reviews (0-100)",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "neutral": {
+ "description": "Percentage of neutral reviews (0-100)",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "positive": {
+ "description": "Percentage of positive reviews (0-100)",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "executiveSummary",
+ "overallSentiment",
+ "averageRating",
+ "sentimentDistribution",
+ "ratingDistribution"
+ ],
+ "type": "object"
+ },
+ "themes": {
+ "additionalProperties": false,
+ "description": "Theme analysis (for summary/themes analysis)",
+ "properties": {
+ "negative": {
+ "description": "Negative themes/areas for improvement",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "exampleQuote": {
+ "description": "Representative quote illustrating this theme",
+ "type": "string"
+ },
+ "frequency": {
+ "description": "How often this theme appears in reviews",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "severity": {
+ "description": "Severity level (for negative themes only)",
+ "enum": [
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "type": "string"
+ },
+ "theme": {
+ "description": "Theme or topic identified (e.g., \"Service Speed\", \"Staff Friendliness\")",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "theme",
+ "frequency"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "positive": {
+ "description": "Positive themes identified",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "exampleQuote": {
+ "description": "Representative quote illustrating this theme",
+ "type": "string"
+ },
+ "frequency": {
+ "description": "How often this theme appears in reviews",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "severity": {
+ "description": "Severity level (for negative themes only)",
+ "enum": [
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "type": "string"
+ },
+ "theme": {
+ "description": "Theme or topic identified (e.g., \"Service Speed\", \"Staff Friendliness\")",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "theme",
+ "frequency"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "positive",
+ "negative"
+ ],
+ "type": "object"
+ },
+ "trends": {
+ "additionalProperties": false,
+ "description": "Trends analysis (for trends analysis)",
+ "properties": {
+ "currentPeriod": {
+ "additionalProperties": false,
+ "description": "Current period summary",
+ "properties": {
+ "averageRating": {
+ "description": "Average rating in current period (1-5)",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "number"
+ },
+ "reviewCount": {
+ "description": "Number of reviews in current period",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "sentiment": {
+ "description": "Overall sentiment in current period",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "averageRating",
+ "sentiment",
+ "reviewCount"
+ ],
+ "type": "object"
+ },
+ "direction": {
+ "description": "Overall trend direction (based on ±0.2 rating threshold)",
+ "enum": [
+ "improving",
+ "stable",
+ "declining"
+ ],
+ "type": "string"
+ },
+ "emergingIssues": {
+ "description": "New issues that emerged",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "previousPeriod": {
+ "additionalProperties": false,
+ "description": "Prior period summary",
+ "properties": {
+ "averageRating": {
+ "description": "Average rating in prior period (1-5)",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "number"
+ },
+ "reviewCount": {
+ "description": "Number of reviews in prior period",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "sentiment": {
+ "description": "Overall sentiment in prior period",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "averageRating",
+ "sentiment",
+ "reviewCount"
+ ],
+ "type": "object"
+ },
+ "prominenceChanges": {
+ "description": "Themes gaining or losing prominence",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "note": {
+ "description": "Brief explanation of the change",
+ "type": "string"
+ },
+ "theme": {
+ "description": "Theme name",
+ "minLength": 1,
+ "type": "string"
+ },
+ "trend": {
+ "description": "Direction of change",
+ "enum": [
+ "increasing",
+ "stable",
+ "decreasing"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "theme",
+ "trend"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ratingChange": {
+ "description": "Rating change between periods (current - previous)",
+ "type": "number"
+ },
+ "resolvedIssues": {
+ "description": "Issues that were resolved",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "direction",
+ "previousPeriod",
+ "currentPeriod",
+ "emergingIssues",
+ "resolvedIssues"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]