{
  "report": {
    "id": 86,
    "period": "[skincare] Jun 26 - Jul 10, 2026 (Part 1 of 3)",
    "created_at": "2026-07-10T12:25:39.665929+00:00",
    "workflow_note": ""
  },
  "generation_diagnostics": {
    "available": true,
    "generated_at": "2026-07-10T12:26:06.506539Z",
    "tag": "skincare",
    "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-26T12:25:39.264855Z",
      "media_scope": "all_media",
      "scoped_post_count": 0,
      "batch_size": 500,
      "max_batches": 20,
      "batch_count": 1,
      "images_requested": 0,
      "images_analyzed": 0,
      "posts_touched": 0,
      "reached_batch_cap": false,
      "batches": [
        {
          "batch_number": 1,
          "images_requested": 0,
          "images_analyzed": 0,
          "posts_touched": 0,
          "completion_reconciled": false
        }
      ]
    },
    "chunking": {
      "enabled": true,
      "chunk_number": 1,
      "chunk_count": 3,
      "max_posts_per_chunk": 200,
      "max_media_per_chunk": 500,
      "chunk_post_count": 200,
      "chunk_media_count": 313,
      "full_source_post_count": 1629,
      "full_eligible_post_count": 432,
      "full_source_media_count": 545
    },
    "criteria": {
      "time_window_days": 14,
      "window_start": "2026-06-26T12:25:39.264855Z",
      "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": 1629,
    "source_media_count": 545,
    "eligible_post_count": 432,
    "chunk_post_count": 200,
    "chunk_media_count": 313,
    "analyzed_post_count": 200,
    "analyzed_post_ids": [
      158942,
      157923,
      158864,
      158025,
      158991,
      159002,
      158643,
      154953,
      158059,
      157504,
      157084,
      158736,
      158930,
      157433,
      157001,
      158603,
      157641,
      158320,
      157996,
      158416,
      158807,
      157711,
      159046,
      158786,
      157724,
      157622,
      156961,
      158737,
      157224,
      158777,
      157806,
      157970,
      158828,
      158657,
      157415,
      157940,
      158795,
      158931,
      157652,
      157434,
      158912,
      158400,
      157149,
      158168,
      158808,
      156973,
      158041,
      158818,
      157997,
      158804,
      157827,
      157389,
      158350,
      158809,
      159105,
      157314,
      158710,
      157673,
      158852,
      158633,
      157645,
      158554,
      158558,
      157315,
      157659,
      157197,
      158899,
      157638,
      157176,
      158583,
      157689,
      157439,
      158317,
      158758,
      158792,
      158858,
      158372,
      158892,
      158916,
      157037,
      158933,
      157279,
      156986,
      157754,
      158386,
      157018,
      158532,
      157738,
      158608,
      158822,
      157782,
      158617,
      157365,
      157530,
      157834,
      158349,
      157252,
      157554,
      159081,
      157397,
      157430,
      157507,
      157345,
      157897,
      157597,
      157112,
      158063,
      157543,
      157618,
      158022,
      158351,
      158441,
      157950,
      158099,
      157824,
      157718,
      157259,
      157639,
      158011,
      158490,
      157767,
      158046,
      158970,
      157266,
      158325,
      156946,
      158947,
      158112,
      157521,
      158196,
      158132,
      157877,
      157289,
      157052,
      157130,
      158301,
      157131,
      158376,
      157376,
      157132,
      158466,
      158418,
      159106,
      158243,
      158442,
      158165,
      159057,
      157909,
      158197,
      158600,
      157775,
      158665,
      159014,
      156968,
      157177,
      158039,
      158234,
      157088,
      158491,
      157187,
      159023,
      157406,
      156997,
      157396,
      158645,
      157869,
      157708,
      157846,
      157076,
      158364,
      158283,
      157421,
      158726,
      158001,
      157608,
      157574,
      157451,
      157660,
      159045,
      158878,
      157891,
      157316,
      157113,
      158373,
      158727,
      157685,
      157470,
      158570,
      157483,
      158733,
      157500,
      158793,
      157898,
      158759,
      157299,
      158833,
      158893,
      158917,
      158501,
      158934
    ],
    "analyzed_media_count": 313,
    "analyzed_media_refs": [
      "158942:3",
      "157923:1",
      "157923:3",
      "158864:4",
      "158864:5",
      "158864:7",
      "158025:1",
      "158025:2",
      "158025:3",
      "158025:4",
      "158991:1",
      "158991:2",
      "158991:3",
      "158991:4",
      "158991:5",
      "158991:6",
      "158991:7",
      "158991:8",
      "158991:9",
      "158991:10",
      "159002:1",
      "159002:2",
      "159002:3",
      "159002:4",
      "159002:5",
      "158643:3",
      "158643:4",
      "158643:5",
      "154953:1",
      "158059:1",
      "158059:2",
      "158059:3",
      "158059:4",
      "158059:5",
      "158059:6",
      "157504:2",
      "157504:4",
      "157084:2",
      "157084:3",
      "157084:4",
      "157084:5",
      "158736:3",
      "158736:4",
      "158930:1",
      "158930:2",
      "157433:2",
      "157433:3",
      "157433:5",
      "157433:6",
      "157001:3",
      "157001:4",
      "158603:2",
      "158603:3",
      "158603:4",
      "157641:2",
      "158320:1",
      "158320:2",
      "157996:1",
      "157996:2",
      "157996:3",
      "157996:4",
      "157996:5",
      "158416:2",
      "158416:3",
      "158807:1",
      "157711:1",
      "157711:2",
      "157711:3",
      "157711:4",
      "157711:5",
      "159046:1",
      "159046:2",
      "158786:1",
      "157724:2",
      "157622:1",
      "157622:2",
      "157622:3",
      "156961:1",
      "156961:2",
      "156961:3",
      "158737:1",
      "158737:2",
      "158737:3",
      "158737:4",
      "157224:1",
      "157224:2",
      "158777:1",
      "157806:1",
      "157806:2",
      "157806:3",
      "157970:1",
      "157970:2",
      "157970:3",
      "157970:4",
      "158828:1",
      "158657:1",
      "158657:2",
      "158657:4",
      "157415:1",
      "157415:2",
      "157415:3",
      "157415:4",
      "157415:5",
      "157940:1",
      "157940:2",
      "157940:3",
      "157940:4",
      "157940:5",
      "157940:6",
      "158795:1",
      "158931:1",
      "158931:2",
      "158931:3",
      "157652:1",
      "157652:2",
      "157652:3",
      "157652:4",
      "157652:5",
      "157434:1",
      "157434:2",
      "157434:3",
      "157434:4",
      "157434:5",
      "158912:1",
      "158912:2",
      "158912:3",
      "158400:1",
      "158400:2",
      "157149:1",
      "157149:2",
      "158168:1",
      "158168:2",
      "158168:3",
      "158168:4",
      "158808:1",
      "156973:1",
      "156973:2",
      "158041:1",
      "158041:2",
      "158041:3",
      "158818:1",
      "157997:1",
      "157997:2",
      "158804:1",
      "158804:2",
      "158804:3",
      "157827:1",
      "157827:2",
      "157827:3",
      "157389:1",
      "157389:2",
      "157389:3",
      "158350:1",
      "158350:2",
      "158350:3",
      "158809:1",
      "159105:1",
      "157314:1",
      "158710:1",
      "157673:1",
      "158852:1",
      "158633:1",
      "157645:1",
      "158554:1",
      "158558:1",
      "157315:1",
      "157659:1",
      "157197:1",
      "158899:1",
      "157638:1",
      "157176:1",
      "158583:1",
      "157689:1",
      "157439:1",
      "158317:1",
      "158758:1",
      "158758:2",
      "158758:3",
      "158758:4",
      "158758:5",
      "158758:6",
      "158792:1",
      "158858:1",
      "158372:1",
      "158892:1",
      "158916:1",
      "157037:1",
      "158933:1",
      "157279:1",
      "156986:1",
      "157754:1",
      "158386:1",
      "157018:1",
      "158532:1",
      "157738:1",
      "158608:1",
      "158822:1",
      "157782:1",
      "157782:2",
      "158617:1",
      "157365:1",
      "157530:1",
      "157834:1",
      "158349:1",
      "157252:1",
      "157554:1",
      "159081:1",
      "157397:1",
      "157430:1",
      "157507:1",
      "157345:1",
      "157897:1",
      "157597:1",
      "157112:1",
      "158063:1",
      "157543:1",
      "157618:1",
      "158022:1",
      "158351:1",
      "158441:1",
      "157950:1",
      "158099:1",
      "157824:1",
      "157718:1",
      "157259:1",
      "157639:1",
      "158011:1",
      "158490:1",
      "157767:1",
      "158046:1",
      "158970:1",
      "157266:1",
      "158325:1",
      "156946:1",
      "158947:1",
      "158112:1",
      "157521:1",
      "158196:1",
      "158132:1",
      "157877:1",
      "157289:1",
      "157052:1",
      "157130:1",
      "158301:1",
      "157131:1",
      "158376:1",
      "158376:2",
      "158376:3",
      "157376:1",
      "157132:1",
      "158466:1",
      "158418:1",
      "159106:1",
      "158243:1",
      "158442:1",
      "158165:1",
      "159057:1",
      "157909:1",
      "158197:1",
      "158600:1",
      "157775:1",
      "158665:1",
      "159014:1",
      "156968:1",
      "157177:1",
      "158039:1",
      "158234:1",
      "157088:1",
      "158491:1",
      "157187:1",
      "159023:1",
      "157406:1",
      "156997:1",
      "157396:1",
      "158645:1",
      "157869:1",
      "157708:1",
      "157846:1",
      "157076:1",
      "158364:1",
      "158283:1",
      "157421:1",
      "158726:1",
      "158001:1",
      "157608:1",
      "157574:1",
      "157451:1",
      "157660:1",
      "159045:1",
      "158878:1",
      "157891:1",
      "157316:1",
      "157113:1",
      "158373:1",
      "158727:1",
      "157685:1",
      "157470:1",
      "158570:1",
      "157483:1",
      "157483:2",
      "157483:3",
      "157483:4",
      "158733:1",
      "157500:1",
      "158793:1",
      "157898:1",
      "158759:1",
      "157299:1",
      "158833:1",
      "158893:1",
      "158917:1",
      "158501:1",
      "158934:1"
    ],
    "full_source_prompt_character_count": 177481,
    "source_prompt_character_count": 177481,
    "prompt_character_count": 177481,
    "prompt_character_limit": 300000,
    "prompt_was_truncated": false,
    "candidate_prompt_character_count": 181640,
    "validation_prompt_character_count": 187604,
    "candidate_reasoning_scratchpad": "We are observing a heavy focus on highly tactile product texture swatches, specifically clinical gel-creams and viscous, air-bubbled serums. On-the-go skincare and protective sun-care stick formats are quickly taking over visual styling, while educational content focusing heavily on skin barrier rehabilitation is visually organized around high-contrast, informative typography grids.",
    "validation_reasoning_scratchpad": "We have validated and expanded the candidate clusters based on visual pattern consistency within the raw post data. Skincare sticks and portable balms have emerged as a dominant travel trend, while before-and-after skin texture closeups show a clear shift toward unretouched clinical transparency. Texture swatches featuring clear gel with micro-bubbles are highly prevalent and represent a key sensory marketing tool for modern beauty brands.",
    "ai_discovered_candidate_count": 7,
    "candidate_trends": [
      {
        "candidate_name": "Hydrogel Eye Masks & Patches",
        "trend_type": "beauty",
        "visual_axis": "beauty",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "157504:4",
          "158320:1",
          "158818:1",
          "158165:1"
        ],
        "visual_cues": [
          "under-eye patches",
          "hydrogel mask",
          "skincare application close-up",
          "pink or white patches"
        ]
      },
      {
        "candidate_name": "On-The-Go Skincare Sticks & Balms",
        "trend_type": "beauty",
        "visual_axis": "packaging",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "157970:4",
          "156961:2",
          "157345:1",
          "157224:1"
        ],
        "visual_cues": [
          "solid balm format",
          "roll-on applicator",
          "skincare stick",
          "teal or blue tube packaging",
          "portable beauty"
        ]
      },
      {
        "candidate_name": "Tactile Gel & Bubble Swatches",
        "trend_type": "texture",
        "visual_axis": "texture",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "159002:1",
          "158059:5",
          "157149:1",
          "156973:2"
        ],
        "visual_cues": [
          "clear gel",
          "air bubbles",
          "viscous liquid",
          "skincare swatch",
          "macro texture shot"
        ]
      },
      {
        "candidate_name": "Blue and Orange Dual Branding palettes",
        "trend_type": "color",
        "visual_axis": "color",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "157224:1",
          "157433:3",
          "157434:5",
          "158025:1"
        ],
        "visual_cues": [
          "blue packaging",
          "orange branding",
          "teal base",
          "vibrant color contrast"
        ]
      },
      {
        "candidate_name": "Yellow Grid Infographics",
        "trend_type": "other",
        "visual_axis": "composition",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "157434:2",
          "157434:3",
          "157434:4",
          "158416:2"
        ],
        "visual_cues": [
          "yellow grid background",
          "skincare education",
          "skincare myth-busting text",
          "infographic layout"
        ]
      },
      {
        "candidate_name": "Silver-Capped Squeeze Tubes",
        "trend_type": "beauty",
        "visual_axis": "packaging",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "157996:1",
          "157996:4",
          "157997:1",
          "158001:1"
        ],
        "visual_cues": [
          "squeeze tube",
          "silver/metallic cap",
          "precision applicator tip",
          "blue or pastel tube"
        ]
      },
      {
        "candidate_name": "Before and After Dermal Close-Ups",
        "trend_type": "pose",
        "visual_axis": "composition",
        "historical_relationship": "net_new",
        "seed_media_count": 4,
        "seed_media_refs": [
          "158942:3",
          "157711:3",
          "157711:4",
          "157389:1"
        ],
        "visual_cues": [
          "before and after",
          "skincare results",
          "unretouched skin",
          "dermal texture close-up",
          "redness reduction"
        ]
      }
    ],
    "ai_candidate_trend_count": 7,
    "ai_validated_trend_count_before_filter": 7,
    "accepted_trend_count": 6,
    "rejected_trend_count": 1,
    "rejected_trends": [
      {
        "trend_name": "Yellow Grid Infographics",
        "confidence_score": 0.88,
        "valid_matching_image_count": 2,
        "matching_parent_post_count": 1,
        "matching_author_count": 1,
        "invalid_or_out_of_scope_media_refs": [],
        "unparseable_media_refs": [],
        "excluded_same_post_media_refs": [
          "157434:3",
          "157434:4"
        ],
        "reasons": [
          "Only 2 valid matching images; minimum is 4.",
          "Images came from only 1 parent posts; minimum is 3."
        ]
      }
    ]
  },
  "accepted_trend_audit": [
    {
      "trend_number": 1,
      "trend_name": "Hydrogel Eye Masks & Patches",
      "blog_title": "The Rise of the Hydrogel Eye Ritual",
      "trend_type": "beauty",
      "signal_strength": "medium",
      "confidence_percent": 85.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Repeated use of pastel pink or white gel patches applied under the eyes, photographed close-up to highlight hydration and skin prep.",
      "description": "Crescent-shaped hydrogel or gel eye patches applied close-up to the under-eye area during skin preparation or morning routines.",
      "keywords": [
        "under-eye patches",
        "hydrogel mask",
        "skin prep",
        "eye care"
      ],
      "post_ids": [
        157504,
        158320,
        158818,
        158165
      ],
      "media_refs": [
        "157504:4",
        "158320:1",
        "158818:1",
        "158165:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 85.0% confidence. Repeated use of pastel pink or white gel patches applied under the eyes, photographed close-up to highlight hydration and skin prep."
    },
    {
      "trend_number": 2,
      "trend_name": "On-The-Go Skincare Sticks & Balms",
      "blog_title": "Portable Beauty: On-The-Go Skincare Balms & Sticks",
      "trend_type": "beauty",
      "signal_strength": "strong",
      "confidence_percent": 92.0,
      "matching_image_count": 5,
      "matching_parent_post_count": 5,
      "visual_similarity_reason": "Solid balm and stick formats shown being applied directly to the skin or styled in everyday-carry flat lays (such as in pockets or bags).",
      "description": "Skincare formulations packaged in twist-up sticks, rollerball applicators, or solid pocket tubes designed for portable application.",
      "keywords": [
        "solid balm",
        "skincare stick",
        "portable beauty",
        "travel cosmetic"
      ],
      "post_ids": [
        157970,
        156961,
        157345,
        157224,
        158809
      ],
      "media_refs": [
        "157970:4",
        "156961:2",
        "157345:1",
        "157224:1",
        "158809:1"
      ],
      "qualification_reason": "Accepted with 5 matching images across 5 parent posts at 92.0% confidence. Solid balm and stick formats shown being applied directly to the skin or styled in everyday-carry flat lays (such as in pockets or bags)."
    },
    {
      "trend_number": 3,
      "trend_name": "Tactile Gel & Bubble Swatches",
      "blog_title": "Sensory Aesthetics: Translucent Bubble Swatches",
      "trend_type": "texture",
      "signal_strength": "strong",
      "confidence_percent": 95.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 6,
      "visual_similarity_reason": "High-shine, viscous gel swatches showing internal micro-bubbles or translucent textures on minimalist backgrounds.",
      "description": "Macro-photography of clear, amber, or deep-colored gel skincare textures featuring visible air bubbles or suspended droplets.",
      "keywords": [
        "clear gel",
        "air bubbles",
        "macro texture",
        "fluid swatch"
      ],
      "post_ids": [
        159002,
        158059,
        157149,
        156973,
        159046,
        157622
      ],
      "media_refs": [
        "159002:1",
        "158059:5",
        "157149:1",
        "156973:2",
        "159046:2",
        "157622:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 6 parent posts at 95.0% confidence. High-shine, viscous gel swatches showing internal micro-bubbles or translucent textures on minimalist backgrounds."
    },
    {
      "trend_number": 4,
      "trend_name": "Blue and Orange Contrast Branding",
      "blog_title": "Color Contrast: Cobalt and Crewe Orange Dual Palettes",
      "trend_type": "color",
      "signal_strength": "medium",
      "confidence_percent": 82.0,
      "matching_image_count": 4,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Consistent pairing of deep primary blue/teal with warm/vibrant shades of orange or red in product packaging and event booths.",
      "description": "Skincare packaging and promotional campaign environments pairing vibrant cobalt or teal base elements with high-visibility orange accents.",
      "keywords": [
        "blue packaging",
        "orange branding",
        "complementary colors",
        "visual contrast"
      ],
      "post_ids": [
        157224,
        157433,
        157434,
        158025
      ],
      "media_refs": [
        "157224:1",
        "157433:3",
        "157434:5",
        "158025:1"
      ],
      "qualification_reason": "Accepted with 4 matching images across 4 parent posts at 82.0% confidence. Consistent pairing of deep primary blue/teal with warm/vibrant shades of orange or red in product packaging and event booths."
    },
    {
      "trend_number": 5,
      "trend_name": "Silver-Capped Squeeze Tubes",
      "blog_title": "Clinical Precision: Metallic Silver Squeeze Tubes",
      "trend_type": "beauty",
      "signal_strength": "strong",
      "confidence_percent": 90.0,
      "matching_image_count": 5,
      "matching_parent_post_count": 4,
      "visual_similarity_reason": "Squeeze-tube formats sharing distinct metallic silver metallic closures and targeted, narrow applicator nozzles.",
      "description": "Skincare products packaged within soft-squeeze plastic tubes finished with reflective, high-shine silver caps and precision applicator tips.",
      "keywords": [
        "squeeze tube",
        "silver cap",
        "precision applicator",
        "minimalist tube"
      ],
      "post_ids": [
        157996,
        157997,
        158001,
        158234
      ],
      "media_refs": [
        "157996:1",
        "157996:4",
        "157997:1",
        "158001:1",
        "158234:1"
      ],
      "qualification_reason": "Accepted with 5 matching images across 4 parent posts at 90.0% confidence. Squeeze-tube formats sharing distinct metallic silver metallic closures and targeted, narrow applicator nozzles."
    },
    {
      "trend_number": 6,
      "trend_name": "Before and After Dermal Close-Ups",
      "blog_title": "Raw Efficacy: Unretouched Before & After Dermal Shots",
      "trend_type": "pose",
      "signal_strength": "strong",
      "confidence_percent": 93.0,
      "matching_image_count": 6,
      "matching_parent_post_count": 5,
      "visual_similarity_reason": "Macro facial close-ups highlighting unretouched skin conditions (acne, redness, fine lines) alongside dramatic, verified results.",
      "description": "Split-screen or compiled carousel slides depicting ultra-close-up, unretouched facial skin textures representing clear transformation or redness reduction.",
      "keywords": [
        "before and after",
        "skincare results",
        "unretouched skin",
        "dermal closeup"
      ],
      "post_ids": [
        158942,
        157711,
        157389,
        158442,
        157660
      ],
      "media_refs": [
        "158942:3",
        "157711:3",
        "157711:4",
        "157389:1",
        "158442:1",
        "157660:1"
      ],
      "qualification_reason": "Accepted with 6 matching images across 5 parent posts at 93.0% confidence. Macro facial close-ups highlighting unretouched skin conditions (acne, redness, fine lines) alongside dramatic, verified results."
    }
  ],
  "report_payload": {
    "reasoning_scratchpad": "We have validated and expanded the candidate clusters based on visual pattern consistency within the raw post data. Skincare sticks and portable balms have emerged as a dominant travel trend, while before-and-after skin texture closeups show a clear shift toward unretouched clinical transparency. Texture swatches featuring clear gel with micro-bubbles are highly prevalent and represent a key sensory marketing tool for modern beauty brands.",
    "content_ideas": [
      {
        "blog_title": "The Rise of the Hydrogel Eye Ritual",
        "trend_name": "Hydrogel Eye Masks & Patches",
        "trend_type": "beauty",
        "trend_trajectory": "net_new",
        "historical_note": "This is a net-new micro-trend emphasizing on-the-go or close-up under-eye skin prep.",
        "description": "Crescent-shaped hydrogel or gel eye patches applied close-up to the under-eye area during skin preparation or morning routines.",
        "visual_similarity_reason": "Repeated use of pastel pink or white gel patches applied under the eyes, photographed close-up to highlight hydration and skin prep.",
        "instagram_caption": "AM puffiness? Not on our watch. \ud83d\udca6 Meet the ultimate under-eye cheat code for instant hydration and a smooth makeup base. \ud83d\udc41\ufe0f\u2728 #skincareritual #eyepatches #skinprep #glowycomplexion",
        "trend_signal_strength": "medium",
        "confidence_score": 0.85,
        "keywords": [
          "under-eye patches",
          "hydrogel mask",
          "skin prep",
          "eye care"
        ],
        "example_media_refs": [
          "157504:4",
          "158320:1",
          "158818:1",
          "158165:1"
        ],
        "example_post_ids": [
          157504,
          158320,
          158818,
          158165
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 4
      },
      {
        "blog_title": "Portable Beauty: On-The-Go Skincare Balms & Sticks",
        "trend_name": "On-The-Go Skincare Sticks & Balms",
        "trend_type": "beauty",
        "trend_trajectory": "net_new",
        "historical_note": "This trend highlights the growing consumer demand for touchless, purse-friendly product formats.",
        "description": "Skincare formulations packaged in twist-up sticks, rollerball applicators, or solid pocket tubes designed for portable application.",
        "visual_similarity_reason": "Solid balm and stick formats shown being applied directly to the skin or styled in everyday-carry flat lays (such as in pockets or bags).",
        "instagram_caption": "Your favorite skincare, pocket-sized. \ud83e\udd33 No spills, no mess, just instant hydration wherever the day takes you. \u2708\ufe0f\u2600\ufe0f #portableskincare #skincarestick #beautyonthego #travelessentials",
        "trend_signal_strength": "strong",
        "confidence_score": 0.92,
        "keywords": [
          "solid balm",
          "skincare stick",
          "portable beauty",
          "travel cosmetic"
        ],
        "example_media_refs": [
          "157970:4",
          "156961:2",
          "157345:1",
          "157224:1",
          "158809:1"
        ],
        "example_post_ids": [
          157970,
          156961,
          157345,
          157224,
          158809
        ],
        "matching_image_count": 5,
        "matching_parent_post_count": 5,
        "matching_author_count": 5
      },
      {
        "blog_title": "Sensory Aesthetics: Translucent Bubble Swatches",
        "trend_name": "Tactile Gel & Bubble Swatches",
        "trend_type": "texture",
        "trend_trajectory": "net_new",
        "historical_note": "Highly visual, tactile swatches are replacing clean product shots to engage sensory-focused consumers.",
        "description": "Macro-photography of clear, amber, or deep-colored gel skincare textures featuring visible air bubbles or suspended droplets.",
        "visual_similarity_reason": "High-shine, viscous gel swatches showing internal micro-bubbles or translucent textures on minimalist backgrounds.",
        "instagram_caption": "Satisfy your sensory cravings. \u2728 Healthy skin starts with deeply hydrating, active-packed textures that feel as good as they look. \ud83e\uddea\ud83d\udca6 #textureswatch #cleangellook #skincare formulation #sensorybeauty",
        "trend_signal_strength": "strong",
        "confidence_score": 0.95,
        "keywords": [
          "clear gel",
          "air bubbles",
          "macro texture",
          "fluid swatch"
        ],
        "example_media_refs": [
          "159002:1",
          "158059:5",
          "157149:1",
          "156973:2",
          "159046:2",
          "157622:1"
        ],
        "example_post_ids": [
          159002,
          158059,
          157149,
          156973,
          159046,
          157622
        ],
        "matching_image_count": 6,
        "matching_parent_post_count": 6,
        "matching_author_count": 6
      },
      {
        "blog_title": "Color Contrast: Cobalt and Crewe Orange Dual Palettes",
        "trend_name": "Blue and Orange Contrast Branding",
        "trend_type": "color",
        "trend_trajectory": "net_new",
        "historical_note": "A transition away from muted beige and clinical white toward high-energy complementary hues.",
        "description": "Skincare packaging and promotional campaign environments pairing vibrant cobalt or teal base elements with high-visibility orange accents.",
        "visual_similarity_reason": "Consistent pairing of deep primary blue/teal with warm/vibrant shades of orange or red in product packaging and event booths.",
        "instagram_caption": "Clinical meets high-energy. \ud83d\udca5 Spotting our favorite routine essentials making a bold visual statement. \ud83d\udc99\ud83e\udde1 #beautycolorpalette #brandidentity #packagingspotlight #skincareminimalist",
        "trend_signal_strength": "medium",
        "confidence_score": 0.82,
        "keywords": [
          "blue packaging",
          "orange branding",
          "complementary colors",
          "visual contrast"
        ],
        "example_media_refs": [
          "157224:1",
          "157433:3",
          "157434:5",
          "158025:1"
        ],
        "example_post_ids": [
          157224,
          157433,
          157434,
          158025
        ],
        "matching_image_count": 4,
        "matching_parent_post_count": 4,
        "matching_author_count": 3
      },
      {
        "blog_title": "Clinical Precision: Metallic Silver Squeeze Tubes",
        "trend_name": "Silver-Capped Squeeze Tubes",
        "trend_type": "beauty",
        "trend_trajectory": "net_new",
        "historical_note": "A shift toward clinical-chic premium packaging that suggests high-efficacy formulas.",
        "description": "Skincare products packaged within soft-squeeze plastic tubes finished with reflective, high-shine silver caps and precision applicator tips.",
        "visual_similarity_reason": "Squeeze-tube formats sharing distinct metallic silver metallic closures and targeted, narrow applicator nozzles.",
        "instagram_caption": "Precision is everything. \ud83c\udfaf Give your eyes (and targeted skin concerns) the high-performance treatment they deserve. \ud83d\udd2c\ud83e\udd0d #targetedskincare #clinicalskincare #packagingdesigner #precisionbeauty",
        "trend_signal_strength": "strong",
        "confidence_score": 0.9,
        "keywords": [
          "squeeze tube",
          "silver cap",
          "precision applicator",
          "minimalist tube"
        ],
        "example_media_refs": [
          "157996:1",
          "157996:4",
          "157997:1",
          "158001:1",
          "158234:1"
        ],
        "example_post_ids": [
          157996,
          157997,
          158001,
          158234
        ],
        "matching_image_count": 5,
        "matching_parent_post_count": 4,
        "matching_author_count": 2
      },
      {
        "blog_title": "Raw Efficacy: Unretouched Before & After Dermal Shots",
        "trend_name": "Before and After Dermal Close-Ups",
        "trend_type": "pose",
        "trend_trajectory": "net_new",
        "historical_note": "Brands are moving away from stylized lifestyle imagery toward hyper-unretouched closeups to build consumer trust.",
        "description": "Split-screen or compiled carousel slides depicting ultra-close-up, unretouched facial skin textures representing clear transformation or redness reduction.",
        "visual_similarity_reason": "Macro facial close-ups highlighting unretouched skin conditions (acne, redness, fine lines) alongside dramatic, verified results.",
        "instagram_caption": "Because real results don\u2019t need an Instagram filter. \ud83d\udcf8 Real, raw skin showing exactly what unadulterated clinical ingredients can do. \ud83e\uddea\u2728 #unretouchedskin #skintransformation #clinicalefficacy #skinproud",
        "trend_signal_strength": "strong",
        "confidence_score": 0.93,
        "keywords": [
          "before and after",
          "skincare results",
          "unretouched skin",
          "dermal closeup"
        ],
        "example_media_refs": [
          "158942:3",
          "157711:3",
          "157711:4",
          "157389:1",
          "158442:1",
          "157660:1"
        ],
        "example_post_ids": [
          158942,
          157711,
          157389,
          158442,
          157660
        ],
        "matching_image_count": 6,
        "matching_parent_post_count": 5,
        "matching_author_count": 5
      }
    ],
    "overview_title": "Latest Trends",
    "overview_description": "The beauty landscape is pivoting toward high-performance tactile experiences, anchored by precision formulas like @loopsbeauty\u2019s hydrogel eye patches and @dermelect\u2019s silver-capped squeeze tubes that elevate daily skin preparation. Portability and visual drama dominate the feed as on-the-go stick formulas from @peach_slices meet the mesmerizing aesthetic of @ubeauty\u2019s bubble-rich gel swatches. This season, clinical transparency reigns supreme, visualized through high-contrast cobalt and orange packaging by @saintcrewe and unretouched dermal close-ups from @beekman1802 that prove real-time product efficacy.",
    "generation_diagnostics": {
      "available": true,
      "generated_at": "2026-07-10T12:26:06.506539Z",
      "tag": "skincare",
      "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-26T12:25:39.264855Z",
        "media_scope": "all_media",
        "scoped_post_count": 0,
        "batch_size": 500,
        "max_batches": 20,
        "batch_count": 1,
        "images_requested": 0,
        "images_analyzed": 0,
        "posts_touched": 0,
        "reached_batch_cap": false,
        "batches": [
          {
            "batch_number": 1,
            "images_requested": 0,
            "images_analyzed": 0,
            "posts_touched": 0,
            "completion_reconciled": false
          }
        ]
      },
      "chunking": {
        "enabled": true,
        "chunk_number": 1,
        "chunk_count": 3,
        "max_posts_per_chunk": 200,
        "max_media_per_chunk": 500,
        "chunk_post_count": 200,
        "chunk_media_count": 313,
        "full_source_post_count": 1629,
        "full_eligible_post_count": 432,
        "full_source_media_count": 545
      },
      "criteria": {
        "time_window_days": 14,
        "window_start": "2026-06-26T12:25:39.264855Z",
        "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": 1629,
      "source_media_count": 545,
      "eligible_post_count": 432,
      "chunk_post_count": 200,
      "chunk_media_count": 313,
      "analyzed_post_count": 200,
      "analyzed_post_ids": [
        158942,
        157923,
        158864,
        158025,
        158991,
        159002,
        158643,
        154953,
        158059,
        157504,
        157084,
        158736,
        158930,
        157433,
        157001,
        158603,
        157641,
        158320,
        157996,
        158416,
        158807,
        157711,
        159046,
        158786,
        157724,
        157622,
        156961,
        158737,
        157224,
        158777,
        157806,
        157970,
        158828,
        158657,
        157415,
        157940,
        158795,
        158931,
        157652,
        157434,
        158912,
        158400,
        157149,
        158168,
        158808,
        156973,
        158041,
        158818,
        157997,
        158804,
        157827,
        157389,
        158350,
        158809,
        159105,
        157314,
        158710,
        157673,
        158852,
        158633,
        157645,
        158554,
        158558,
        157315,
        157659,
        157197,
        158899,
        157638,
        157176,
        158583,
        157689,
        157439,
        158317,
        158758,
        158792,
        158858,
        158372,
        158892,
        158916,
        157037,
        158933,
        157279,
        156986,
        157754,
        158386,
        157018,
        158532,
        157738,
        158608,
        158822,
        157782,
        158617,
        157365,
        157530,
        157834,
        158349,
        157252,
        157554,
        159081,
        157397,
        157430,
        157507,
        157345,
        157897,
        157597,
        157112,
        158063,
        157543,
        157618,
        158022,
        158351,
        158441,
        157950,
        158099,
        157824,
        157718,
        157259,
        157639,
        158011,
        158490,
        157767,
        158046,
        158970,
        157266,
        158325,
        156946,
        158947,
        158112,
        157521,
        158196,
        158132,
        157877,
        157289,
        157052,
        157130,
        158301,
        157131,
        158376,
        157376,
        157132,
        158466,
        158418,
        159106,
        158243,
        158442,
        158165,
        159057,
        157909,
        158197,
        158600,
        157775,
        158665,
        159014,
        156968,
        157177,
        158039,
        158234,
        157088,
        158491,
        157187,
        159023,
        157406,
        156997,
        157396,
        158645,
        157869,
        157708,
        157846,
        157076,
        158364,
        158283,
        157421,
        158726,
        158001,
        157608,
        157574,
        157451,
        157660,
        159045,
        158878,
        157891,
        157316,
        157113,
        158373,
        158727,
        157685,
        157470,
        158570,
        157483,
        158733,
        157500,
        158793,
        157898,
        158759,
        157299,
        158833,
        158893,
        158917,
        158501,
        158934
      ],
      "analyzed_media_count": 313,
      "analyzed_media_refs": [
        "158942:3",
        "157923:1",
        "157923:3",
        "158864:4",
        "158864:5",
        "158864:7",
        "158025:1",
        "158025:2",
        "158025:3",
        "158025:4",
        "158991:1",
        "158991:2",
        "158991:3",
        "158991:4",
        "158991:5",
        "158991:6",
        "158991:7",
        "158991:8",
        "158991:9",
        "158991:10",
        "159002:1",
        "159002:2",
        "159002:3",
        "159002:4",
        "159002:5",
        "158643:3",
        "158643:4",
        "158643:5",
        "154953:1",
        "158059:1",
        "158059:2",
        "158059:3",
        "158059:4",
        "158059:5",
        "158059:6",
        "157504:2",
        "157504:4",
        "157084:2",
        "157084:3",
        "157084:4",
        "157084:5",
        "158736:3",
        "158736:4",
        "158930:1",
        "158930:2",
        "157433:2",
        "157433:3",
        "157433:5",
        "157433:6",
        "157001:3",
        "157001:4",
        "158603:2",
        "158603:3",
        "158603:4",
        "157641:2",
        "158320:1",
        "158320:2",
        "157996:1",
        "157996:2",
        "157996:3",
        "157996:4",
        "157996:5",
        "158416:2",
        "158416:3",
        "158807:1",
        "157711:1",
        "157711:2",
        "157711:3",
        "157711:4",
        "157711:5",
        "159046:1",
        "159046:2",
        "158786:1",
        "157724:2",
        "157622:1",
        "157622:2",
        "157622:3",
        "156961:1",
        "156961:2",
        "156961:3",
        "158737:1",
        "158737:2",
        "158737:3",
        "158737:4",
        "157224:1",
        "157224:2",
        "158777:1",
        "157806:1",
        "157806:2",
        "157806:3",
        "157970:1",
        "157970:2",
        "157970:3",
        "157970:4",
        "158828:1",
        "158657:1",
        "158657:2",
        "158657:4",
        "157415:1",
        "157415:2",
        "157415:3",
        "157415:4",
        "157415:5",
        "157940:1",
        "157940:2",
        "157940:3",
        "157940:4",
        "157940:5",
        "157940:6",
        "158795:1",
        "158931:1",
        "158931:2",
        "158931:3",
        "157652:1",
        "157652:2",
        "157652:3",
        "157652:4",
        "157652:5",
        "157434:1",
        "157434:2",
        "157434:3",
        "157434:4",
        "157434:5",
        "158912:1",
        "158912:2",
        "158912:3",
        "158400:1",
        "158400:2",
        "157149:1",
        "157149:2",
        "158168:1",
        "158168:2",
        "158168:3",
        "158168:4",
        "158808:1",
        "156973:1",
        "156973:2",
        "158041:1",
        "158041:2",
        "158041:3",
        "158818:1",
        "157997:1",
        "157997:2",
        "158804:1",
        "158804:2",
        "158804:3",
        "157827:1",
        "157827:2",
        "157827:3",
        "157389:1",
        "157389:2",
        "157389:3",
        "158350:1",
        "158350:2",
        "158350:3",
        "158809:1",
        "159105:1",
        "157314:1",
        "158710:1",
        "157673:1",
        "158852:1",
        "158633:1",
        "157645:1",
        "158554:1",
        "158558:1",
        "157315:1",
        "157659:1",
        "157197:1",
        "158899:1",
        "157638:1",
        "157176:1",
        "158583:1",
        "157689:1",
        "157439:1",
        "158317:1",
        "158758:1",
        "158758:2",
        "158758:3",
        "158758:4",
        "158758:5",
        "158758:6",
        "158792:1",
        "158858:1",
        "158372:1",
        "158892:1",
        "158916:1",
        "157037:1",
        "158933:1",
        "157279:1",
        "156986:1",
        "157754:1",
        "158386:1",
        "157018:1",
        "158532:1",
        "157738:1",
        "158608:1",
        "158822:1",
        "157782:1",
        "157782:2",
        "158617:1",
        "157365:1",
        "157530:1",
        "157834:1",
        "158349:1",
        "157252:1",
        "157554:1",
        "159081:1",
        "157397:1",
        "157430:1",
        "157507:1",
        "157345:1",
        "157897:1",
        "157597:1",
        "157112:1",
        "158063:1",
        "157543:1",
        "157618:1",
        "158022:1",
        "158351:1",
        "158441:1",
        "157950:1",
        "158099:1",
        "157824:1",
        "157718:1",
        "157259:1",
        "157639:1",
        "158011:1",
        "158490:1",
        "157767:1",
        "158046:1",
        "158970:1",
        "157266:1",
        "158325:1",
        "156946:1",
        "158947:1",
        "158112:1",
        "157521:1",
        "158196:1",
        "158132:1",
        "157877:1",
        "157289:1",
        "157052:1",
        "157130:1",
        "158301:1",
        "157131:1",
        "158376:1",
        "158376:2",
        "158376:3",
        "157376:1",
        "157132:1",
        "158466:1",
        "158418:1",
        "159106:1",
        "158243:1",
        "158442:1",
        "158165:1",
        "159057:1",
        "157909:1",
        "158197:1",
        "158600:1",
        "157775:1",
        "158665:1",
        "159014:1",
        "156968:1",
        "157177:1",
        "158039:1",
        "158234:1",
        "157088:1",
        "158491:1",
        "157187:1",
        "159023:1",
        "157406:1",
        "156997:1",
        "157396:1",
        "158645:1",
        "157869:1",
        "157708:1",
        "157846:1",
        "157076:1",
        "158364:1",
        "158283:1",
        "157421:1",
        "158726:1",
        "158001:1",
        "157608:1",
        "157574:1",
        "157451:1",
        "157660:1",
        "159045:1",
        "158878:1",
        "157891:1",
        "157316:1",
        "157113:1",
        "158373:1",
        "158727:1",
        "157685:1",
        "157470:1",
        "158570:1",
        "157483:1",
        "157483:2",
        "157483:3",
        "157483:4",
        "158733:1",
        "157500:1",
        "158793:1",
        "157898:1",
        "158759:1",
        "157299:1",
        "158833:1",
        "158893:1",
        "158917:1",
        "158501:1",
        "158934:1"
      ],
      "full_source_prompt_character_count": 177481,
      "source_prompt_character_count": 177481,
      "prompt_character_count": 177481,
      "prompt_character_limit": 300000,
      "prompt_was_truncated": false,
      "candidate_prompt_character_count": 181640,
      "validation_prompt_character_count": 187604,
      "candidate_reasoning_scratchpad": "We are observing a heavy focus on highly tactile product texture swatches, specifically clinical gel-creams and viscous, air-bubbled serums. On-the-go skincare and protective sun-care stick formats are quickly taking over visual styling, while educational content focusing heavily on skin barrier rehabilitation is visually organized around high-contrast, informative typography grids.",
      "validation_reasoning_scratchpad": "We have validated and expanded the candidate clusters based on visual pattern consistency within the raw post data. Skincare sticks and portable balms have emerged as a dominant travel trend, while before-and-after skin texture closeups show a clear shift toward unretouched clinical transparency. Texture swatches featuring clear gel with micro-bubbles are highly prevalent and represent a key sensory marketing tool for modern beauty brands.",
      "ai_discovered_candidate_count": 7,
      "candidate_trends": [
        {
          "candidate_name": "Hydrogel Eye Masks & Patches",
          "trend_type": "beauty",
          "visual_axis": "beauty",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "157504:4",
            "158320:1",
            "158818:1",
            "158165:1"
          ],
          "visual_cues": [
            "under-eye patches",
            "hydrogel mask",
            "skincare application close-up",
            "pink or white patches"
          ]
        },
        {
          "candidate_name": "On-The-Go Skincare Sticks & Balms",
          "trend_type": "beauty",
          "visual_axis": "packaging",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "157970:4",
            "156961:2",
            "157345:1",
            "157224:1"
          ],
          "visual_cues": [
            "solid balm format",
            "roll-on applicator",
            "skincare stick",
            "teal or blue tube packaging",
            "portable beauty"
          ]
        },
        {
          "candidate_name": "Tactile Gel & Bubble Swatches",
          "trend_type": "texture",
          "visual_axis": "texture",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "159002:1",
            "158059:5",
            "157149:1",
            "156973:2"
          ],
          "visual_cues": [
            "clear gel",
            "air bubbles",
            "viscous liquid",
            "skincare swatch",
            "macro texture shot"
          ]
        },
        {
          "candidate_name": "Blue and Orange Dual Branding palettes",
          "trend_type": "color",
          "visual_axis": "color",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "157224:1",
            "157433:3",
            "157434:5",
            "158025:1"
          ],
          "visual_cues": [
            "blue packaging",
            "orange branding",
            "teal base",
            "vibrant color contrast"
          ]
        },
        {
          "candidate_name": "Yellow Grid Infographics",
          "trend_type": "other",
          "visual_axis": "composition",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "157434:2",
            "157434:3",
            "157434:4",
            "158416:2"
          ],
          "visual_cues": [
            "yellow grid background",
            "skincare education",
            "skincare myth-busting text",
            "infographic layout"
          ]
        },
        {
          "candidate_name": "Silver-Capped Squeeze Tubes",
          "trend_type": "beauty",
          "visual_axis": "packaging",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "157996:1",
            "157996:4",
            "157997:1",
            "158001:1"
          ],
          "visual_cues": [
            "squeeze tube",
            "silver/metallic cap",
            "precision applicator tip",
            "blue or pastel tube"
          ]
        },
        {
          "candidate_name": "Before and After Dermal Close-Ups",
          "trend_type": "pose",
          "visual_axis": "composition",
          "historical_relationship": "net_new",
          "seed_media_count": 4,
          "seed_media_refs": [
            "158942:3",
            "157711:3",
            "157711:4",
            "157389:1"
          ],
          "visual_cues": [
            "before and after",
            "skincare results",
            "unretouched skin",
            "dermal texture close-up",
            "redness reduction"
          ]
        }
      ],
      "ai_candidate_trend_count": 7,
      "ai_validated_trend_count_before_filter": 7,
      "accepted_trend_count": 6,
      "rejected_trend_count": 1,
      "rejected_trends": [
        {
          "trend_name": "Yellow Grid Infographics",
          "confidence_score": 0.88,
          "valid_matching_image_count": 2,
          "matching_parent_post_count": 1,
          "matching_author_count": 1,
          "invalid_or_out_of_scope_media_refs": [],
          "unparseable_media_refs": [],
          "excluded_same_post_media_refs": [
            "157434:3",
            "157434:4"
          ],
          "reasons": [
            "Only 2 valid matching images; minimum is 4.",
            "Images came from only 1 parent posts; minimum is 3."
          ]
        }
      ]
    }
  }
}