{
  "report": {
    "id": 52,
    "period": "[swimwear] Jun 09 - Jun 23, 2026",
    "created_at": "2026-06-23T01:45:48.675962+00:00",
    "workflow_note": "done PF"
  },
  "generation_diagnostics": {
    "available": true,
    "generated_at": "2026-06-23T01:46:56.255504Z",
    "tag": "swimwear",
    "media_scope": "all_media",
    "model": "~google/gemini-flash-latest",
    "criteria": {
      "time_window_days": 14,
      "window_start": "2026-06-09T01:45:48.588929Z",
      "minimum_confidence": 0.7,
      "minimum_matching_images": 6,
      "minimum_parent_posts": 3,
      "maximum_images_per_parent_post": 2,
      "preferred_matching_images": "6-12",
      "visual_similarity_is_primary": true,
      "caption_required": true,
      "single_campaign_trends_excluded": true
    },
    "source_post_count": 753,
    "source_media_count": 666,
    "eligible_post_count": 656,
    "analyzed_post_count": 195,
    "analyzed_post_ids": [
      135590,
      135272,
      135541,
      135542,
      135151,
      135591,
      135150,
      135273,
      135592,
      135274,
      135275,
      135276,
      135277,
      135593,
      135278,
      135152,
      135279,
      135594,
      135280,
      135595,
      135281,
      117390,
      116160,
      116022,
      115995,
      117566,
      116313,
      116997,
      117381,
      116765,
      116241,
      116882,
      116818,
      117579,
      116092,
      116538,
      116527,
      117590,
      117059,
      117625,
      116197,
      135282,
      117557,
      115917,
      117327,
      116753,
      116349,
      116699,
      116700,
      116301,
      117537,
      116998,
      116567,
      117316,
      117499,
      116721,
      116712,
      117167,
      116777,
      117442,
      117143,
      117567,
      116405,
      117721,
      117418,
      116876,
      117060,
      116079,
      116267,
      117348,
      116733,
      116903,
      117030,
      117061,
      116651,
      116290,
      116638,
      115860,
      117127,
      117510,
      116892,
      117427,
      116999,
      116853,
      117144,
      117063,
      116115,
      117694,
      117376,
      117290,
      117706,
      116161,
      116476,
      117580,
      117255,
      116093,
      117242,
      135283,
      117581,
      117047,
      117045,
      116007,
      116034,
      117482,
      117696,
      115893,
      117605,
      116423,
      116550,
      116600,
      117619,
      116219,
      116103,
      117109,
      116477,
      117483,
      117707,
      117009,
      117484,
      116185,
      116361,
      117391,
      116279,
      116552,
      117485,
      115929,
      116553,
      116094,
      117328,
      116939,
      115996,
      116058,
      117520,
      116069,
      115883,
      116023,
      115997,
      117065,
      117064,
      117568,
      116690,
      115998,
      116424,
      117582,
      116883,
      116819,
      117000,
      117400,
      117110,
      115918,
      116639,
      116568,
      116340,
      116626,
      117230,
      117722,
      117452,
      116406,
      117569,
      116893,
      116291,
      116722,
      115905,
      117559,
      116464,
      116734,
      115937,
      116302,
      117080,
      117001,
      116554,
      117358,
      135153,
      116163,
      117382,
      116652,
      117349,
      117428,
      117002,
      117419,
      117592,
      116555,
      116518,
      116019,
      116257,
      116186,
      117583,
      116024,
      116426,
      116035,
      117584,
      116940,
      117042,
      117698,
      117111
    ],
    "analyzed_media_count": 204,
    "analyzed_media_refs": [
      "135590:1",
      "135590:2",
      "135590:4",
      "135272:1",
      "135272:2",
      "135541:1",
      "135541:2",
      "135541:3",
      "135541:4",
      "135541:5",
      "135541:6",
      "135542:1",
      "135151:1",
      "135151:2",
      "135591:1",
      "135591:2",
      "135150:1",
      "135273:1",
      "135592:1",
      "135274:1",
      "135275:1",
      "135276:1",
      "135277:1",
      "135593:1",
      "135278:1",
      "135152:1",
      "135279:1",
      "135594:1",
      "135280:1",
      "135595:1",
      "135281:1",
      "117390:1",
      "116160:1",
      "116022:1",
      "115995:1",
      "117566:1",
      "116313:1",
      "116997:1",
      "117381:1",
      "116765:1",
      "116241:1",
      "116882:1",
      "116818:1",
      "117579:1",
      "116092:1",
      "116538:1",
      "116527:1",
      "117590:1",
      "117059:1",
      "117625:1",
      "116197:1",
      "135282:1",
      "117557:1",
      "115917:1",
      "117327:1",
      "116753:1",
      "116349:1",
      "116699:1",
      "116700:1",
      "116301:1",
      "117537:1",
      "116998:1",
      "116567:1",
      "117316:1",
      "117499:1",
      "116721:1",
      "116712:1",
      "117167:1",
      "116777:1",
      "117442:1",
      "117143:1",
      "117567:1",
      "116405:1",
      "117721:1",
      "117418:1",
      "116876:1",
      "117060:1",
      "116079:1",
      "116267:1",
      "117348:1",
      "116733:1",
      "116903:1",
      "117030:1",
      "117061:1",
      "116651:1",
      "116290:1",
      "116638:1",
      "115860:1",
      "117127:1",
      "117510:1",
      "116892:1",
      "117427:1",
      "116999:1",
      "116853:1",
      "117144:1",
      "117063:1",
      "116115:1",
      "117694:1",
      "117376:1",
      "117290:1",
      "117706:1",
      "116161:1",
      "116476:1",
      "117580:1",
      "117255:1",
      "116093:1",
      "117242:1",
      "135283:1",
      "117581:1",
      "117047:1",
      "117045:1",
      "116007:1",
      "116034:1",
      "117482:1",
      "117696:1",
      "115893:1",
      "117605:1",
      "116423:1",
      "116550:1",
      "116600:1",
      "117619:1",
      "116219:1",
      "116103:1",
      "117109:1",
      "116477:1",
      "117483:1",
      "117707:1",
      "117009:1",
      "117484:1",
      "116185:1",
      "116361:1",
      "117391:1",
      "116279:1",
      "116552:1",
      "117485:1",
      "115929:1",
      "116553:1",
      "116094:1",
      "117328:1",
      "116939:1",
      "115996:1",
      "116058:1",
      "117520:1",
      "116069:1",
      "115883:1",
      "116023:1",
      "115997:1",
      "117065:1",
      "117064:1",
      "117568:1",
      "116690:1",
      "115998:1",
      "116424:1",
      "117582:1",
      "116883:1",
      "116819:1",
      "117000:1",
      "117400:1",
      "117110:1",
      "115918:1",
      "116639:1",
      "116568:1",
      "116340:1",
      "116626:1",
      "117230:1",
      "117722:1",
      "117452:1",
      "116406:1",
      "117569:1",
      "116893:1",
      "116291:1",
      "116722:1",
      "115905:1",
      "117559:1",
      "116464:1",
      "116734:1",
      "115937:1",
      "116302:1",
      "117080:1",
      "117001:1",
      "116554:1",
      "117358:1",
      "135153:1",
      "116163:1",
      "117382:1",
      "116652:1",
      "117349:1",
      "117428:1",
      "117002:1",
      "117419:1",
      "117592:1",
      "116555:1",
      "116518:1",
      "116019:1",
      "116257:1",
      "116186:1",
      "117583:1",
      "116024:1",
      "116426:1",
      "116035:1",
      "117584:1",
      "116940:1",
      "117042:1",
      "117698:1"
    ],
    "prompt_character_count": 120000,
    "prompt_character_limit": 120000,
    "prompt_was_truncated": true,
    "ai_candidate_trend_count": 6,
    "accepted_trend_count": 6,
    "rejected_trend_count": 0,
    "rejected_trends": []
  },
  "accepted_trend_audit": [
    {
      "trend_number": 1,
      "trend_name": "Minimalist Monochromatic Gym-to-Street Sets",
      "blog_title": "Clean-Girl Athleisure: Matching Sets We've Got On Repeat",
      "trend_type": "styling_formula",
      "signal_strength": "strong",
      "confidence_percent": 95.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Sculpting, high-waisted neutral biker shorts and matching halter sports bras set against clean, minimalist indoor and outdoor backdrops.",
      "description": "Matching activewear sets in muted, clean palettes styled under structured layers or worn solo for a highly polished, effortless fitness aesthetic.",
      "keywords": [
        "clean girl aesthetic",
        "minimalist activewear",
        "matching gym sets",
        "athleisure fashion"
      ],
      "post_ids": [
        135541,
        135273,
        135281,
        135591,
        135590,
        135274
      ],
      "media_refs": [
        "135541:4",
        "135273:1",
        "135281:1",
        "135591:1",
        "135590:2",
        "135274:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 95.0% confidence. Sculpting, high-waisted neutral biker shorts and matching halter sports bras set against clean, minimalist indoor and outdoor backdrops."
    },
    {
      "trend_number": 2,
      "trend_name": "New England Preppy Maritime Stripes",
      "blog_title": "Coastal Grandmother Aesthetic: Maritime Stripes Take Over",
      "trend_type": "color",
      "signal_strength": "medium",
      "confidence_percent": 88.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Consistent repetition of classic striped prints, high-cut retro silhouettes, and preppy accessories like sun hats and linen layers.",
      "description": "Classic navy-and-white or black-and-white bold stripes featured in high-cut swimwear and lightweight summer layers, channeling a nostalgic seaside lifestyle.",
      "keywords": [
        "nautical style",
        "striped swimsuits",
        "coastal grandmother",
        "resortwear trends"
      ],
      "post_ids": [
        116241,
        116998,
        116999,
        117418,
        117694,
        117696
      ],
      "media_refs": [
        "116241:1",
        "116998:1",
        "116999:1",
        "117418:1",
        "117694:1",
        "117696:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 88.0% confidence. Consistent repetition of classic striped prints, high-cut retro silhouettes, and preppy accessories like sun hats and linen layers."
    },
    {
      "trend_number": 3,
      "trend_name": "Saturated Royal and Cobalt Blue Swim",
      "blog_title": "The High-Summer Color to Know: Cobalt Blue",
      "trend_type": "color",
      "signal_strength": "strong",
      "confidence_percent": 90.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Monochromatic ensembles and swimwear featuring a striking, vibrant shade of medium-to-deep royal blue, shot on coastal or poolside locations.",
      "description": "Highly vibrant, saturated shades of royal and cobalt blue dominating minimalist bikinis, active swim sets, and resort-wear apparel.",
      "keywords": [
        "cobalt blue trend",
        "vibrant swimwear",
        "royal blue bikini",
        "coastal aesthetic"
      ],
      "post_ids": [
        135590,
        116712,
        116291,
        116699,
        116700,
        117242
      ],
      "media_refs": [
        "135590:1",
        "116712:1",
        "116291:1",
        "116699:1",
        "116700:1",
        "117242:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 90.0% confidence. Monochromatic ensembles and swimwear featuring a striking, vibrant shade of medium-to-deep royal blue, shot on coastal or poolside locations."
    },
    {
      "trend_number": 4,
      "trend_name": "Espresso & Dark Chocolate Palettes",
      "blog_title": "Skip the Black: Rich Cocoa is the New Neutral",
      "trend_type": "color",
      "signal_strength": "strong",
      "confidence_percent": 92.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Solid chocolate brown pigments styled across structured sports bras, seamless leggings, and sleek side-profile swimwear shots.",
      "description": "Deep, warm espresso and chocolate brown tones replacing charcoal/black as the primary luxurious neutral color in minimalist swimwear and activewear.",
      "keywords": [
        "espresso aesthetic",
        "chocolate brown activewear",
        "neutral palette",
        "quiet luxury"
      ],
      "post_ids": [
        135273,
        135275,
        115905,
        117042,
        117060,
        135152
      ],
      "media_refs": [
        "135273:1",
        "135275:1",
        "115905:1",
        "117042:1",
        "117060:1",
        "135152:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 92.0% confidence. Solid chocolate brown pigments styled across structured sports bras, seamless leggings, and sleek side-profile swimwear shots."
    },
    {
      "trend_number": 5,
      "trend_name": "Bohemian Crochet & Openwork Resort Coverups",
      "blog_title": "Breezy Openwork: The Crochet Pieces You Need",
      "trend_type": "texture",
      "signal_strength": "medium",
      "confidence_percent": 85.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Highly tactile openwork patterns and see-through knit textiles styled as relaxed summer beach cover ups or casual outdoor dinner fits.",
      "description": "Delicate or chunky openwork crochet and knit layers\u2014ranging from maxi dresses to tie-side skirts\u2014worn effortlessly as resort-wear coordinates.",
      "keywords": [
        "crochet coverup",
        "summer knitwear",
        "resort fashion",
        "beach club style"
      ],
      "post_ids": [
        115995,
        117030,
        116733,
        117349,
        116651,
        116302
      ],
      "media_refs": [
        "115995:1",
        "117030:1",
        "116733:1",
        "117349:1",
        "116651:1",
        "116302:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 85.0% confidence. Highly tactile openwork patterns and see-through knit textiles styled as relaxed summer beach cover ups or casual outdoor dinner fits."
    },
    {
      "trend_number": 6,
      "trend_name": "Coquette White Lace & Eyelet Cotton",
      "blog_title": "Dreamy Summer Romanticism: White Lace & Eyelet",
      "trend_type": "texture",
      "signal_strength": "medium",
      "confidence_percent": 87.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "Repeated visual of pure white textures, romantic ruffles, sheer lace details, and ultra-feminine casual summer styling.",
      "description": "Feminine, airy white fabrics featuring delicate eyelet cutouts, lace trims, and sheer overlays that bridge the gap between loungewear and daywear.",
      "keywords": [
        "romantic aesthetic",
        "white lace top",
        "cotton eyelet",
        "coquette style"
      ],
      "post_ids": [
        117390,
        117391,
        117047,
        117348,
        116058,
        135541
      ],
      "media_refs": [
        "117390:1",
        "117391:1",
        "117047:1",
        "117348:1",
        "116058:1",
        "135541:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 87.0% confidence. Repeated visual of pure white textures, romantic ruffles, sheer lace details, and ultra-feminine casual summer styling."
    }
  ],
  "report_payload": {
    "content_ideas": [
      {
        "blog_title": "Clean-Girl Athleisure: Matching Sets We've Got On Repeat",
        "trend_name": "Minimalist Monochromatic Gym-to-Street Sets",
        "trend_type": "styling_formula",
        "description": "Matching activewear sets in muted, clean palettes styled under structured layers or worn solo for a highly polished, effortless fitness aesthetic.",
        "visual_similarity_reason": "Sculpting, high-waisted neutral biker shorts and matching halter sports bras set against clean, minimalist indoor and outdoor backdrops.",
        "instagram_caption": "The ultimate morning-to-night uniform. \u2615\ufe0f\u2728 These sleek matching sets prove that comfortable activewear can look highly refined. Swap the sneakers for low-key slides and you're set.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.95,
        "keywords": [
          "clean girl aesthetic",
          "minimalist activewear",
          "matching gym sets",
          "athleisure fashion"
        ],
        "example_media_refs": [
          "135541:4",
          "135273:1",
          "135281:1",
          "135591:1",
          "135590:2",
          "135274:1"
        ],
        "example_post_ids": [
          135541,
          135273,
          135281,
          135591,
          135590,
          135274
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 3
      },
      {
        "blog_title": "Coastal Grandmother Aesthetic: Maritime Stripes Take Over",
        "trend_name": "New England Preppy Maritime Stripes",
        "trend_type": "color",
        "description": "Classic navy-and-white or black-and-white bold stripes featured in high-cut swimwear and lightweight summer layers, channeling a nostalgic seaside lifestyle.",
        "visual_similarity_reason": "Consistent repetition of classic striped prints, high-cut retro silhouettes, and preppy accessories like sun hats and linen layers.",
        "instagram_caption": "Seascapes and stripes. \u2693\ufe0f\ud83c\udf0a Bringing the ultimate vintage New England yacht club energy to your summer swimwear rotation. Which striped style is your favorite?",
        "trend_signal_strength": "medium",
        "confidence_score": 0.88,
        "keywords": [
          "nautical style",
          "striped swimsuits",
          "coastal grandmother",
          "resortwear trends"
        ],
        "example_media_refs": [
          "116241:1",
          "116998:1",
          "116999:1",
          "117418:1",
          "117694:1",
          "117696:1"
        ],
        "example_post_ids": [
          116241,
          116998,
          116999,
          117418,
          117694,
          117696
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 4,
        "generated_graphics": [
          {
            "image_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-57a7f545-bc5f-42ae-9f54-ec590ad61e3e.jpg",
            "selected_image_urls": [
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/724056231_18592065964009996_106109373790798034_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723040289_1730920207936744_7471966505553903570_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722960629_2916624241874750_801587334949622137_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722075421_1496156625590356_5655702668614550084_n.jpg"
            ],
            "title": " Maritime Stripes Take Over",
            "description": "Classic navy-and-white or black-and-white bold stripes featured in high-cut swimwear and lightweight summer layers, channeling a nostalgic seaside lifestyle."
          }
        ],
        "generated_graphic_urls": [
          "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-57a7f545-bc5f-42ae-9f54-ec590ad61e3e.jpg"
        ],
        "generated_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-57a7f545-bc5f-42ae-9f54-ec590ad61e3e.jpg",
        "selected_image_urls": [
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/724056231_18592065964009996_106109373790798034_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723040289_1730920207936744_7471966505553903570_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722960629_2916624241874750_801587334949622137_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722075421_1496156625590356_5655702668614550084_n.jpg"
        ]
      },
      {
        "blog_title": "The High-Summer Color to Know: Cobalt Blue",
        "trend_name": "Saturated Royal and Cobalt Blue Swim",
        "trend_type": "color",
        "description": "Highly vibrant, saturated shades of royal and cobalt blue dominating minimalist bikinis, active swim sets, and resort-wear apparel.",
        "visual_similarity_reason": "Monochromatic ensembles and swimwear featuring a striking, vibrant shade of medium-to-deep royal blue, shot on coastal or poolside locations.",
        "instagram_caption": "Stepping into high-summer with the only color palette that matters: Cobalt Blue. \ud83e\uddff\ud83c\udf0a Bold, bright, and built to stand out under the sun.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.9,
        "keywords": [
          "cobalt blue trend",
          "vibrant swimwear",
          "royal blue bikini",
          "coastal aesthetic"
        ],
        "example_media_refs": [
          "135590:1",
          "116712:1",
          "116291:1",
          "116699:1",
          "116700:1",
          "117242:1"
        ],
        "example_post_ids": [
          135590,
          116712,
          116291,
          116699,
          116700,
          117242
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 5,
        "generated_graphics": [
          {
            "image_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-7762cde4-3ef9-45bb-9fbb-8a8e307048f1.jpg",
            "selected_image_urls": [
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723118540_18125019874649901_8075550720919830329_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723066778_17997531971961281_3052364033359640244_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722995575_17997534746961281_912855067182298426_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722859080_18442257766188149_4439162980360926656_n.jpg"
            ],
            "title": "Cobalt Blue",
            "description": "Highly vibrant, saturated shades of royal and cobalt blue dominating minimalist bikinis, active swim sets, and resort-wear apparel."
          }
        ],
        "generated_graphic_urls": [
          "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-7762cde4-3ef9-45bb-9fbb-8a8e307048f1.jpg"
        ],
        "generated_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-7762cde4-3ef9-45bb-9fbb-8a8e307048f1.jpg",
        "selected_image_urls": [
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723118540_18125019874649901_8075550720919830329_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723066778_17997531971961281_3052364033359640244_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722995575_17997534746961281_912855067182298426_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722859080_18442257766188149_4439162980360926656_n.jpg"
        ]
      },
      {
        "blog_title": "Skip the Black: Rich Cocoa is the New Neutral",
        "trend_name": "Espresso & Dark Chocolate Palettes",
        "trend_type": "color",
        "description": "Deep, warm espresso and chocolate brown tones replacing charcoal/black as the primary luxurious neutral color in minimalist swimwear and activewear.",
        "visual_similarity_reason": "Solid chocolate brown pigments styled across structured sports bras, seamless leggings, and sleek side-profile swimwear shots.",
        "instagram_caption": "Espresso, but make it fashion. \u2615\ufe0f\ud83e\udd0e Trade your classic black sets for these ultra-rich cocoa and warm chocolate brown hues that feel effortlessly expensive.",
        "trend_signal_strength": "strong",
        "confidence_score": 0.92,
        "keywords": [
          "espresso aesthetic",
          "chocolate brown activewear",
          "neutral palette",
          "quiet luxury"
        ],
        "example_media_refs": [
          "135273:1",
          "135275:1",
          "115905:1",
          "117042:1",
          "117060:1",
          "135152:1"
        ],
        "example_post_ids": [
          135273,
          135275,
          115905,
          117042,
          117060,
          135152
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 5,
        "generated_graphics": [
          {
            "image_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-85a33141-c9b8-414e-8abf-5f7841242551.jpg",
            "selected_image_urls": [
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/727029164_2507815356311164_2684368009665848051_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238692_18532856998075218_7667103128088686057_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238584_18105571481515026_1408370080475582961_n.jpg",
              "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/727158782_17940402600250620_8879175175740871939_n.jpg"
            ],
            "title": "Rich Cocoa is the New Neutral",
            "description": "Deep, warm espresso and chocolate brown tones replacing charcoal/black as the primary luxurious neutral color in minimalist swimwear and activewear."
          }
        ],
        "generated_graphic_urls": [
          "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-85a33141-c9b8-414e-8abf-5f7841242551.jpg"
        ],
        "generated_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-85a33141-c9b8-414e-8abf-5f7841242551.jpg",
        "selected_image_urls": [
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/727029164_2507815356311164_2684368009665848051_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238692_18532856998075218_7667103128088686057_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238584_18105571481515026_1408370080475582961_n.jpg",
          "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/727158782_17940402600250620_8879175175740871939_n.jpg"
        ]
      },
      {
        "blog_title": "Breezy Openwork: The Crochet Pieces You Need",
        "trend_name": "Bohemian Crochet & Openwork Resort Coverups",
        "trend_type": "texture",
        "description": "Delicate or chunky openwork crochet and knit layers\u2014ranging from maxi dresses to tie-side skirts\u2014worn effortlessly as resort-wear coordinates.",
        "visual_similarity_reason": "Highly tactile openwork patterns and see-through knit textiles styled as relaxed summer beach cover ups or casual outdoor dinner fits.",
        "instagram_caption": "From beach side lounge to al fresco dinner. \ud83c\udf34\u2728 Nothing says summer resort wear quite like these airy, textured crochet and openwork knit silhouettes.",
        "trend_signal_strength": "medium",
        "confidence_score": 0.85,
        "keywords": [
          "crochet coverup",
          "summer knitwear",
          "resort fashion",
          "beach club style"
        ],
        "example_media_refs": [
          "115995:1",
          "117030:1",
          "116733:1",
          "117349:1",
          "116651:1",
          "116302:1"
        ],
        "example_post_ids": [
          115995,
          117030,
          116733,
          117349,
          116651,
          116302
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 6
      },
      {
        "blog_title": "Dreamy Summer Romanticism: White Lace & Eyelet",
        "trend_name": "Coquette White Lace & Eyelet Cotton",
        "trend_type": "texture",
        "description": "Feminine, airy white fabrics featuring delicate eyelet cutouts, lace trims, and sheer overlays that bridge the gap between loungewear and daywear.",
        "visual_similarity_reason": "Repeated visual of pure white textures, romantic ruffles, sheer lace details, and ultra-feminine casual summer styling.",
        "instagram_caption": "Living in a soft-focus summer dream. \u2601\ufe0f\ud83d\udd4a\ufe0f Embracing all things romantic with delicate white lace, sheer layers, and pretty eyelet details.",
        "trend_signal_strength": "medium",
        "confidence_score": 0.87,
        "keywords": [
          "romantic aesthetic",
          "white lace top",
          "cotton eyelet",
          "coquette style"
        ],
        "example_media_refs": [
          "117390:1",
          "117391:1",
          "117047:1",
          "117348:1",
          "116058:1",
          "135541:1"
        ],
        "example_post_ids": [
          117390,
          117391,
          117047,
          117348,
          116058,
          135541
        ],
        "matching_parent_post_count": 6,
        "matching_author_count": 5
      }
    ],
    "overview_title": "June 25th.",
    "overview_description": "Our feeds are dominated by sleek gym-to-street coordinates and rich espresso neutrals from trendsetting brands like @activebasics, @pinkyandkamal, and @shopform. On the coast, bold maritime stripes and saturated cobalt blues from @onewithswim and @kamariswim are making waves, beautifully contrasted by the romantic white lace and bohemian crochet coverups of @sanctuaryclothing and @shop_allison. ",
    "generation_diagnostics": {
      "available": true,
      "generated_at": "2026-06-23T01:46:56.255504Z",
      "tag": "swimwear",
      "media_scope": "all_media",
      "model": "~google/gemini-flash-latest",
      "criteria": {
        "time_window_days": 14,
        "window_start": "2026-06-09T01:45:48.588929Z",
        "minimum_confidence": 0.7,
        "minimum_matching_images": 6,
        "minimum_parent_posts": 3,
        "maximum_images_per_parent_post": 2,
        "preferred_matching_images": "6-12",
        "visual_similarity_is_primary": true,
        "caption_required": true,
        "single_campaign_trends_excluded": true
      },
      "source_post_count": 753,
      "source_media_count": 666,
      "eligible_post_count": 656,
      "analyzed_post_count": 195,
      "analyzed_post_ids": [
        135590,
        135272,
        135541,
        135542,
        135151,
        135591,
        135150,
        135273,
        135592,
        135274,
        135275,
        135276,
        135277,
        135593,
        135278,
        135152,
        135279,
        135594,
        135280,
        135595,
        135281,
        117390,
        116160,
        116022,
        115995,
        117566,
        116313,
        116997,
        117381,
        116765,
        116241,
        116882,
        116818,
        117579,
        116092,
        116538,
        116527,
        117590,
        117059,
        117625,
        116197,
        135282,
        117557,
        115917,
        117327,
        116753,
        116349,
        116699,
        116700,
        116301,
        117537,
        116998,
        116567,
        117316,
        117499,
        116721,
        116712,
        117167,
        116777,
        117442,
        117143,
        117567,
        116405,
        117721,
        117418,
        116876,
        117060,
        116079,
        116267,
        117348,
        116733,
        116903,
        117030,
        117061,
        116651,
        116290,
        116638,
        115860,
        117127,
        117510,
        116892,
        117427,
        116999,
        116853,
        117144,
        117063,
        116115,
        117694,
        117376,
        117290,
        117706,
        116161,
        116476,
        117580,
        117255,
        116093,
        117242,
        135283,
        117581,
        117047,
        117045,
        116007,
        116034,
        117482,
        117696,
        115893,
        117605,
        116423,
        116550,
        116600,
        117619,
        116219,
        116103,
        117109,
        116477,
        117483,
        117707,
        117009,
        117484,
        116185,
        116361,
        117391,
        116279,
        116552,
        117485,
        115929,
        116553,
        116094,
        117328,
        116939,
        115996,
        116058,
        117520,
        116069,
        115883,
        116023,
        115997,
        117065,
        117064,
        117568,
        116690,
        115998,
        116424,
        117582,
        116883,
        116819,
        117000,
        117400,
        117110,
        115918,
        116639,
        116568,
        116340,
        116626,
        117230,
        117722,
        117452,
        116406,
        117569,
        116893,
        116291,
        116722,
        115905,
        117559,
        116464,
        116734,
        115937,
        116302,
        117080,
        117001,
        116554,
        117358,
        135153,
        116163,
        117382,
        116652,
        117349,
        117428,
        117002,
        117419,
        117592,
        116555,
        116518,
        116019,
        116257,
        116186,
        117583,
        116024,
        116426,
        116035,
        117584,
        116940,
        117042,
        117698,
        117111
      ],
      "analyzed_media_count": 204,
      "analyzed_media_refs": [
        "135590:1",
        "135590:2",
        "135590:4",
        "135272:1",
        "135272:2",
        "135541:1",
        "135541:2",
        "135541:3",
        "135541:4",
        "135541:5",
        "135541:6",
        "135542:1",
        "135151:1",
        "135151:2",
        "135591:1",
        "135591:2",
        "135150:1",
        "135273:1",
        "135592:1",
        "135274:1",
        "135275:1",
        "135276:1",
        "135277:1",
        "135593:1",
        "135278:1",
        "135152:1",
        "135279:1",
        "135594:1",
        "135280:1",
        "135595:1",
        "135281:1",
        "117390:1",
        "116160:1",
        "116022:1",
        "115995:1",
        "117566:1",
        "116313:1",
        "116997:1",
        "117381:1",
        "116765:1",
        "116241:1",
        "116882:1",
        "116818:1",
        "117579:1",
        "116092:1",
        "116538:1",
        "116527:1",
        "117590:1",
        "117059:1",
        "117625:1",
        "116197:1",
        "135282:1",
        "117557:1",
        "115917:1",
        "117327:1",
        "116753:1",
        "116349:1",
        "116699:1",
        "116700:1",
        "116301:1",
        "117537:1",
        "116998:1",
        "116567:1",
        "117316:1",
        "117499:1",
        "116721:1",
        "116712:1",
        "117167:1",
        "116777:1",
        "117442:1",
        "117143:1",
        "117567:1",
        "116405:1",
        "117721:1",
        "117418:1",
        "116876:1",
        "117060:1",
        "116079:1",
        "116267:1",
        "117348:1",
        "116733:1",
        "116903:1",
        "117030:1",
        "117061:1",
        "116651:1",
        "116290:1",
        "116638:1",
        "115860:1",
        "117127:1",
        "117510:1",
        "116892:1",
        "117427:1",
        "116999:1",
        "116853:1",
        "117144:1",
        "117063:1",
        "116115:1",
        "117694:1",
        "117376:1",
        "117290:1",
        "117706:1",
        "116161:1",
        "116476:1",
        "117580:1",
        "117255:1",
        "116093:1",
        "117242:1",
        "135283:1",
        "117581:1",
        "117047:1",
        "117045:1",
        "116007:1",
        "116034:1",
        "117482:1",
        "117696:1",
        "115893:1",
        "117605:1",
        "116423:1",
        "116550:1",
        "116600:1",
        "117619:1",
        "116219:1",
        "116103:1",
        "117109:1",
        "116477:1",
        "117483:1",
        "117707:1",
        "117009:1",
        "117484:1",
        "116185:1",
        "116361:1",
        "117391:1",
        "116279:1",
        "116552:1",
        "117485:1",
        "115929:1",
        "116553:1",
        "116094:1",
        "117328:1",
        "116939:1",
        "115996:1",
        "116058:1",
        "117520:1",
        "116069:1",
        "115883:1",
        "116023:1",
        "115997:1",
        "117065:1",
        "117064:1",
        "117568:1",
        "116690:1",
        "115998:1",
        "116424:1",
        "117582:1",
        "116883:1",
        "116819:1",
        "117000:1",
        "117400:1",
        "117110:1",
        "115918:1",
        "116639:1",
        "116568:1",
        "116340:1",
        "116626:1",
        "117230:1",
        "117722:1",
        "117452:1",
        "116406:1",
        "117569:1",
        "116893:1",
        "116291:1",
        "116722:1",
        "115905:1",
        "117559:1",
        "116464:1",
        "116734:1",
        "115937:1",
        "116302:1",
        "117080:1",
        "117001:1",
        "116554:1",
        "117358:1",
        "135153:1",
        "116163:1",
        "117382:1",
        "116652:1",
        "117349:1",
        "117428:1",
        "117002:1",
        "117419:1",
        "117592:1",
        "116555:1",
        "116518:1",
        "116019:1",
        "116257:1",
        "116186:1",
        "117583:1",
        "116024:1",
        "116426:1",
        "116035:1",
        "117584:1",
        "116940:1",
        "117042:1",
        "117698:1"
      ],
      "prompt_character_count": 120000,
      "prompt_character_limit": 120000,
      "prompt_was_truncated": true,
      "ai_candidate_trend_count": 6,
      "accepted_trend_count": 6,
      "rejected_trend_count": 0,
      "rejected_trends": []
    },
    "overview_graphic_urls": [
      "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-6977da22-261f-4160-a8ef-c815e716e95d.jpg"
    ],
    "overview_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-6977da22-261f-4160-a8ef-c815e716e95d.jpg",
    "overview_template_key": "style_2",
    "overview_selected_trends": [
      {
        "trend_index": 1,
        "title": "New England Preppy Maritime Stripes",
        "description": "Classic navy-and-white or black-and-white bold stripes featured in high-cut swimwear and lightweight summer layers, channeling a nostalgic seaside lifestyle.",
        "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/724056231_18592065964009996_106109373790798034_n.jpg",
        "username": "alleswimsuit",
        "likes": 6,
        "caption": "New England Preppy Maritime Stripes - @alleswimsuit",
        "trend_graphic_index": 0,
        "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-57a7f545-bc5f-42ae-9f54-ec590ad61e3e.jpg"
      },
      {
        "trend_index": 2,
        "title": "Saturated Royal and Cobalt Blue Swim",
        "description": "Highly vibrant, saturated shades of royal and cobalt blue dominating minimalist bikinis, active swim sets, and resort-wear apparel.",
        "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722995575_17997534746961281_912855067182298426_n.jpg",
        "username": "europeansummerswim",
        "likes": 6,
        "caption": "Saturated Royal and Cobalt Blue Swim - @europeansummerswim",
        "trend_graphic_index": 0,
        "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-7762cde4-3ef9-45bb-9fbb-8a8e307048f1.jpg"
      },
      {
        "trend_index": 3,
        "title": "Espresso & Dark Chocolate Palettes",
        "description": "Deep, warm espresso and chocolate brown tones replacing charcoal/black as the primary luxurious neutral color in minimalist swimwear and activewear.",
        "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238584_18105571481515026_1408370080475582961_n.jpg",
        "username": "drippin.swim",
        "likes": 30,
        "caption": "Espresso & Dark Chocolate Palettes - @drippin.swim",
        "trend_graphic_index": 0,
        "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-85a33141-c9b8-414e-8abf-5f7841242551.jpg"
      }
    ],
    "overview_post_number": 1,
    "overview_post_caption": "New England Preppy Maritime Stripes - @alleswimsuit\nSaturated Royal and Cobalt Blue Swim - @europeansummerswim\nEspresso & Dark Chocolate Palettes - @drippin.swim",
    "overview_graphics": [
      {
        "image_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-6977da22-261f-4160-a8ef-c815e716e95d.jpg",
        "post_number": 1,
        "title": "June 25th.",
        "description": "Our feeds are dominated by sleek gym-to-street coordinates and rich espresso neutrals from trendsetting brands like @activebasics, @pinkyandkamal, and @shopform. On the coast, bold maritime stripes and saturated cobalt blues from @onewithswim and @kamariswim are making waves, beautifully contrasted by the romantic white lace and bohemian crochet coverups of @sanctuaryclothing and @shop_allison. ",
        "post_caption": "New England Preppy Maritime Stripes - @alleswimsuit\nSaturated Royal and Cobalt Blue Swim - @europeansummerswim\nEspresso & Dark Chocolate Palettes - @drippin.swim",
        "template_key": "style_2",
        "selected_trends": [
          {
            "trend_index": 1,
            "title": "New England Preppy Maritime Stripes",
            "description": "Classic navy-and-white or black-and-white bold stripes featured in high-cut swimwear and lightweight summer layers, channeling a nostalgic seaside lifestyle.",
            "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/724056231_18592065964009996_106109373790798034_n.jpg",
            "username": "alleswimsuit",
            "likes": 6,
            "caption": "New England Preppy Maritime Stripes - @alleswimsuit",
            "trend_graphic_index": 0,
            "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-57a7f545-bc5f-42ae-9f54-ec590ad61e3e.jpg"
          },
          {
            "trend_index": 2,
            "title": "Saturated Royal and Cobalt Blue Swim",
            "description": "Highly vibrant, saturated shades of royal and cobalt blue dominating minimalist bikinis, active swim sets, and resort-wear apparel.",
            "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/722995575_17997534746961281_912855067182298426_n.jpg",
            "username": "europeansummerswim",
            "likes": 6,
            "caption": "Saturated Royal and Cobalt Blue Swim - @europeansummerswim",
            "trend_graphic_index": 0,
            "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-7762cde4-3ef9-45bb-9fbb-8a8e307048f1.jpg"
          },
          {
            "trend_index": 3,
            "title": "Espresso & Dark Chocolate Palettes",
            "description": "Deep, warm espresso and chocolate brown tones replacing charcoal/black as the primary luxurious neutral color in minimalist swimwear and activewear.",
            "image_url": "https://shoppable.nyc3.cdn.digitaloceanspaces.com/posts/723238584_18105571481515026_1408370080475582961_n.jpg",
            "username": "drippin.swim",
            "likes": 30,
            "caption": "Espresso & Dark Chocolate Palettes - @drippin.swim",
            "trend_graphic_index": 0,
            "trend_graphic_url": "https://cdn.renderform.io/Rx4ojEUQvvYRRUkgsz17/results/req-85a33141-c9b8-414e-8abf-5f7841242551.jpg"
          }
        ]
      }
    ],
    "workflow_note": "done PF"
  }
}