{
  "report": {
    "id": 98,
    "period": "[styled] Jun 29 - Jul 13, 2026 (Part 3 of 4)",
    "created_at": "2026-07-13T20:22:23.442221+00:00",
    "workflow_note": ""
  },
  "generation_diagnostics": {
    "available": true,
    "generated_at": "2026-07-13T20:23:05.812205Z",
    "tag": "styled",
    "media_scope": "all_media",
    "generation_strategy": "deep_chunked_two_pass_candidate_discovery_and_validation",
    "report_profile": "deep",
    "model": "~google/gemini-flash-latest",
    "previous_report_context": null,
    "vision_preflight": {
      "enabled": true,
      "since": "2026-06-29T19:56:46.754973Z",
      "media_scope": "all_media",
      "scoped_post_count": 0,
      "batch_size": 500,
      "max_batches": 20,
      "batch_count": 2,
      "images_requested": 391,
      "images_analyzed": 390,
      "posts_touched": 428,
      "reached_batch_cap": false,
      "batches": [
        {
          "batch_number": 1,
          "images_requested": 391,
          "images_analyzed": 390,
          "posts_touched": 428,
          "completion_reconciled": true
        },
        {
          "batch_number": 2,
          "images_requested": 0,
          "images_analyzed": 0,
          "posts_touched": 0,
          "completion_reconciled": false
        }
      ]
    },
    "chunking": {
      "enabled": true,
      "chunk_number": 3,
      "chunk_count": 4,
      "max_posts_per_chunk": 200,
      "max_media_per_chunk": 500,
      "chunk_post_count": 200,
      "chunk_media_count": 221,
      "full_source_post_count": 792,
      "full_eligible_post_count": 690,
      "full_source_media_count": 886
    },
    "criteria": {
      "time_window_days": 14,
      "window_start": "2026-06-29T19:56:46.754973Z",
      "minimum_confidence": 0.7,
      "minimum_matching_images": 4,
      "minimum_parent_posts": 3,
      "maximum_images_per_parent_post": 2,
      "preferred_matching_images": "6-12 when available; 4+ accepted for emerging micro-trends",
      "visual_similarity_is_primary": true,
      "caption_required": false,
      "captionless_posts_included": true,
      "engagement_included_in_prompt": true,
      "single_campaign_trends_excluded": true,
      "media_refs_can_support_multiple_trends": true,
      "deep_report_max_posts": 200,
      "deep_report_max_media": 500,
      "prompt_character_limit": 300000,
      "caption_character_limit": 600,
      "media_tag_limit": 14,
      "media_tag_character_limit": 0
    },
    "source_post_count": 792,
    "source_media_count": 886,
    "eligible_post_count": 690,
    "chunk_post_count": 200,
    "chunk_media_count": 221,
    "analyzed_post_count": 200,
    "analyzed_post_ids": [
      161336,
      160963,
      161445,
      161303,
      161274,
      161564,
      160931,
      161157,
      161207,
      160593,
      161723,
      161229,
      160473,
      150840,
      161266,
      161544,
      161788,
      161180,
      161348,
      161616,
      161601,
      160819,
      160750,
      160433,
      161055,
      160401,
      160807,
      160850,
      160682,
      160950,
      160902,
      161586,
      160869,
      161252,
      160569,
      160672,
      161158,
      161522,
      160456,
      161304,
      160751,
      160609,
      161012,
      161036,
      161013,
      160936,
      161108,
      161291,
      160758,
      160989,
      160777,
      161806,
      161230,
      161320,
      160594,
      161267,
      161545,
      160690,
      160903,
      161724,
      160728,
      150841,
      161446,
      161181,
      161275,
      160402,
      160314,
      161617,
      161208,
      161349,
      161418,
      160673,
      161436,
      160683,
      161117,
      161305,
      160999,
      160382,
      161037,
      161706,
      160508,
      160635,
      161161,
      160990,
      161808,
      160964,
      161357,
      160741,
      161725,
      161182,
      161691,
      160315,
      160752,
      160403,
      150842,
      161321,
      161209,
      161081,
      161768,
      160778,
      161447,
      161109,
      161622,
      160674,
      161337,
      161214,
      160870,
      161163,
      160474,
      161238,
      161565,
      161306,
      160753,
      160383,
      161038,
      160965,
      160879,
      161110,
      161618,
      160363,
      161160,
      160579,
      161588,
      161602,
      161809,
      160742,
      161810,
      160404,
      161636,
      161129,
      160691,
      161111,
      160373,
      161438,
      161490,
      150843,
      161322,
      160457,
      161183,
      161350,
      161056,
      161141,
      161566,
      161448,
      161164,
      161067,
      161191,
      160563,
      160966,
      161269,
      160871,
      161000,
      160384,
      161603,
      161048,
      160475,
      160991,
      161651,
      160754,
      160385,
      161039,
      160636,
      161098,
      161112,
      161292,
      161652,
      160808,
      161769,
      161777,
      160521,
      160643,
      161192,
      161338,
      161449,
      160386,
      160730,
      161546,
      161358,
      160881,
      161165,
      161637,
      160564,
      160820,
      161604,
      161184,
      150844,
      161239,
      161339,
      160951,
      161072,
      160644,
      160684,
      161001,
      161270,
      160364,
      161419,
      161253,
      160316,
      161506,
      161567
    ],
    "analyzed_media_count": 221,
    "analyzed_media_refs": [
      "161336:1",
      "160963:1",
      "161445:1",
      "161303:1",
      "161274:1",
      "161564:1",
      "160931:1",
      "161157:1",
      "161207:1",
      "160593:1",
      "161723:1",
      "161229:1",
      "160473:1",
      "150840:1",
      "161266:1",
      "161544:1",
      "161788:1",
      "161180:1",
      "161348:1",
      "161616:1",
      "161601:1",
      "160819:1",
      "160750:1",
      "160433:1",
      "161055:1",
      "161055:2",
      "160401:1",
      "160807:1",
      "160850:1",
      "160682:1",
      "160950:1",
      "160902:1",
      "161586:1",
      "160869:1",
      "161252:1",
      "160569:1",
      "160672:1",
      "161158:1",
      "161522:1",
      "160456:1",
      "161304:1",
      "160751:1",
      "160609:1",
      "161012:1",
      "161036:1",
      "161013:1",
      "160936:1",
      "160936:2",
      "160936:3",
      "160936:4",
      "160936:5",
      "160936:6",
      "161108:1",
      "161291:1",
      "160758:1",
      "160989:1",
      "160777:1",
      "161806:1",
      "161230:1",
      "161320:1",
      "161320:2",
      "161320:3",
      "160594:1",
      "161267:1",
      "161545:1",
      "160690:1",
      "160903:1",
      "161724:1",
      "160728:1",
      "150841:1",
      "161446:1",
      "161181:1",
      "161275:1",
      "160402:1",
      "160314:1",
      "161617:1",
      "161208:1",
      "161349:1",
      "161418:1",
      "160673:1",
      "161436:1",
      "160683:1",
      "161117:1",
      "161305:1",
      "160999:1",
      "160382:1",
      "160382:2",
      "161037:1",
      "161706:1",
      "160508:1",
      "160508:2",
      "160635:1",
      "161161:1",
      "160990:1",
      "161808:1",
      "160964:1",
      "161357:1",
      "160741:1",
      "161725:1",
      "161182:1",
      "161691:1",
      "161691:2",
      "161691:3",
      "160315:1",
      "160752:1",
      "160403:1",
      "150842:1",
      "161321:1",
      "161209:1",
      "161081:1",
      "161768:1",
      "160778:1",
      "161447:1",
      "161109:1",
      "161622:1",
      "160674:1",
      "161337:1",
      "161214:1",
      "160870:1",
      "161163:1",
      "161163:2",
      "161163:3",
      "160474:1",
      "161238:1",
      "161565:1",
      "161306:1",
      "160753:1",
      "160383:1",
      "161038:1",
      "160965:1",
      "160879:1",
      "161110:1",
      "161618:1",
      "160363:1",
      "161160:1",
      "160579:1",
      "160579:2",
      "160579:3",
      "161588:1",
      "161602:1",
      "161809:1",
      "160742:1",
      "161810:1",
      "160404:1",
      "161636:1",
      "161129:1",
      "160691:1",
      "161111:1",
      "160373:1",
      "161438:1",
      "161490:1",
      "150843:1",
      "161322:1",
      "160457:1",
      "161183:1",
      "161350:1",
      "161056:1",
      "161056:2",
      "161141:1",
      "161566:1",
      "161448:1",
      "161164:1",
      "161164:2",
      "161067:1",
      "161067:2",
      "161067:3",
      "161067:4",
      "161191:1",
      "160563:1",
      "160966:1",
      "161269:1",
      "160871:1",
      "161000:1",
      "160384:1",
      "161603:1",
      "161048:1",
      "160475:1",
      "160991:1",
      "161651:1",
      "160754:1",
      "160385:1",
      "161039:1",
      "160636:1",
      "161098:1",
      "161112:1",
      "161292:1",
      "161652:1",
      "160808:1",
      "161769:1",
      "161777:1",
      "160521:1",
      "160643:1",
      "161192:1",
      "161338:1",
      "161449:1",
      "160386:1",
      "160730:1",
      "161546:1",
      "161358:1",
      "160881:1",
      "161165:1",
      "161637:1",
      "160564:1",
      "160820:1",
      "161604:1",
      "161184:1",
      "150844:1",
      "161239:1",
      "161339:1",
      "160951:1",
      "161072:1",
      "160644:1",
      "160684:1",
      "161001:1",
      "161270:1",
      "160364:1",
      "161419:1",
      "161253:1",
      "160316:1",
      "161506:1",
      "161567:1"
    ],
    "full_source_prompt_character_count": 118208,
    "source_prompt_character_count": 118208,
    "prompt_character_count": 118208,
    "prompt_character_limit": 300000,
    "prompt_was_truncated": false,
    "candidate_prompt_character_count": 122367,
    "validation_prompt_character_count": 129681,
    "candidate_reasoning_scratchpad": "This period's landscape is heavily defined by high-summer escapism, displaying a distinct evolution into elevated coastal grandmother aesthetics, structured Americana dressing for holiday settings, and matching textured coordinates. We also see a clear push toward neutral athletic leisurewear that balances country club preppiness with functional, minimalist styling.",
    "validation_reasoning_scratchpad": "We validated and expanded key summer transitions including coastal blue pinstripes, classic preppy tenniscore uniforms, textured crochet knit sets, and maritime canvas totes. These trends capture an aspirational, sun-soaked lifestyle that bridges urban daywear with seaside resort lounging.",
    "ai_discovered_candidate_count": 10,
    "candidate_trends": [
      {
        "candidate_name": "Coastal Grandmother Blue & White Pinstripes",
        "trend_type": "outfit",
        "visual_axis": "styling_formula",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "160758:1",
          "161322:1",
          "161522:1",
          "161636:1"
        ],
        "visual_cues": [
          "light blue pinstripe",
          "classic button down shirt",
          "oversized striped shirt",
          "relaxed summer tailoring"
        ]
      },
      {
        "candidate_name": "The Knit & Crochet Co-ord Set",
        "trend_type": "outfit",
        "visual_axis": "texture",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "160936:1",
          "161349:1",
          "160385:1",
          "160936:5"
        ],
        "visual_cues": [
          "cream knit set",
          "crochet texture",
          "white crochet set",
          "ribbed co-ord"
        ]
      },
      {
        "candidate_name": "Chocolate Brown Ribbed Basics",
        "trend_type": "color",
        "visual_axis": "color",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "160579:1",
          "160579:2",
          "160579:3",
          "160936:2"
        ],
        "visual_cues": [
          "chocolate brown top",
          "ribbed racerback tank top",
          "earthy tones",
          "sleeveless top"
        ]
      },
      {
        "candidate_name": "Preppy Athletic Court Dresses",
        "trend_type": "outfit",
        "visual_axis": "garment_type",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "160819:1",
          "161207:1",
          "161209:1"
        ],
        "visual_cues": [
          "tenniscore aesthetic",
          "court dress",
          "white contrast trim",
          "preppy athletic style"
        ]
      },
      {
        "candidate_name": "Maritime & Nautical Canvas Totes",
        "trend_type": "accessory",
        "visual_axis": "accessory",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "161723:1",
          "161564:1",
          "161725:1"
        ],
        "visual_cues": [
          "canvas tote bag",
          "nautical theme",
          "whale motif",
          "heavyweight cotton"
        ]
      },
      {
        "candidate_name": "Lace & Crochet Trimmed Loungewear",
        "trend_type": "outfit",
        "visual_axis": "texture",
        "historical_relationship": "net_new",
        "seed_media_count": 5,
        "seed_media_refs": [
          "160433:1",
          "161230:1",
          "160402:1",
          "160636:1",
          "160644:1"
        ],
        "visual_cues": [
          "lace trim detail",
          "white cotton nightgown",
          "black lace blouse",
          "crochet trim"
        ]
      },
      {
        "candidate_name": "Asymmetrical Satin Halter Tops",
        "trend_type": "outfit",
        "visual_axis": "silhouette",
        "historical_relationship": "net_new",
        "seed_media_count": 5,
        "seed_media_refs": [
          "161163:1",
          "161163:2",
          "161163:3",
          "161164:1",
          "161164:2"
        ],
        "visual_cues": [
          "satin halter top",
          "draped silhouette",
          "asymmetrical",
          "backless silhouette"
        ]
      },
      {
        "candidate_name": "Patriotic Americana Red, White & Blue Knits",
        "trend_type": "outfit",
        "visual_axis": "styling_formula",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "160879:1",
          "160475:1",
          "161109:1"
        ],
        "visual_cues": [
          "american flag sweater",
          "nautical stripes",
          "fleece pullovers",
          "navy star motif"
        ]
      },
      {
        "candidate_name": "Linen Drawstring Trousers",
        "trend_type": "outfit",
        "visual_axis": "garment_type",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "161036:1",
          "161306:1",
          "161270:1"
        ],
        "visual_cues": [
          "linen trousers",
          "cream linen matching set",
          "wide leg pants",
          "relaxed silhouette"
        ]
      },
      {
        "candidate_name": "Retro Striped Parasols & Sun Loungers",
        "trend_type": "setting",
        "visual_axis": "setting",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "161267:1",
          "161158:1",
          "161810:1"
        ],
        "visual_cues": [
          "yellow striped parasols",
          "beach club setting",
          "mediterranean style",
          "pebble beach"
        ]
      }
    ],
    "ai_candidate_trend_count": 6,
    "ai_validated_trend_count_before_filter": 6,
    "accepted_trend_count": 5,
    "rejected_trend_count": 1,
    "rejected_trends": [
      {
        "trend_name": "Asymmetrical Satin Halter Tops",
        "confidence_score": 0.85,
        "valid_matching_image_count": 4,
        "matching_parent_post_count": 2,
        "matching_author_count": 1,
        "invalid_or_out_of_scope_media_refs": [],
        "unparseable_media_refs": [],
        "excluded_same_post_media_refs": [],
        "reasons": [
          "Images came from only 2 parent posts; minimum is 3."
        ]
      }
    ]
  },
  "accepted_trend_audit": [
    {
      "trend_number": 1,
      "trend_name": "Coastal Grandmother Blue & White Pinstripes",
      "blog_title": "The Coastal Classic: Blue & White Pinstripes for High Summer",
      "trend_type": "styling_formula",
      "signal_strength": "strong",
      "confidence_percent": 95.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Repeated use of light blue pinstripes, classic button-down silhouettes, and relaxed layouts photographed in airy outdoor or maritime settings.",
      "description": "Crisp light blue and white pinstriped shirts, button-downs, and lightweight jackets styled in relaxed coastal formats.",
      "keywords": [
        "light blue pinstripe",
        "classic button down",
        "coastal grandmother",
        "summer layering"
      ],
      "post_ids": [
        160758,
        161322,
        161522,
        161636
      ],
      "media_refs": [
        "160758:1",
        "161322:1",
        "161522:1",
        "161636:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 95.0% confidence. Repeated use of light blue pinstripes, classic button-down silhouettes, and relaxed layouts photographed in airy outdoor or maritime settings."
    },
    {
      "trend_number": 2,
      "trend_name": "The Knit & Crochet Co-ord Set",
      "blog_title": "Textured Ease: Matching Crochet and Knit Sets",
      "trend_type": "texture",
      "signal_strength": "strong",
      "confidence_percent": 92.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 3,
      "visual_similarity_reason": "Consistency in open-stitch crochet patterns, neutral knit fabric coordinates, and cozy matching textures styled for high-end resort leisure.",
      "description": "Cream, beige, and warm neutral knitwear twin sets, crochet coordinates, and cozy summer resort loungewear pieces worn together.",
      "keywords": [
        "crochet set",
        "cream knitwear",
        "ribbed co-ord",
        "resort lifestyle"
      ],
      "post_ids": [
        160936,
        161349,
        160385
      ],
      "media_refs": [
        "160936:1",
        "161349:1",
        "160385:1",
        "160936:5"
      ],
      "qualification_reason": "Accepted with 4 matching images across 3 parent posts at 92.0% confidence. Consistency in open-stitch crochet patterns, neutral knit fabric coordinates, and cozy matching textures styled for high-end resort leisure."
    },
    {
      "trend_number": 3,
      "trend_name": "Preppy Athletic Court Dresses",
      "blog_title": "Tenniscore Evolution: Court Dresses as the Ultimate Daywear",
      "trend_type": "outfit",
      "signal_strength": "strong",
      "confidence_percent": 90.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Consistent athletic dresses, white contrast piping, preppy collar designs, and structured sporty silhouettes framed in casual lifestyle setups.",
      "description": "White and navy court dresses, athletic polo dresses with contrast trim details, and preppy tennis silhouettes.",
      "keywords": [
        "tennis dress",
        "contrast trim",
        "preppy athletic",
        "court style"
      ],
      "post_ids": [
        160819,
        161207,
        161209,
        161108
      ],
      "media_refs": [
        "160819:1",
        "161207:1",
        "161209:1",
        "161108:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 90.0% confidence. Consistent athletic dresses, white contrast piping, preppy collar designs, and structured sporty silhouettes framed in casual lifestyle setups."
    },
    {
      "trend_number": 4,
      "trend_name": "Maritime & Nautical Canvas Totes",
      "blog_title": "Heirloom Nautical: Heavyweight Canvas Seaside Totes",
      "trend_type": "accessory",
      "signal_strength": "medium",
      "confidence_percent": 88.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Repeated focus on heavy cotton canvas, embroidered marine designs, classic red or navy borders, and practical seaside styling.",
      "description": "Structured heavyweight cotton canvas tote bags featuring nautical themes, screen-printed illustrations, and maritime custom embroidery.",
      "keywords": [
        "canvas tote",
        "nautical aesthetic",
        "whale motif",
        "beach bag"
      ],
      "post_ids": [
        161723,
        161564,
        161725,
        161108
      ],
      "media_refs": [
        "161723:1",
        "161564:1",
        "161725:1",
        "161108:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 88.0% confidence. Repeated focus on heavy cotton canvas, embroidered marine designs, classic red or navy borders, and practical seaside styling."
    },
    {
      "trend_number": 5,
      "trend_name": "Linen Drawstring Trousers",
      "blog_title": "Summer Uniform: Off-White Linen Drawstring Trousers",
      "trend_type": "outfit",
      "signal_strength": "strong",
      "confidence_percent": 94.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Matching lightweight linen fabrics, wide-leg utility silhouettes, cream palettes, and relaxed resort poses.",
      "description": "Relaxed wide-leg trousers and matching sets crafted from organic cream and beige linen, styled with minimal luxury accessories.",
      "keywords": [
        "linen pants",
        "cream trouser",
        "matching set",
        "relaxed silhouette"
      ],
      "post_ids": [
        161036,
        161306,
        161270,
        161055
      ],
      "media_refs": [
        "161036:1",
        "161306:1",
        "161270:1",
        "161055:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 94.0% confidence. Matching lightweight linen fabrics, wide-leg utility silhouettes, cream palettes, and relaxed resort poses."
    }
  ],
  "report_payload": {
    "reasoning_scratchpad": "We validated and expanded key summer transitions including coastal blue pinstripes, classic preppy tenniscore uniforms, textured crochet knit sets, and maritime canvas totes. These trends capture an aspirational, sun-soaked lifestyle that bridges urban daywear with seaside resort lounging.",
    "content_ideas": [
      {
        "blog_title": "The Coastal Classic: Blue & White Pinstripes for High Summer",
        "trend_name": "Coastal Grandmother Blue & White Pinstripes",
        "trend_type": "styling_formula",
        "trend_trajectory": "net_new",
        "historical_note": "This is a net-new trend capitalizing on the transition from maritime leisure to daily city classics.",
        "description": "Crisp light blue and white pinstriped shirts, button-downs, and lightweight jackets styled in relaxed coastal formats.",
        "visual_similarity_reason": "Repeated use of light blue pinstripes, classic button-down silhouettes, and relaxed layouts photographed in airy outdoor or maritime settings.",
        "instagram_caption": "Blowing in with the sea breeze: classic blue pinstripes that make every day feel like coastal Friday. \ud83d\udc2c\u2728\n\nStyle it oversized or layered over your favorite summer neutrals.\n\n#coastalgrandmother #preppystyle #yaitte #classicstripes",
        "trend_signal_strength": "strong",
        "confidence_score": 0.95,
        "keywords": [
          "light blue pinstripe",
          "classic button down",
          "coastal grandmother",
          "summer layering"
        ],
        "example_media_refs": [
          "160758:1",
          "161322:1",
          "161522:1",
          "161636:1"
        ],
        "example_post_ids": [
          160758,
          161322,
          161522,
          161636
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "Textured Ease: Matching Crochet and Knit Sets",
        "trend_name": "The Knit & Crochet Co-ord Set",
        "trend_type": "texture",
        "trend_trajectory": "net_new",
        "historical_note": "A net-new textural baseline replacing flat lightweight cottons with rich, open-weave and ribbed structures.",
        "description": "Cream, beige, and warm neutral knitwear twin sets, crochet coordinates, and cozy summer resort loungewear pieces worn together.",
        "visual_similarity_reason": "Consistency in open-stitch crochet patterns, neutral knit fabric coordinates, and cozy matching textures styled for high-end resort leisure.",
        "instagram_caption": "Meet the summer uniform where premium comfort meets high-end texture. \ud83d\udc1a\ud83e\uddf6\n\nEffortless, beach-to-street monochromatic sets that do all the talking for you.\n\n#crochetoutfit #knitset #resortwear #neutralstyle",
        "trend_signal_strength": "strong",
        "confidence_score": 0.92,
        "keywords": [
          "crochet set",
          "cream knitwear",
          "ribbed co-ord",
          "resort lifestyle"
        ],
        "example_media_refs": [
          "160936:1",
          "161349:1",
          "160385:1",
          "160936:5"
        ],
        "example_post_ids": [
          160936,
          161349,
          160385
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 3,
        "matching_author_count": 3
      },
      {
        "blog_title": "Tenniscore Evolution: Court Dresses as the Ultimate Daywear",
        "trend_name": "Preppy Athletic Court Dresses",
        "trend_type": "outfit",
        "trend_trajectory": "net_new",
        "historical_note": "Evolving from direct sportswear to general lifestyle daywear, blending tennis aesthetics with daily leisure.",
        "description": "White and navy court dresses, athletic polo dresses with contrast trim details, and preppy tennis silhouettes.",
        "visual_similarity_reason": "Consistent athletic dresses, white contrast piping, preppy collar designs, and structured sporty silhouettes framed in casual lifestyle setups.",
        "instagram_caption": "From the court to morning brunch. \ud83c\udfbe\ud83d\udc9a\n\nServe up effortless summer style with high-contrast piping and preppy polo dresses that never miss.\n\n#tenniscore #athleticdress #sportychic #preppystyle",
        "trend_signal_strength": "strong",
        "confidence_score": 0.9,
        "keywords": [
          "tennis dress",
          "contrast trim",
          "preppy athletic",
          "court style"
        ],
        "example_media_refs": [
          "160819:1",
          "161207:1",
          "161209:1",
          "161108:1"
        ],
        "example_post_ids": [
          160819,
          161207,
          161209,
          161108
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 3
      },
      {
        "blog_title": "Heirloom Nautical: Heavyweight Canvas Seaside Totes",
        "trend_name": "Maritime & Nautical Canvas Totes",
        "trend_type": "accessory",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new entry of heavyweight canvas bags replacing delicate open-weave straw bags for transit and daily errands.",
        "description": "Structured heavyweight cotton canvas tote bags featuring nautical themes, screen-printed illustrations, and maritime custom embroidery.",
        "visual_similarity_reason": "Repeated focus on heavy cotton canvas, embroidered marine designs, classic red or navy borders, and practical seaside styling.",
        "instagram_caption": "A city-to-beach classic that actually holds it all. \ud83d\udc33\u2693\n\nNautical emblems and heavyweight canvas meet your new weekend companion.\n\n#canvasbag #maritimestyle #boatbag #prepstyle",
        "trend_signal_strength": "medium",
        "confidence_score": 0.88,
        "keywords": [
          "canvas tote",
          "nautical aesthetic",
          "whale motif",
          "beach bag"
        ],
        "example_media_refs": [
          "161723:1",
          "161564:1",
          "161725:1",
          "161108:1"
        ],
        "example_post_ids": [
          161723,
          161564,
          161725,
          161108
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 3
      },
      {
        "blog_title": "Summer Uniform: Off-White Linen Drawstring Trousers",
        "trend_name": "Linen Drawstring Trousers",
        "trend_type": "outfit",
        "trend_trajectory": "net_new",
        "historical_note": "A sustained base staple that returns as the primary uniform for beachside getaways.",
        "description": "Relaxed wide-leg trousers and matching sets crafted from organic cream and beige linen, styled with minimal luxury accessories.",
        "visual_similarity_reason": "Matching lightweight linen fabrics, wide-leg utility silhouettes, cream palettes, and relaxed resort poses.",
        "instagram_caption": "Out of Office mode is officially on. \ud83c\udf3e\u2600\ufe0f\n\nEasy, breezy linen coords designed to take you effortlessly from sand to garden dinner.\n\n#linenstyle #resortlook #neutraloutfit #apieceapart",
        "trend_signal_strength": "strong",
        "confidence_score": 0.94,
        "keywords": [
          "linen pants",
          "cream trouser",
          "matching set",
          "relaxed silhouette"
        ],
        "example_media_refs": [
          "161036:1",
          "161306:1",
          "161270:1",
          "161055:1"
        ],
        "example_post_ids": [
          161036,
          161306,
          161270,
          161055
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      }
    ],
    "overview_title": "Latest Trends",
    "overview_description": "This week\u2019s shift toward effortless summer luxury centers on elevated coastal uniforms, defined by crisp blue-and-white pinstriped button-downs from rising labels like @yaitte_ and @chava_studio paired with fluid, wide-leg linen trousers from @apieceapart. The aesthetic is anchored by structured nautical canvas totes from @alexmillny and sporty, contrast-trimmed court dresses by @recreationalhabits that seamlessly bridge athletic function with preppy refinement. For transition hours, the look softens into cozy, color-coordinated knitwear from @skatiebrand and @splendidla, delivering a polished, resort-ready approach to warm-weather dressing.",
    "generation_diagnostics": {
      "available": true,
      "generated_at": "2026-07-13T20:23:05.812205Z",
      "tag": "styled",
      "media_scope": "all_media",
      "generation_strategy": "deep_chunked_two_pass_candidate_discovery_and_validation",
      "report_profile": "deep",
      "model": "~google/gemini-flash-latest",
      "previous_report_context": null,
      "vision_preflight": {
        "enabled": true,
        "since": "2026-06-29T19:56:46.754973Z",
        "media_scope": "all_media",
        "scoped_post_count": 0,
        "batch_size": 500,
        "max_batches": 20,
        "batch_count": 2,
        "images_requested": 391,
        "images_analyzed": 390,
        "posts_touched": 428,
        "reached_batch_cap": false,
        "batches": [
          {
            "batch_number": 1,
            "images_requested": 391,
            "images_analyzed": 390,
            "posts_touched": 428,
            "completion_reconciled": true
          },
          {
            "batch_number": 2,
            "images_requested": 0,
            "images_analyzed": 0,
            "posts_touched": 0,
            "completion_reconciled": false
          }
        ]
      },
      "chunking": {
        "enabled": true,
        "chunk_number": 3,
        "chunk_count": 4,
        "max_posts_per_chunk": 200,
        "max_media_per_chunk": 500,
        "chunk_post_count": 200,
        "chunk_media_count": 221,
        "full_source_post_count": 792,
        "full_eligible_post_count": 690,
        "full_source_media_count": 886
      },
      "criteria": {
        "time_window_days": 14,
        "window_start": "2026-06-29T19:56:46.754973Z",
        "minimum_confidence": 0.7,
        "minimum_matching_images": 4,
        "minimum_parent_posts": 3,
        "maximum_images_per_parent_post": 2,
        "preferred_matching_images": "6-12 when available; 4+ accepted for emerging micro-trends",
        "visual_similarity_is_primary": true,
        "caption_required": false,
        "captionless_posts_included": true,
        "engagement_included_in_prompt": true,
        "single_campaign_trends_excluded": true,
        "media_refs_can_support_multiple_trends": true,
        "deep_report_max_posts": 200,
        "deep_report_max_media": 500,
        "prompt_character_limit": 300000,
        "caption_character_limit": 600,
        "media_tag_limit": 14,
        "media_tag_character_limit": 0
      },
      "source_post_count": 792,
      "source_media_count": 886,
      "eligible_post_count": 690,
      "chunk_post_count": 200,
      "chunk_media_count": 221,
      "analyzed_post_count": 200,
      "analyzed_post_ids": [
        161336,
        160963,
        161445,
        161303,
        161274,
        161564,
        160931,
        161157,
        161207,
        160593,
        161723,
        161229,
        160473,
        150840,
        161266,
        161544,
        161788,
        161180,
        161348,
        161616,
        161601,
        160819,
        160750,
        160433,
        161055,
        160401,
        160807,
        160850,
        160682,
        160950,
        160902,
        161586,
        160869,
        161252,
        160569,
        160672,
        161158,
        161522,
        160456,
        161304,
        160751,
        160609,
        161012,
        161036,
        161013,
        160936,
        161108,
        161291,
        160758,
        160989,
        160777,
        161806,
        161230,
        161320,
        160594,
        161267,
        161545,
        160690,
        160903,
        161724,
        160728,
        150841,
        161446,
        161181,
        161275,
        160402,
        160314,
        161617,
        161208,
        161349,
        161418,
        160673,
        161436,
        160683,
        161117,
        161305,
        160999,
        160382,
        161037,
        161706,
        160508,
        160635,
        161161,
        160990,
        161808,
        160964,
        161357,
        160741,
        161725,
        161182,
        161691,
        160315,
        160752,
        160403,
        150842,
        161321,
        161209,
        161081,
        161768,
        160778,
        161447,
        161109,
        161622,
        160674,
        161337,
        161214,
        160870,
        161163,
        160474,
        161238,
        161565,
        161306,
        160753,
        160383,
        161038,
        160965,
        160879,
        161110,
        161618,
        160363,
        161160,
        160579,
        161588,
        161602,
        161809,
        160742,
        161810,
        160404,
        161636,
        161129,
        160691,
        161111,
        160373,
        161438,
        161490,
        150843,
        161322,
        160457,
        161183,
        161350,
        161056,
        161141,
        161566,
        161448,
        161164,
        161067,
        161191,
        160563,
        160966,
        161269,
        160871,
        161000,
        160384,
        161603,
        161048,
        160475,
        160991,
        161651,
        160754,
        160385,
        161039,
        160636,
        161098,
        161112,
        161292,
        161652,
        160808,
        161769,
        161777,
        160521,
        160643,
        161192,
        161338,
        161449,
        160386,
        160730,
        161546,
        161358,
        160881,
        161165,
        161637,
        160564,
        160820,
        161604,
        161184,
        150844,
        161239,
        161339,
        160951,
        161072,
        160644,
        160684,
        161001,
        161270,
        160364,
        161419,
        161253,
        160316,
        161506,
        161567
      ],
      "analyzed_media_count": 221,
      "analyzed_media_refs": [
        "161336:1",
        "160963:1",
        "161445:1",
        "161303:1",
        "161274:1",
        "161564:1",
        "160931:1",
        "161157:1",
        "161207:1",
        "160593:1",
        "161723:1",
        "161229:1",
        "160473:1",
        "150840:1",
        "161266:1",
        "161544:1",
        "161788:1",
        "161180:1",
        "161348:1",
        "161616:1",
        "161601:1",
        "160819:1",
        "160750:1",
        "160433:1",
        "161055:1",
        "161055:2",
        "160401:1",
        "160807:1",
        "160850:1",
        "160682:1",
        "160950:1",
        "160902:1",
        "161586:1",
        "160869:1",
        "161252:1",
        "160569:1",
        "160672:1",
        "161158:1",
        "161522:1",
        "160456:1",
        "161304:1",
        "160751:1",
        "160609:1",
        "161012:1",
        "161036:1",
        "161013:1",
        "160936:1",
        "160936:2",
        "160936:3",
        "160936:4",
        "160936:5",
        "160936:6",
        "161108:1",
        "161291:1",
        "160758:1",
        "160989:1",
        "160777:1",
        "161806:1",
        "161230:1",
        "161320:1",
        "161320:2",
        "161320:3",
        "160594:1",
        "161267:1",
        "161545:1",
        "160690:1",
        "160903:1",
        "161724:1",
        "160728:1",
        "150841:1",
        "161446:1",
        "161181:1",
        "161275:1",
        "160402:1",
        "160314:1",
        "161617:1",
        "161208:1",
        "161349:1",
        "161418:1",
        "160673:1",
        "161436:1",
        "160683:1",
        "161117:1",
        "161305:1",
        "160999:1",
        "160382:1",
        "160382:2",
        "161037:1",
        "161706:1",
        "160508:1",
        "160508:2",
        "160635:1",
        "161161:1",
        "160990:1",
        "161808:1",
        "160964:1",
        "161357:1",
        "160741:1",
        "161725:1",
        "161182:1",
        "161691:1",
        "161691:2",
        "161691:3",
        "160315:1",
        "160752:1",
        "160403:1",
        "150842:1",
        "161321:1",
        "161209:1",
        "161081:1",
        "161768:1",
        "160778:1",
        "161447:1",
        "161109:1",
        "161622:1",
        "160674:1",
        "161337:1",
        "161214:1",
        "160870:1",
        "161163:1",
        "161163:2",
        "161163:3",
        "160474:1",
        "161238:1",
        "161565:1",
        "161306:1",
        "160753:1",
        "160383:1",
        "161038:1",
        "160965:1",
        "160879:1",
        "161110:1",
        "161618:1",
        "160363:1",
        "161160:1",
        "160579:1",
        "160579:2",
        "160579:3",
        "161588:1",
        "161602:1",
        "161809:1",
        "160742:1",
        "161810:1",
        "160404:1",
        "161636:1",
        "161129:1",
        "160691:1",
        "161111:1",
        "160373:1",
        "161438:1",
        "161490:1",
        "150843:1",
        "161322:1",
        "160457:1",
        "161183:1",
        "161350:1",
        "161056:1",
        "161056:2",
        "161141:1",
        "161566:1",
        "161448:1",
        "161164:1",
        "161164:2",
        "161067:1",
        "161067:2",
        "161067:3",
        "161067:4",
        "161191:1",
        "160563:1",
        "160966:1",
        "161269:1",
        "160871:1",
        "161000:1",
        "160384:1",
        "161603:1",
        "161048:1",
        "160475:1",
        "160991:1",
        "161651:1",
        "160754:1",
        "160385:1",
        "161039:1",
        "160636:1",
        "161098:1",
        "161112:1",
        "161292:1",
        "161652:1",
        "160808:1",
        "161769:1",
        "161777:1",
        "160521:1",
        "160643:1",
        "161192:1",
        "161338:1",
        "161449:1",
        "160386:1",
        "160730:1",
        "161546:1",
        "161358:1",
        "160881:1",
        "161165:1",
        "161637:1",
        "160564:1",
        "160820:1",
        "161604:1",
        "161184:1",
        "150844:1",
        "161239:1",
        "161339:1",
        "160951:1",
        "161072:1",
        "160644:1",
        "160684:1",
        "161001:1",
        "161270:1",
        "160364:1",
        "161419:1",
        "161253:1",
        "160316:1",
        "161506:1",
        "161567:1"
      ],
      "full_source_prompt_character_count": 118208,
      "source_prompt_character_count": 118208,
      "prompt_character_count": 118208,
      "prompt_character_limit": 300000,
      "prompt_was_truncated": false,
      "candidate_prompt_character_count": 122367,
      "validation_prompt_character_count": 129681,
      "candidate_reasoning_scratchpad": "This period's landscape is heavily defined by high-summer escapism, displaying a distinct evolution into elevated coastal grandmother aesthetics, structured Americana dressing for holiday settings, and matching textured coordinates. We also see a clear push toward neutral athletic leisurewear that balances country club preppiness with functional, minimalist styling.",
      "validation_reasoning_scratchpad": "We validated and expanded key summer transitions including coastal blue pinstripes, classic preppy tenniscore uniforms, textured crochet knit sets, and maritime canvas totes. These trends capture an aspirational, sun-soaked lifestyle that bridges urban daywear with seaside resort lounging.",
      "ai_discovered_candidate_count": 10,
      "candidate_trends": [
        {
          "candidate_name": "Coastal Grandmother Blue & White Pinstripes",
          "trend_type": "outfit",
          "visual_axis": "styling_formula",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "160758:1",
            "161322:1",
            "161522:1",
            "161636:1"
          ],
          "visual_cues": [
            "light blue pinstripe",
            "classic button down shirt",
            "oversized striped shirt",
            "relaxed summer tailoring"
          ]
        },
        {
          "candidate_name": "The Knit & Crochet Co-ord Set",
          "trend_type": "outfit",
          "visual_axis": "texture",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "160936:1",
            "161349:1",
            "160385:1",
            "160936:5"
          ],
          "visual_cues": [
            "cream knit set",
            "crochet texture",
            "white crochet set",
            "ribbed co-ord"
          ]
        },
        {
          "candidate_name": "Chocolate Brown Ribbed Basics",
          "trend_type": "color",
          "visual_axis": "color",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "160579:1",
            "160579:2",
            "160579:3",
            "160936:2"
          ],
          "visual_cues": [
            "chocolate brown top",
            "ribbed racerback tank top",
            "earthy tones",
            "sleeveless top"
          ]
        },
        {
          "candidate_name": "Preppy Athletic Court Dresses",
          "trend_type": "outfit",
          "visual_axis": "garment_type",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "160819:1",
            "161207:1",
            "161209:1"
          ],
          "visual_cues": [
            "tenniscore aesthetic",
            "court dress",
            "white contrast trim",
            "preppy athletic style"
          ]
        },
        {
          "candidate_name": "Maritime & Nautical Canvas Totes",
          "trend_type": "accessory",
          "visual_axis": "accessory",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "161723:1",
            "161564:1",
            "161725:1"
          ],
          "visual_cues": [
            "canvas tote bag",
            "nautical theme",
            "whale motif",
            "heavyweight cotton"
          ]
        },
        {
          "candidate_name": "Lace & Crochet Trimmed Loungewear",
          "trend_type": "outfit",
          "visual_axis": "texture",
          "historical_relationship": "net_new",
          "seed_media_count": 5,
          "seed_media_refs": [
            "160433:1",
            "161230:1",
            "160402:1",
            "160636:1",
            "160644:1"
          ],
          "visual_cues": [
            "lace trim detail",
            "white cotton nightgown",
            "black lace blouse",
            "crochet trim"
          ]
        },
        {
          "candidate_name": "Asymmetrical Satin Halter Tops",
          "trend_type": "outfit",
          "visual_axis": "silhouette",
          "historical_relationship": "net_new",
          "seed_media_count": 5,
          "seed_media_refs": [
            "161163:1",
            "161163:2",
            "161163:3",
            "161164:1",
            "161164:2"
          ],
          "visual_cues": [
            "satin halter top",
            "draped silhouette",
            "asymmetrical",
            "backless silhouette"
          ]
        },
        {
          "candidate_name": "Patriotic Americana Red, White & Blue Knits",
          "trend_type": "outfit",
          "visual_axis": "styling_formula",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "160879:1",
            "160475:1",
            "161109:1"
          ],
          "visual_cues": [
            "american flag sweater",
            "nautical stripes",
            "fleece pullovers",
            "navy star motif"
          ]
        },
        {
          "candidate_name": "Linen Drawstring Trousers",
          "trend_type": "outfit",
          "visual_axis": "garment_type",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "161036:1",
            "161306:1",
            "161270:1"
          ],
          "visual_cues": [
            "linen trousers",
            "cream linen matching set",
            "wide leg pants",
            "relaxed silhouette"
          ]
        },
        {
          "candidate_name": "Retro Striped Parasols & Sun Loungers",
          "trend_type": "setting",
          "visual_axis": "setting",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "161267:1",
            "161158:1",
            "161810:1"
          ],
          "visual_cues": [
            "yellow striped parasols",
            "beach club setting",
            "mediterranean style",
            "pebble beach"
          ]
        }
      ],
      "ai_candidate_trend_count": 6,
      "ai_validated_trend_count_before_filter": 6,
      "accepted_trend_count": 5,
      "rejected_trend_count": 1,
      "rejected_trends": [
        {
          "trend_name": "Asymmetrical Satin Halter Tops",
          "confidence_score": 0.85,
          "valid_matching_image_count": 4,
          "matching_parent_post_count": 2,
          "matching_author_count": 1,
          "invalid_or_out_of_scope_media_refs": [],
          "unparseable_media_refs": [],
          "excluded_same_post_media_refs": [],
          "reasons": [
            "Images came from only 2 parent posts; minimum is 3."
          ]
        }
      ]
    }
  }
}