{"fixes":["Reddit thread finder: also matches the mods' 'Official Disucssion' typo and does a sort=new search; Resident Evil now has its thread (96 comments).","Critics/audience source: fall back to /m/<slug>_<year> then /m/<slug>, accepted only if the page's release date is within 21 days of the BOM release; Primetime now has 86%/77%.","Other-sub posts: used for sentiment only if the film's title appears (whole-phrase) in the post title; dropped 3 r/MovieSuggestions posts about The Wicker Man (1973)/folk horror from Wicker.","Word-boundary title matching everywhere (no more substring hits like 'Verity' in 'severity').","CinemaScore: grade must appear in a r/boxoffice post title that also names the film; source post recorded.","Moderator/AMA notices are excluded from sentiment (Whalefall's top 'comment' was an AMA announcement).","Box office: if the theater count moved more than ±40% vs the same weekday last week, the % change isn't scored (YCSE 855→2655 theaters, Primetime 1451→321).","Pathway comparison dropped Primetime: --top N counted the re-release 'The Devils 2026 Re-release' (#15 by daily gross) as one of the N, so the default --top 15 comparison runs stopped at 14 ranked films and Primetime (#16) fell off. The live run had used --top 16. Fixed in run.py: --top now counts ranked films only; re-releases are listed but don't use a slot."],"movies":[{"title":"Forgotten Island","before":{"bucket":"Watch this","score":82.7,"confidence":1.0,"signals":{"reddit":82.1,"audience":95.0,"critics":95.0,"cinemascore":92,"boxoffice":31.125000000000007}},"after":{"bucket":"Watch this","score":82.7,"confidence":1.0,"signals":{"reddit":82.1,"audience":95.0,"critics":95.0,"cinemascore":92,"boxoffice":31.125000000000007}},"bucket_changed":false,"rank_before":1,"rank_after":1},{"title":"Wicker","before":{"bucket":"Watch this","score":81.9,"confidence":0.95,"signals":{"reddit":77.0,"audience":94.0,"critics":94.0,"cinemascore":null,"boxoffice":55.13248325606442}},"after":{"bucket":"Watch this","score":81.0,"confidence":0.95,"signals":{"reddit":75.2,"audience":94.0,"critics":94.0,"cinemascore":null,"boxoffice":55.13248325606442}},"bucket_changed":false,"rank_before":3,"rank_after":2},{"title":"You Can See Everything","before":{"bucket":"Watch this","score":82.6,"confidence":0.95,"signals":{"reddit":66.0,"audience":96.0,"critics":98.0,"cinemascore":null,"boxoffice":100}},"after":{"bucket":"Watch this","score":80.6,"confidence":0.85,"signals":{"reddit":66.0,"audience":96.0,"critics":98.0,"cinemascore":null,"boxoffice":null}},"bucket_changed":false,"rank_before":2,"rank_after":3},{"title":"Primetime","before":{"bucket":"Depends on your taste","score":67.2,"confidence":0.55,"signals":{"reddit":78.8,"audience":null,"critics":null,"cinemascore":null,"boxoffice":14.75}},"after":{"bucket":"Watch this","score":80.1,"confidence":0.85,"signals":{"reddit":78.8,"audience":77.0,"critics":86.0,"cinemascore":null,"boxoffice":null}},"bucket_changed":true,"rank_before":9,"rank_after":4},{"title":"Wildwood","before":{"bucket":"Watch this","score":80.0,"confidence":1.0,"signals":{"reddit":67.9,"audience":97.0,"critics":100.0,"cinemascore":92,"boxoffice":54.81866751019243}},"after":{"bucket":"Watch this","score":80.0,"confidence":1.0,"signals":{"reddit":67.9,"audience":97.0,"critics":100.0,"cinemascore":92,"boxoffice":54.81866751019243}},"bucket_changed":false,"rank_before":4,"rank_after":5},{"title":"Sense and Sensibility","before":{"bucket":"Watch this","score":79.3,"confidence":1.0,"signals":{"reddit":87.9,"audience":88.0,"critics":76.0,"cinemascore":85,"boxoffice":27.125000000000004}},"after":{"bucket":"Watch this","score":79.3,"confidence":1.0,"signals":{"reddit":87.9,"audience":88.0,"critics":76.0,"cinemascore":85,"boxoffice":27.125000000000004}},"bucket_changed":false,"rank_before":5,"rank_after":6},{"title":"Clayface","before":{"bucket":"Watch this","score":76.5,"confidence":1.0,"signals":{"reddit":71.7,"audience":94.0,"critics":75.0,"cinemascore":85,"boxoffice":61.955208759021914}},"after":{"bucket":"Watch this","score":76.5,"confidence":1.0,"signals":{"reddit":71.7,"audience":94.0,"critics":75.0,"cinemascore":85,"boxoffice":61.955208759021914}},"bucket_changed":false,"rank_before":6,"rank_after":7},{"title":"Heart of the Beast","before":{"bucket":"Depends on your taste","score":74.0,"confidence":0.95,"signals":{"reddit":66.0,"audience":95.0,"critics":85.0,"cinemascore":null,"boxoffice":46.125}},"after":{"bucket":"Depends on your taste","score":74.0,"confidence":0.95,"signals":{"reddit":66.0,"audience":95.0,"critics":85.0,"cinemascore":null,"boxoffice":46.125}},"bucket_changed":false,"rank_before":8,"rank_after":8},{"title":"Resident Evil","before":{"bucket":"Depends on your taste","score":85.0,"confidence":0.5,"signals":{"reddit":null,"audience":90.0,"critics":96.0,"cinemascore":null,"boxoffice":52.875}},"after":{"bucket":"Depends on your taste","score":70.9,"confidence":0.95,"signals":{"reddit":55.3,"audience":90.0,"critics":96.0,"cinemascore":null,"boxoffice":52.875}},"bucket_changed":false,"rank_before":7,"rank_after":9},{"title":"A Talent for Murder","before":{"bucket":"Depends on your taste","score":66.1,"confidence":0.3,"signals":{"reddit":null,"audience":null,"critics":78.0,"cinemascore":null,"boxoffice":42.369260603804705}},"after":{"bucket":"Depends on your taste","score":66.1,"confidence":0.3,"signals":{"reddit":null,"audience":null,"critics":78.0,"cinemascore":null,"boxoffice":42.369260603804705}},"bucket_changed":false,"rank_before":10,"rank_after":10},{"title":"Whalefall","before":{"bucket":"Depends on your taste","score":64.0,"confidence":1.0,"signals":{"reddit":60.9,"audience":81.0,"critics":73.0,"cinemascore":70,"boxoffice":22.874999999999996}},"after":{"bucket":"Depends on your taste","score":62.8,"confidence":1.0,"signals":{"reddit":58.2,"audience":81.0,"critics":73.0,"cinemascore":70,"boxoffice":22.874999999999996}},"bucket_changed":false,"rank_before":11,"rank_after":11},{"title":"Klara and the Sun","before":{"bucket":"Skip","score":51.8,"confidence":0.75,"signals":{"reddit":67.2,"audience":null,"critics":24.0,"cinemascore":null,"boxoffice":38.31596456423735}},"after":{"bucket":"Skip","score":51.8,"confidence":0.75,"signals":{"reddit":67.2,"audience":null,"critics":24.0,"cinemascore":null,"boxoffice":38.31596456423735}},"bucket_changed":false,"rank_before":12,"rank_after":12},{"title":"Verity","before":{"bucket":"Skip","score":51.7,"confidence":1.0,"signals":{"reddit":52.5,"audience":71.0,"critics":31.0,"cinemascore":55,"boxoffice":49.125}},"after":{"bucket":"Skip","score":51.7,"confidence":1.0,"signals":{"reddit":52.5,"audience":71.0,"critics":31.0,"cinemascore":55,"boxoffice":49.125}},"bucket_changed":false,"rank_before":13,"rank_after":13},{"title":"Street Fighter","before":{"bucket":"Skip","score":49.5,"confidence":0.95,"signals":{"reddit":49.4,"audience":78.0,"critics":41.0,"cinemascore":null,"boxoffice":10.124999999999993}},"after":{"bucket":"Skip","score":49.5,"confidence":0.95,"signals":{"reddit":49.4,"audience":78.0,"critics":41.0,"cinemascore":null,"boxoffice":10.124999999999993}},"bucket_changed":false,"rank_before":14,"rank_after":14},{"title":"Other Mommy","before":{"bucket":"Skip","score":42.3,"confidence":1.0,"signals":{"reddit":51.2,"audience":48.0,"critics":19.0,"cinemascore":30,"boxoffice":43.875}},"after":{"bucket":"Skip","score":42.3,"confidence":1.0,"signals":{"reddit":51.2,"audience":48.0,"critics":19.0,"cinemascore":30,"boxoffice":43.875}},"bucket_changed":false,"rank_before":15,"rank_after":15}],"changelog":[{"date":"2026-10-25","change":"Primetime restored in the pathway comparison","detail":"Pathway comparison dropped Primetime: --top N counted the re-release 'The Devils 2026 Re-release' (#15 by daily gross) as one of the N, so the default --top 15 comparison runs stopped at 14 ranked films and Primetime (#16) fell off. The live run had used --top 16. Fixed in run.py: --top now counts ranked films only; re-releases are listed but don't use a slot.","cost":{"note":"Primetime's 81 uncached comments (17 were already cached from the labelled sets) were scored once per OpenRouter pathway; every other comment came from cache/stance/.","usd_by_pathway":{"or_claude-haiku-5.5":0.0069,"or_claude-opus-5.5":0.2852,"or_claude-sonnet-5.5":0.134,"or_gemini-3.5-flash-lite":0.015,"or_gemini-4-argon":0.0998,"or_gpt-6-luna":0.0056,"or_gpt-6.1-sol":0.0832,"or_grok-4.7":0.2138},"usd_total":0.8435,"api_calls_per_pathway":81}},{"date":"2026-10-25","change":"Bucket thresholds v2: Watch cutoff = max(75, Q3 of this slate's scores)","old":{"watch":"score >= 75 (absolute) + confidence >= 0.55 + Reddit present + |aud-crit| < 30 + consensus >= 0.15","skip":"score < 55 and confidence >= 0.45"},"new":{"watch":"score>=90.45 [= max(75, Q3 of this slate)], confidence>=0.55, Reddit present, |aud-crit|<30, consensus>=0.15","skip":"score < 55 and confidence >= 0.45 (unchanged)","this_run":{"rule":"watch cutoff = max(75, Q3 of this slate's scores)","n_scores":15,"q3":90.45,"floor":75.0,"cutoff":90.45,"binding":"Q3"}},"why":"Stance models score the Reddit signal as the share of opinionated commenters who liked the film; in self-selected discussion threads that is 93-98 for most films, so 8 of 15 films cleared the absolute 75 under GPT-6.1 Sol. A relative bar (top quarter of what is playing, never below 75) is scale-independent, so one rule works for every pathway. Skip stays absolute: it already picked the same 4 films under every pathway. Weights are unchanged (reddit .45, audience .20, critics .20, cinemascore .05, boxoffice .10).","earlier_related":"Reddit consensus was redefined earlier (501f2c3): |pos - neg| / (pos + neg), weighted, replacing v1's 1 - sd(VADER compound)/0.8, which was scale-dependent and collapsed to 0 for model probabilities. Consensus gate stays >= 0.15."},{"date":"2026-10-25","change":"Live comment model: siebert+opinion -> GPT-6.1 Sol stance (openrouter:openai/gpt-6.1-sol)","why":"Most accurate pathway on the labelled sets (held-out 86.6% vs siebert+opinion 58.9%, challenge 93% vs 76%; see compare.html). Live list is built from cached per-comment verdicts (cache/stance/), so the switch cost nothing beyond the Primetime fill.","cheap_rerun_option":"openrouter:openai/gpt-6-luna (held-out 80.4%, challenge 93%; ~$0.10 per full cold run of 1,381 comments vs ~$1.47 for Sol, estimated from all API calls so far)","still_available":"MR_SENTIMENT=siebert+opinion (previous live) and MR_SENTIMENT=vader (v1); all pathways on compare.html","movies":[{"title":"You Can See Everything","before":["Depends on your taste",70.6],"after":["Watch this",95.0]},{"title":"Wicker","before":["Watch this",79.1],"after":["Watch this",91.9]},{"title":"Wildwood","before":["Watch this",81.0],"after":["Watch this",91.7]},{"title":"Resident Evil","before":["Depends on your taste",72.0],"after":["Watch this",91.1]},{"title":"Primetime","before":["Watch this",80.7],"after":["Depends on your taste",89.8]},{"title":"Clayface","before":["Depends on your taste",72.6],"after":["Depends on your taste",87.9]},{"title":"Forgotten Island","before":["Watch this",79.3],"after":["Depends on your taste",87.6]},{"title":"Heart of the Beast","before":["Depends on your taste",66.7],"after":["Depends on your taste",81.4]},{"title":"Sense and Sensibility","before":["Watch this",75.4],"after":["Depends on your taste",74.0]},{"title":"Whalefall","before":["Depends on your taste",66.0],"after":["Depends on your taste",72.5]},{"title":"A Talent for Murder","before":["Depends on your taste",66.1],"after":["Depends on your taste",66.1]},{"title":"Other Mommy","before":["Skip",35.4],"after":["Skip",44.4]},{"title":"Verity","before":["Skip",35.2],"after":["Skip",36.1]},{"title":"Street Fighter","before":["Skip",40.3],"after":["Skip",35.5]},{"title":"Klara and the Sun","before":["Skip",27.6],"after":["Skip",24.8]}]}]}