#!/usr/bin/env python3
"""Organic vs paid split + marginal like rates 2026-11-11."""
import json, re
from datetime import datetime, timezone
RAW = "/home/kiro/trend-engine/trends/x/raw"
cur = json.load(open(f"{RAW}/scan_results_2026-11-11_FULL.json"))
prev = json.load(open(f"{RAW}/scan_results_2026-11-10_FULL.json"))

CORE = set("""runwayml CuriousRefuge nofilmschool venturetwins Kling_ai paultrillo c_valenzuelab
karenxcheng higgsfield pika_labs EHuanglu azed_ai JeffSynthesized ai_filmmaker Magiermogul
WuxiaRocks JiamingSuen higgsfield_ai Chandan_Perla CharaspowerAI AIWarper ItsMaryamAi
ElsaSofia__AI AI__TSUBAKI Flovaai openart_ai perplexity_ai heyglif""".split())
core = [t for t in cur["qualifying"] if t["handle"] in CORE]
core.sort(key=lambda x: -x["score"])

print("== CORE: like-rate classification (rate<0.10% at >20k views = paid-view push) ==")
for i, t in enumerate(core[:25], 1):
    r = t["likes"]/t["views"]*100 if t["views"] else 0
    tag = "PAID?" if (t["views"] > 20000 and r < 0.10) else "org"
    print(f"{i:2d}|{tag}|@{t['handle']:14s}|{t['likes']:>6}L|{t['views']:>9}V|{r:.3f}%|{t['score']:>7.0f}|{t['date']}")

print("\n== ORGANIC-ONLY CORE TOP 10 (rate >= 0.10% or views < 20k) ==")
org = [t for t in core if not (t["views"] > 20000 and (t["likes"]/t["views"]*100) < 0.10)]
for i, t in enumerate(org[:10], 1):
    r = t["likes"]/t["views"]*100
    print(f"{i:2d}|@{t['handle']:14s}|{t['likes']:>6}L|{t['views']:>9}V|{r:.3f}%|{t['date']}|{t['url']}")
print(f"  organic {len(org)} of {len(core)} core | organic top10 cutoff {org[9]['score']:.0f} | rank11 {org[10]['score']:.0f}")

print("\n== MARGINAL 24H RATES (views added per like added) ==")
pm = {t["url"].rsplit("/", 1)[-1]: t for t in prev["qualifying"]}
rows = []
for t in core:
    tid = t["url"].rsplit("/", 1)[-1]
    p = pm.get(tid)
    if not p: continue
    dl, dv = t["likes"]-p["likes"], t["views"]-p["views"]
    if dv <= 0: continue
    rows.append((dv, dl, t, dv/dl if dl else 999999))
rows.sort(key=lambda x: -x[0])
for dv, dl, t, vpl in rows[:12]:
    print(f"  @{t['handle']:14s} +{dv:>9}V +{dl:>6}L -> {'BUYING' if vpl>1000 else 'organic'} "
          f"({vpl:,.0f} views/like) | {t['date']} | {t['url']}")
