{
  "report": {
    "id": 142,
    "period": "[swimwear] Jul 14 - Jul 28, 2026 (Part 4 of 11)",
    "created_at": "2026-07-28T20:15:30.500995+00:00",
    "workflow_note": ""
  },
  "generation_diagnostics": {
    "available": true,
    "generated_at": "2026-07-28T20:15:43.730809Z",
    "tag": "swimwear",
    "media_scope": "cover_only",
    "generation_strategy": "deep_chunked_two_pass_candidate_discovery_and_validation",
    "report_profile": "deep",
    "model": "google/gemini-3.5-flash-lite",
    "previous_report_context": null,
    "vision_preflight": {
      "enabled": true,
      "since": "2026-07-14T20:05:26.235773Z",
      "media_scope": "cover_only",
      "scoped_post_count": 0,
      "batch_size": 500,
      "max_batches": 20,
      "batch_count": 3,
      "images_requested": 918,
      "images_analyzed": 904,
      "posts_touched": 918,
      "reached_batch_cap": false,
      "batches": [
        {
          "batch_number": 1,
          "images_requested": 500,
          "images_analyzed": 495,
          "posts_touched": 500,
          "completion_reconciled": false
        },
        {
          "batch_number": 2,
          "images_requested": 418,
          "images_analyzed": 409,
          "posts_touched": 418,
          "completion_reconciled": false
        },
        {
          "batch_number": 3,
          "images_requested": 0,
          "images_analyzed": 0,
          "posts_touched": 0,
          "completion_reconciled": false
        }
      ]
    },
    "chunking": {
      "enabled": true,
      "chunk_number": 4,
      "chunk_count": 11,
      "max_posts_per_chunk": 200,
      "max_media_per_chunk": 500,
      "chunk_post_count": 200,
      "chunk_media_count": 200,
      "full_source_post_count": 2274,
      "full_eligible_post_count": 2026,
      "full_source_media_count": 2026
    },
    "criteria": {
      "time_window_days": 14,
      "window_start": "2026-07-14T20:05:26.235773Z",
      "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": 2274,
    "source_media_count": 2026,
    "eligible_post_count": 2026,
    "chunk_post_count": 200,
    "chunk_media_count": 200,
    "analyzed_post_count": 200,
    "analyzed_post_ids": [
      172595,
      174423,
      175947,
      174047,
      174277,
      175435,
      173784,
      175436,
      172911,
      173035,
      175019,
      174078,
      173760,
      173511,
      171758,
      175832,
      174702,
      175299,
      175595,
      174207,
      174369,
      174151,
      173639,
      172002,
      172659,
      174800,
      173538,
      172282,
      172311,
      174506,
      171940,
      172906,
      173592,
      174984,
      173238,
      173885,
      172862,
      174632,
      174765,
      172482,
      172826,
      172981,
      173468,
      175897,
      173793,
      171949,
      172433,
      174295,
      174495,
      174147,
      174401,
      173321,
      171916,
      176021,
      172726,
      175879,
      172960,
      175521,
      173908,
      173256,
      173621,
      175685,
      173825,
      172643,
      175154,
      173282,
      175686,
      174017,
      175687,
      175688,
      175689,
      175690,
      171718,
      175691,
      172762,
      172348,
      173186,
      174053,
      173196,
      174278,
      175833,
      173216,
      175834,
      173943,
      172124,
      172179,
      173452,
      173997,
      171929,
      173232,
      172785,
      172019,
      174215,
      172063,
      172584,
      175052,
      173141,
      172558,
      173132,
      174633,
      174006,
      171693,
      172420,
      172559,
      175792,
      173014,
      172403,
      173059,
      175081,
      173029,
      171849,
      172994,
      175692,
      173721,
      175693,
      174926,
      172618,
      173862,
      174155,
      175082,
      173079,
      174933,
      175911,
      173794,
      173897,
      172907,
      171768,
      173701,
      172970,
      174831,
      173648,
      174105,
      173923,
      171780,
      173772,
      175033,
      174527,
      172180,
      174414,
      172569,
      172693,
      174033,
      173115,
      175463,
      171814,
      174576,
      173680,
      174383,
      171899,
      174281,
      173069,
      175241,
      175574,
      174893,
      172335,
      171950,
      174516,
      172434,
      174463,
      175102,
      174964,
      172802,
      172709,
      172737,
      173593,
      174965,
      173785,
      172738,
      171730,
      174308,
      173974,
      172949,
      173487,
      174351,
      171840,
      172669,
      172483,
      173471,
      175720,
      172688,
      174337,
      175734,
      172331,
      172464,
      171806,
      172548,
      174594,
      175609,
      173364,
      175041,
      175835,
      173060,
      175034,
      174279,
      173499,
      174985,
      172444,
      175694,
      173556,
      172670
    ],
    "analyzed_media_count": 200,
    "analyzed_media_refs": [
      "172595:1",
      "174423:1",
      "175947:1",
      "174047:1",
      "174277:1",
      "175435:1",
      "173784:1",
      "175436:1",
      "172911:1",
      "173035:1",
      "175019:1",
      "174078:1",
      "173760:1",
      "173511:1",
      "171758:1",
      "175832:1",
      "174702:1",
      "175299:1",
      "175595:1",
      "174207:1",
      "174369:1",
      "174151:1",
      "173639:1",
      "172002:1",
      "172659:1",
      "174800:1",
      "173538:1",
      "172282:1",
      "172311:1",
      "174506:1",
      "171940:1",
      "172906:1",
      "173592:1",
      "174984:1",
      "173238:1",
      "173885:1",
      "172862:1",
      "174632:1",
      "174765:1",
      "172482:1",
      "172826:1",
      "172981:1",
      "173468:1",
      "175897:1",
      "173793:1",
      "171949:1",
      "172433:1",
      "174295:1",
      "174495:1",
      "174147:1",
      "174401:1",
      "173321:1",
      "171916:1",
      "176021:1",
      "172726:1",
      "175879:1",
      "172960:1",
      "175521:1",
      "173908:1",
      "173256:1",
      "173621:1",
      "175685:1",
      "173825:1",
      "172643:1",
      "175154:1",
      "173282:1",
      "175686:1",
      "174017:1",
      "175687:1",
      "175688:1",
      "175689:1",
      "175690:1",
      "171718:1",
      "175691:1",
      "172762:1",
      "172348:1",
      "173186:1",
      "174053:1",
      "173196:1",
      "174278:1",
      "175833:1",
      "173216:1",
      "175834:1",
      "173943:1",
      "172124:1",
      "172179:1",
      "173452:1",
      "173997:1",
      "171929:1",
      "173232:1",
      "172785:1",
      "172019:1",
      "174215:1",
      "172063:1",
      "172584:1",
      "175052:1",
      "173141:1",
      "172558:1",
      "173132:1",
      "174633:1",
      "174006:1",
      "171693:1",
      "172420:1",
      "172559:1",
      "175792:1",
      "173014:1",
      "172403:1",
      "173059:1",
      "175081:1",
      "173029:1",
      "171849:1",
      "172994:1",
      "175692:1",
      "173721:1",
      "175693:1",
      "174926:1",
      "172618:1",
      "173862:1",
      "174155:1",
      "175082:1",
      "173079:1",
      "174933:1",
      "175911:1",
      "173794:1",
      "173897:1",
      "172907:1",
      "171768:1",
      "173701:1",
      "172970:1",
      "174831:1",
      "173648:1",
      "174105:1",
      "173923:1",
      "171780:1",
      "173772:1",
      "175033:1",
      "174527:1",
      "172180:1",
      "174414:1",
      "172569:1",
      "172693:1",
      "174033:1",
      "173115:1",
      "175463:1",
      "171814:1",
      "174576:1",
      "173680:1",
      "174383:1",
      "171899:1",
      "174281:1",
      "173069:1",
      "175241:1",
      "175574:1",
      "174893:1",
      "172335:1",
      "171950:1",
      "174516:1",
      "172434:1",
      "174463:1",
      "175102:1",
      "174964:1",
      "172802:1",
      "172709:1",
      "172737:1",
      "173593:1",
      "174965:1",
      "173785:1",
      "172738:1",
      "171730:1",
      "174308:1",
      "173974:1",
      "172949:1",
      "173487:1",
      "174351:1",
      "171840:1",
      "172669:1",
      "172483:1",
      "173471:1",
      "175720:1",
      "172688:1",
      "174337:1",
      "175734:1",
      "172331:1",
      "172464:1",
      "171806:1",
      "172548:1",
      "174594:1",
      "175609:1",
      "173364:1",
      "175041:1",
      "175835:1",
      "173060:1",
      "175034:1",
      "174279:1",
      "173499:1",
      "174985:1",
      "172444:1",
      "175694:1",
      "173556:1",
      "172670:1"
    ],
    "full_source_prompt_character_count": 112300,
    "source_prompt_character_count": 112300,
    "prompt_character_count": 112300,
    "prompt_character_limit": 300000,
    "prompt_was_truncated": false,
    "candidate_prompt_character_count": 116459,
    "validation_prompt_character_count": 121626,
    "candidate_reasoning_scratchpad": "An extensive sweep across the recent feed reveals dominant resort and coastal aesthetics heavily leaning into summer swimwear, crochet cover-ups, and beach lifestyle imagery. Key recurring visual clusters include classic brown and espresso tones, vibrant checkerboard and geometric prints, and structured resort loungewear separates styled for euro-summer getaways.",
    "validation_reasoning_scratchpad": "We validated multiple swimwear and resort-wear trends from the past 14 days, prioritizing visual clusters with strong cross-brand adoption. All unvalidated or single-brand candidate clusters were excluded, leaving robust micro-trends like chocolate brown swimwear, checkerboard prints, crochet cover-ups, and shell jewelry.",
    "ai_discovered_candidate_count": 7,
    "candidate_trends": [
      {
        "candidate_name": "Espresso and Chocolate Brown Swimwear",
        "trend_type": "color",
        "visual_axis": "color",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "175436:1",
          "172311:1",
          "174527:1"
        ],
        "visual_cues": [
          "chocolate brown bikini",
          "espresso one-piece swimsuit",
          "neutral beach palette",
          "sun-kissed aesthetic"
        ]
      },
      {
        "candidate_name": "Checkerboard and Retro Grid Prints",
        "trend_type": "color",
        "visual_axis": "texture",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "175879:1",
          "172444:1",
          "175694:1"
        ],
        "visual_cues": [
          "checkerboard print bikini",
          "brown and white checkerboard",
          "red and white checkerboard",
          "checkerboard rash guard"
        ]
      },
      {
        "candidate_name": "Open-Work Crochet and Mesh Beach Cover-Ups",
        "trend_type": "texture",
        "visual_axis": "texture",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "175685:1",
          "175691:1",
          "175692:1"
        ],
        "visual_cues": [
          "white crochet cover-up",
          "black fishnet dress",
          "mesh mini dress",
          "openwork knit fabric"
        ]
      },
      {
        "candidate_name": "Layered Seashell and Puca Shell Jewelry",
        "trend_type": "accessory",
        "visual_axis": "accessory",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "173511:1",
          "173760:1",
          "175154:1"
        ],
        "visual_cues": [
          "shell choker necklace",
          "puca shell jewelry",
          "cowrie shell accents",
          "beaded shell necklace"
        ]
      },
      {
        "candidate_name": "Vibrant Pastel Blue and Mint Swimwear",
        "trend_type": "color",
        "visual_axis": "color",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "173468:1",
          "173186:1",
          "173997:1"
        ],
        "visual_cues": [
          "light blue bikini",
          "powder blue two piece",
          "mint green crochet bikini",
          "pastel blue color palette"
        ]
      },
      {
        "candidate_name": "Oversized Raffia and Woven Beach Totes",
        "trend_type": "accessory",
        "visual_axis": "accessory",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "173721:1",
          "174351:1",
          "171840:1"
        ],
        "visual_cues": [
          "brown woven straw bag",
          "oversized tote bag",
          "raffia beach bag",
          "straw tote"
        ]
      },
      {
        "candidate_name": "High-Cut Leg and Minimalist String Bikinis",
        "trend_type": "other",
        "visual_axis": "silhouette",
        "historical_relationship": "net_new",
        "seed_media_count": 3,
        "seed_media_refs": [
          "172311:1",
          "173238:1",
          "173196:1"
        ],
        "visual_cues": [
          "high-cut leg silhouette",
          "string bikini bottoms",
          "minimalist swimwear",
          "side tie bottoms"
        ]
      }
    ],
    "ai_candidate_trend_count": 7,
    "ai_validated_trend_count_before_filter": 7,
    "accepted_trend_count": 6,
    "rejected_trend_count": 1,
    "rejected_trends": [
      {
        "trend_name": "Checkerboard and Retro Grid Prints",
        "confidence_score": 0.9,
        "valid_matching_image_count": 3,
        "matching_parent_post_count": 3,
        "matching_author_count": 3,
        "invalid_or_out_of_scope_media_refs": [],
        "unparseable_media_refs": [],
        "excluded_same_post_media_refs": [],
        "reasons": [
          "Only 3 valid matching images; minimum is 4."
        ]
      }
    ]
  },
  "accepted_trend_audit": [
    {
      "trend_number": 1,
      "trend_name": "Espresso and Chocolate Brown Swimwear",
      "blog_title": "Rich Espresso and Chocolate Brown Swimwear",
      "trend_type": "color",
      "signal_strength": "strong",
      "confidence_percent": 95.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "All selected images showcase solid chocolate, espresso, or dark coffee-brown swimwear styled against natural outdoor or poolside backgrounds.",
      "description": "Luxurious chocolate brown and espresso tones featured prominently across minimalist bikinis and one-piece swimsuits.",
      "keywords": [
        "chocolate brown bikini",
        "espresso swimsuit",
        "neutral swimwear",
        "resort style"
      ],
      "post_ids": [
        175436,
        172311,
        174527,
        173825
      ],
      "media_refs": [
        "175436:1",
        "172311:1",
        "174527:1",
        "173825:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 95.0% confidence. All selected images showcase solid chocolate, espresso, or dark coffee-brown swimwear styled against natural outdoor or poolside backgrounds."
    },
    {
      "trend_number": 2,
      "trend_name": "Open-Work Crochet and Mesh Beach Cover-Ups",
      "blog_title": "Open-Work Crochet and Mesh Beach Cover-Ups",
      "trend_type": "texture",
      "signal_strength": "strong",
      "confidence_percent": 92.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "All matching posts feature sheer, open-knit, or crochet dresses and cover-ups designed over swimwear.",
      "description": "Transparent mesh dresses and open-work handmade crochet cover-ups designed for effortless resort-to-street transitions.",
      "keywords": [
        "crochet cover-up",
        "mesh dress",
        "open-work knit",
        "resort wear"
      ],
      "post_ids": [
        175685,
        175691,
        175692,
        175019
      ],
      "media_refs": [
        "175685:1",
        "175691:1",
        "175692:1",
        "175019:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 92.0% confidence. All matching posts feature sheer, open-knit, or crochet dresses and cover-ups designed over swimwear."
    },
    {
      "trend_number": 3,
      "trend_name": "Layered Seashell and Puca Shell Jewelry",
      "blog_title": "Nostalgic Puca and Cowrie Shell Jewelry",
      "trend_type": "accessory",
      "signal_strength": "strong",
      "confidence_percent": 94.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Each reference highlights distinct seashell chokers or puca shell necklaces worn as statement beach accessories.",
      "description": "Cowrie shell chokers, puca shells, and ocean-inspired beaded necklaces layered with gold hardware for a surfer-girl aesthetic.",
      "keywords": [
        "shell necklace",
        "puca shells",
        "cowrie shell jewelry",
        "coastal accessories"
      ],
      "post_ids": [
        173511,
        173760,
        175154,
        174151
      ],
      "media_refs": [
        "173511:1",
        "173760:1",
        "175154:1",
        "174151:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 94.0% confidence. Each reference highlights distinct seashell chokers or puca shell necklaces worn as statement beach accessories."
    },
    {
      "trend_number": 4,
      "trend_name": "Vibrant Pastel Blue and Mint Swimwear",
      "blog_title": "Crisp Pastel Blue and Mint Swimwear",
      "trend_type": "color",
      "signal_strength": "strong",
      "confidence_percent": 91.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "The selected images feature light pastel blue or mint colorways in clean swimwear silhouettes.",
      "description": "Soft powder blues, ice blues, and mint green hues styled across minimalist string bikinis and crochet swim sets.",
      "keywords": [
        "pastel blue bikini",
        "mint green swimwear",
        "powder blue",
        "summer color trend"
      ],
      "post_ids": [
        173468,
        173186,
        173997,
        174383
      ],
      "media_refs": [
        "173468:1",
        "173186:1",
        "173997:1",
        "174383:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 91.0% confidence. The selected images feature light pastel blue or mint colorways in clean swimwear silhouettes."
    },
    {
      "trend_number": 5,
      "trend_name": "Oversized Raffia and Woven Beach Totes",
      "blog_title": "Oversized Natural Raffia and Woven Beach Totes",
      "trend_type": "accessory",
      "signal_strength": "strong",
      "confidence_percent": 93.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Each image prominently features large natural straw or raffia woven totes styled for beach or resort settings.",
      "description": "Oversized straw bags and natural raffia totes styled as functional, statement accessories for resort getaways.",
      "keywords": [
        "raffia tote",
        "straw beach bag",
        "woven bag",
        "resort accessories"
      ],
      "post_ids": [
        173721,
        174351,
        171840,
        175052
      ],
      "media_refs": [
        "173721:1",
        "174351:1",
        "171840:1",
        "175052:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 93.0% confidence. Each image prominently features large natural straw or raffia woven totes styled for beach or resort settings."
    },
    {
      "trend_number": 6,
      "trend_name": "High-Cut Leg and Minimalist String Bikinis",
      "blog_title": "High-Cut Leg and Minimalist String Bikinis",
      "trend_type": "other",
      "signal_strength": "strong",
      "confidence_percent": 95.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "All matching examples capture high-cut leg silhouettes and adjustable string ties on two-piece swimwear.",
      "description": "High-hip cut bottoms paired with delicate string ties and minimalist coverage across diverse color palettes.",
      "keywords": [
        "high-cut bikini",
        "string bikini",
        "minimalist swimwear",
        "side tie bottoms"
      ],
      "post_ids": [
        172311,
        173238,
        173196,
        174527
      ],
      "media_refs": [
        "172311:1",
        "173238:1",
        "173196:1",
        "174527:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 95.0% confidence. All matching examples capture high-cut leg silhouettes and adjustable string ties on two-piece swimwear."
    }
  ],
  "report_payload": {
    "reasoning_scratchpad": "We validated multiple swimwear and resort-wear trends from the past 14 days, prioritizing visual clusters with strong cross-brand adoption. All unvalidated or single-brand candidate clusters were excluded, leaving robust micro-trends like chocolate brown swimwear, checkerboard prints, crochet cover-ups, and shell jewelry.",
    "content_ideas": [
      {
        "blog_title": "Rich Espresso and Chocolate Brown Swimwear",
        "trend_name": "Espresso and Chocolate Brown Swimwear",
        "trend_type": "color",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new visual theme for the current reporting window, moving away from classic black toward rich earth tones.",
        "description": "Luxurious chocolate brown and espresso tones featured prominently across minimalist bikinis and one-piece swimsuits.",
        "visual_similarity_reason": "All selected images showcase solid chocolate, espresso, or dark coffee-brown swimwear styled against natural outdoor or poolside backgrounds.",
        "instagram_caption": "Rich espresso tones are our new favorite neutral for beach days. \ud83e\udd0e\u2728\n\nShop the look online now.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.95,
        "keywords": [
          "chocolate brown bikini",
          "espresso swimsuit",
          "neutral swimwear",
          "resort style"
        ],
        "example_media_refs": [
          "175436:1",
          "172311:1",
          "174527:1",
          "173825:1"
        ],
        "example_post_ids": [
          175436,
          172311,
          174527,
          173825
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "Open-Work Crochet and Mesh Beach Cover-Ups",
        "trend_name": "Open-Work Crochet and Mesh Beach Cover-Ups",
        "trend_type": "texture",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new texture focus highlighting artisanal open-knit fabrics for resort layering.",
        "description": "Transparent mesh dresses and open-work handmade crochet cover-ups designed for effortless resort-to-street transitions.",
        "visual_similarity_reason": "All matching posts feature sheer, open-knit, or crochet dresses and cover-ups designed over swimwear.",
        "instagram_caption": "The ultimate resort-to-street layers: open-work crochet and airy mesh. \ud83d\udc1a\ud83e\udd0d\n\nReady for your next getaway.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.92,
        "keywords": [
          "crochet cover-up",
          "mesh dress",
          "open-work knit",
          "resort wear"
        ],
        "example_media_refs": [
          "175685:1",
          "175691:1",
          "175692:1",
          "175019:1"
        ],
        "example_post_ids": [
          175685,
          175691,
          175692,
          175019
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 2
      },
      {
        "blog_title": "Nostalgic Puca and Cowrie Shell Jewelry",
        "trend_name": "Layered Seashell and Puca Shell Jewelry",
        "trend_type": "accessory",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new accessory trend capturing coastal nostalgic styling.",
        "description": "Cowrie shell chokers, puca shells, and ocean-inspired beaded necklaces layered with gold hardware for a surfer-girl aesthetic.",
        "visual_similarity_reason": "Each reference highlights distinct seashell chokers or puca shell necklaces worn as statement beach accessories.",
        "instagram_caption": "Bringing coastal nostalgia to every look with layered puca and cowrie shells. \ud83d\udc1a\u2728\n\nTap to shop our newest accessories.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.94,
        "keywords": [
          "shell necklace",
          "puca shells",
          "cowrie shell jewelry",
          "coastal accessories"
        ],
        "example_media_refs": [
          "173511:1",
          "173760:1",
          "175154:1",
          "174151:1"
        ],
        "example_post_ids": [
          173511,
          173760,
          175154,
          174151
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "Crisp Pastel Blue and Mint Swimwear",
        "trend_name": "Vibrant Pastel Blue and Mint Swimwear",
        "trend_type": "color",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new color palette offering a refreshing contrast to warm earth tones.",
        "description": "Soft powder blues, ice blues, and mint green hues styled across minimalist string bikinis and crochet swim sets.",
        "visual_similarity_reason": "The selected images feature light pastel blue or mint colorways in clean swimwear silhouettes.",
        "instagram_caption": "Refreshing pastel blues and mint greens for sun-drenched days. \ud83e\ude75\ud83c\udf34\n\nDiscover the collection online.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.91,
        "keywords": [
          "pastel blue bikini",
          "mint green swimwear",
          "powder blue",
          "summer color trend"
        ],
        "example_media_refs": [
          "173468:1",
          "173186:1",
          "173997:1",
          "174383:1"
        ],
        "example_post_ids": [
          173468,
          173186,
          173997,
          174383
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "Oversized Natural Raffia and Woven Beach Totes",
        "trend_name": "Oversized Raffia and Woven Beach Totes",
        "trend_type": "accessory",
        "trend_trajectory": "net_new",
        "historical_note": "Net-new functional accessory trend centered around natural woven textures.",
        "description": "Oversized straw bags and natural raffia totes styled as functional, statement accessories for resort getaways.",
        "visual_similarity_reason": "Each image prominently features large natural straw or raffia woven totes styled for beach or resort settings.",
        "instagram_caption": "Pack all your essentials in our oversized natural raffia totes. \ud83e\udd65\ud83c\udf34\n\nYour new everyday travel bag has arrived.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.93,
        "keywords": [
          "raffia tote",
          "straw beach bag",
          "woven bag",
          "resort accessories"
        ],
        "example_media_refs": [
          "173721:1",
          "174351:1",
          "171840:1",
          "175052:1"
        ],
        "example_post_ids": [
          173721,
          174351,
          171840,
          175052
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "High-Cut Leg and Minimalist String Bikinis",
        "trend_name": "High-Cut Leg and Minimalist String Bikinis",
        "trend_type": "other",
        "trend_trajectory": "sustained",
        "historical_note": "Sustained core swimwear silhouette continuing as a foundational trend.",
        "description": "High-hip cut bottoms paired with delicate string ties and minimalist coverage across diverse color palettes.",
        "visual_similarity_reason": "All matching examples capture high-cut leg silhouettes and adjustable string ties on two-piece swimwear.",
        "instagram_caption": "Designed to elongate and flatter: our signature high-cut leg and string bikinis. \u2728\ud83d\udc59\n\nFind your perfect fit.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.95,
        "keywords": [
          "high-cut bikini",
          "string bikini",
          "minimalist swimwear",
          "side tie bottoms"
        ],
        "example_media_refs": [
          "172311:1",
          "173238:1",
          "173196:1",
          "174527:1"
        ],
        "example_post_ids": [
          172311,
          173238,
          173196,
          174527
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      }
    ],
    "overview_title": "Latest Trends",
    "overview_description": "Resort wardrobes are leaning into rich espresso and chocolate brown tones from @girlnextdoorswim and @sealevelaustralia, contrasted by refreshing pastel blues and mints by @jadeswim and @chloeroseswimwear. Styling relies on effortless texture, pairing open-work crochet cover-ups from @chicfits.ng and oversized raffia totes from @ochrelane with layered puca shells from @societybikini. The season's silhouette is decisively elongated, anchored by high-cut minimalist string bikinis from @dos_gardenias and @tinyeswim.",
    "generation_diagnostics": {
      "available": true,
      "generated_at": "2026-07-28T20:15:43.730809Z",
      "tag": "swimwear",
      "media_scope": "cover_only",
      "generation_strategy": "deep_chunked_two_pass_candidate_discovery_and_validation",
      "report_profile": "deep",
      "model": "google/gemini-3.5-flash-lite",
      "previous_report_context": null,
      "vision_preflight": {
        "enabled": true,
        "since": "2026-07-14T20:05:26.235773Z",
        "media_scope": "cover_only",
        "scoped_post_count": 0,
        "batch_size": 500,
        "max_batches": 20,
        "batch_count": 3,
        "images_requested": 918,
        "images_analyzed": 904,
        "posts_touched": 918,
        "reached_batch_cap": false,
        "batches": [
          {
            "batch_number": 1,
            "images_requested": 500,
            "images_analyzed": 495,
            "posts_touched": 500,
            "completion_reconciled": false
          },
          {
            "batch_number": 2,
            "images_requested": 418,
            "images_analyzed": 409,
            "posts_touched": 418,
            "completion_reconciled": false
          },
          {
            "batch_number": 3,
            "images_requested": 0,
            "images_analyzed": 0,
            "posts_touched": 0,
            "completion_reconciled": false
          }
        ]
      },
      "chunking": {
        "enabled": true,
        "chunk_number": 4,
        "chunk_count": 11,
        "max_posts_per_chunk": 200,
        "max_media_per_chunk": 500,
        "chunk_post_count": 200,
        "chunk_media_count": 200,
        "full_source_post_count": 2274,
        "full_eligible_post_count": 2026,
        "full_source_media_count": 2026
      },
      "criteria": {
        "time_window_days": 14,
        "window_start": "2026-07-14T20:05:26.235773Z",
        "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": 2274,
      "source_media_count": 2026,
      "eligible_post_count": 2026,
      "chunk_post_count": 200,
      "chunk_media_count": 200,
      "analyzed_post_count": 200,
      "analyzed_post_ids": [
        172595,
        174423,
        175947,
        174047,
        174277,
        175435,
        173784,
        175436,
        172911,
        173035,
        175019,
        174078,
        173760,
        173511,
        171758,
        175832,
        174702,
        175299,
        175595,
        174207,
        174369,
        174151,
        173639,
        172002,
        172659,
        174800,
        173538,
        172282,
        172311,
        174506,
        171940,
        172906,
        173592,
        174984,
        173238,
        173885,
        172862,
        174632,
        174765,
        172482,
        172826,
        172981,
        173468,
        175897,
        173793,
        171949,
        172433,
        174295,
        174495,
        174147,
        174401,
        173321,
        171916,
        176021,
        172726,
        175879,
        172960,
        175521,
        173908,
        173256,
        173621,
        175685,
        173825,
        172643,
        175154,
        173282,
        175686,
        174017,
        175687,
        175688,
        175689,
        175690,
        171718,
        175691,
        172762,
        172348,
        173186,
        174053,
        173196,
        174278,
        175833,
        173216,
        175834,
        173943,
        172124,
        172179,
        173452,
        173997,
        171929,
        173232,
        172785,
        172019,
        174215,
        172063,
        172584,
        175052,
        173141,
        172558,
        173132,
        174633,
        174006,
        171693,
        172420,
        172559,
        175792,
        173014,
        172403,
        173059,
        175081,
        173029,
        171849,
        172994,
        175692,
        173721,
        175693,
        174926,
        172618,
        173862,
        174155,
        175082,
        173079,
        174933,
        175911,
        173794,
        173897,
        172907,
        171768,
        173701,
        172970,
        174831,
        173648,
        174105,
        173923,
        171780,
        173772,
        175033,
        174527,
        172180,
        174414,
        172569,
        172693,
        174033,
        173115,
        175463,
        171814,
        174576,
        173680,
        174383,
        171899,
        174281,
        173069,
        175241,
        175574,
        174893,
        172335,
        171950,
        174516,
        172434,
        174463,
        175102,
        174964,
        172802,
        172709,
        172737,
        173593,
        174965,
        173785,
        172738,
        171730,
        174308,
        173974,
        172949,
        173487,
        174351,
        171840,
        172669,
        172483,
        173471,
        175720,
        172688,
        174337,
        175734,
        172331,
        172464,
        171806,
        172548,
        174594,
        175609,
        173364,
        175041,
        175835,
        173060,
        175034,
        174279,
        173499,
        174985,
        172444,
        175694,
        173556,
        172670
      ],
      "analyzed_media_count": 200,
      "analyzed_media_refs": [
        "172595:1",
        "174423:1",
        "175947:1",
        "174047:1",
        "174277:1",
        "175435:1",
        "173784:1",
        "175436:1",
        "172911:1",
        "173035:1",
        "175019:1",
        "174078:1",
        "173760:1",
        "173511:1",
        "171758:1",
        "175832:1",
        "174702:1",
        "175299:1",
        "175595:1",
        "174207:1",
        "174369:1",
        "174151:1",
        "173639:1",
        "172002:1",
        "172659:1",
        "174800:1",
        "173538:1",
        "172282:1",
        "172311:1",
        "174506:1",
        "171940:1",
        "172906:1",
        "173592:1",
        "174984:1",
        "173238:1",
        "173885:1",
        "172862:1",
        "174632:1",
        "174765:1",
        "172482:1",
        "172826:1",
        "172981:1",
        "173468:1",
        "175897:1",
        "173793:1",
        "171949:1",
        "172433:1",
        "174295:1",
        "174495:1",
        "174147:1",
        "174401:1",
        "173321:1",
        "171916:1",
        "176021:1",
        "172726:1",
        "175879:1",
        "172960:1",
        "175521:1",
        "173908:1",
        "173256:1",
        "173621:1",
        "175685:1",
        "173825:1",
        "172643:1",
        "175154:1",
        "173282:1",
        "175686:1",
        "174017:1",
        "175687:1",
        "175688:1",
        "175689:1",
        "175690:1",
        "171718:1",
        "175691:1",
        "172762:1",
        "172348:1",
        "173186:1",
        "174053:1",
        "173196:1",
        "174278:1",
        "175833:1",
        "173216:1",
        "175834:1",
        "173943:1",
        "172124:1",
        "172179:1",
        "173452:1",
        "173997:1",
        "171929:1",
        "173232:1",
        "172785:1",
        "172019:1",
        "174215:1",
        "172063:1",
        "172584:1",
        "175052:1",
        "173141:1",
        "172558:1",
        "173132:1",
        "174633:1",
        "174006:1",
        "171693:1",
        "172420:1",
        "172559:1",
        "175792:1",
        "173014:1",
        "172403:1",
        "173059:1",
        "175081:1",
        "173029:1",
        "171849:1",
        "172994:1",
        "175692:1",
        "173721:1",
        "175693:1",
        "174926:1",
        "172618:1",
        "173862:1",
        "174155:1",
        "175082:1",
        "173079:1",
        "174933:1",
        "175911:1",
        "173794:1",
        "173897:1",
        "172907:1",
        "171768:1",
        "173701:1",
        "172970:1",
        "174831:1",
        "173648:1",
        "174105:1",
        "173923:1",
        "171780:1",
        "173772:1",
        "175033:1",
        "174527:1",
        "172180:1",
        "174414:1",
        "172569:1",
        "172693:1",
        "174033:1",
        "173115:1",
        "175463:1",
        "171814:1",
        "174576:1",
        "173680:1",
        "174383:1",
        "171899:1",
        "174281:1",
        "173069:1",
        "175241:1",
        "175574:1",
        "174893:1",
        "172335:1",
        "171950:1",
        "174516:1",
        "172434:1",
        "174463:1",
        "175102:1",
        "174964:1",
        "172802:1",
        "172709:1",
        "172737:1",
        "173593:1",
        "174965:1",
        "173785:1",
        "172738:1",
        "171730:1",
        "174308:1",
        "173974:1",
        "172949:1",
        "173487:1",
        "174351:1",
        "171840:1",
        "172669:1",
        "172483:1",
        "173471:1",
        "175720:1",
        "172688:1",
        "174337:1",
        "175734:1",
        "172331:1",
        "172464:1",
        "171806:1",
        "172548:1",
        "174594:1",
        "175609:1",
        "173364:1",
        "175041:1",
        "175835:1",
        "173060:1",
        "175034:1",
        "174279:1",
        "173499:1",
        "174985:1",
        "172444:1",
        "175694:1",
        "173556:1",
        "172670:1"
      ],
      "full_source_prompt_character_count": 112300,
      "source_prompt_character_count": 112300,
      "prompt_character_count": 112300,
      "prompt_character_limit": 300000,
      "prompt_was_truncated": false,
      "candidate_prompt_character_count": 116459,
      "validation_prompt_character_count": 121626,
      "candidate_reasoning_scratchpad": "An extensive sweep across the recent feed reveals dominant resort and coastal aesthetics heavily leaning into summer swimwear, crochet cover-ups, and beach lifestyle imagery. Key recurring visual clusters include classic brown and espresso tones, vibrant checkerboard and geometric prints, and structured resort loungewear separates styled for euro-summer getaways.",
      "validation_reasoning_scratchpad": "We validated multiple swimwear and resort-wear trends from the past 14 days, prioritizing visual clusters with strong cross-brand adoption. All unvalidated or single-brand candidate clusters were excluded, leaving robust micro-trends like chocolate brown swimwear, checkerboard prints, crochet cover-ups, and shell jewelry.",
      "ai_discovered_candidate_count": 7,
      "candidate_trends": [
        {
          "candidate_name": "Espresso and Chocolate Brown Swimwear",
          "trend_type": "color",
          "visual_axis": "color",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "175436:1",
            "172311:1",
            "174527:1"
          ],
          "visual_cues": [
            "chocolate brown bikini",
            "espresso one-piece swimsuit",
            "neutral beach palette",
            "sun-kissed aesthetic"
          ]
        },
        {
          "candidate_name": "Checkerboard and Retro Grid Prints",
          "trend_type": "color",
          "visual_axis": "texture",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "175879:1",
            "172444:1",
            "175694:1"
          ],
          "visual_cues": [
            "checkerboard print bikini",
            "brown and white checkerboard",
            "red and white checkerboard",
            "checkerboard rash guard"
          ]
        },
        {
          "candidate_name": "Open-Work Crochet and Mesh Beach Cover-Ups",
          "trend_type": "texture",
          "visual_axis": "texture",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "175685:1",
            "175691:1",
            "175692:1"
          ],
          "visual_cues": [
            "white crochet cover-up",
            "black fishnet dress",
            "mesh mini dress",
            "openwork knit fabric"
          ]
        },
        {
          "candidate_name": "Layered Seashell and Puca Shell Jewelry",
          "trend_type": "accessory",
          "visual_axis": "accessory",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "173511:1",
            "173760:1",
            "175154:1"
          ],
          "visual_cues": [
            "shell choker necklace",
            "puca shell jewelry",
            "cowrie shell accents",
            "beaded shell necklace"
          ]
        },
        {
          "candidate_name": "Vibrant Pastel Blue and Mint Swimwear",
          "trend_type": "color",
          "visual_axis": "color",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "173468:1",
            "173186:1",
            "173997:1"
          ],
          "visual_cues": [
            "light blue bikini",
            "powder blue two piece",
            "mint green crochet bikini",
            "pastel blue color palette"
          ]
        },
        {
          "candidate_name": "Oversized Raffia and Woven Beach Totes",
          "trend_type": "accessory",
          "visual_axis": "accessory",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "173721:1",
            "174351:1",
            "171840:1"
          ],
          "visual_cues": [
            "brown woven straw bag",
            "oversized tote bag",
            "raffia beach bag",
            "straw tote"
          ]
        },
        {
          "candidate_name": "High-Cut Leg and Minimalist String Bikinis",
          "trend_type": "other",
          "visual_axis": "silhouette",
          "historical_relationship": "net_new",
          "seed_media_count": 3,
          "seed_media_refs": [
            "172311:1",
            "173238:1",
            "173196:1"
          ],
          "visual_cues": [
            "high-cut leg silhouette",
            "string bikini bottoms",
            "minimalist swimwear",
            "side tie bottoms"
          ]
        }
      ],
      "ai_candidate_trend_count": 7,
      "ai_validated_trend_count_before_filter": 7,
      "accepted_trend_count": 6,
      "rejected_trend_count": 1,
      "rejected_trends": [
        {
          "trend_name": "Checkerboard and Retro Grid Prints",
          "confidence_score": 0.9,
          "valid_matching_image_count": 3,
          "matching_parent_post_count": 3,
          "matching_author_count": 3,
          "invalid_or_out_of_scope_media_refs": [],
          "unparseable_media_refs": [],
          "excluded_same_post_media_refs": [],
          "reasons": [
            "Only 3 valid matching images; minimum is 4."
          ]
        }
      ]
    }
  }
}