{
  "snapshot": "2026-08-31",
  "book": {
    "title": "Nobody Knows Anything. We Checked.",
    "subtitle": "What 74,571 films and 1,571 screenplays reveal about how movies actually work",
    "author": "Hollywood Metrics",
    "pages": 366,
    "n": 1,
    "independentPass": false
  },
  "outcomes": [
    {
      "key": "master_score",
      "label": "Master score"
    },
    {
      "key": "imdb_rating",
      "label": "Audience rating"
    },
    {
      "key": "rt_tomatometer",
      "label": "Critic score"
    },
    {
      "key": "worldwide_gross",
      "label": "Worldwide gross"
    },
    {
      "key": "roi",
      "label": "Return on budget"
    },
    {
      "key": "oscar_wins",
      "label": "Academy Award wins"
    },
    {
      "key": "critical_score",
      "label": "Composite critic score"
    },
    {
      "key": "audience_score",
      "label": "Composite audience score"
    }
  ],
  "original": [
    {
      "key": "scene_count",
      "label": "Scene count",
      "unit": "scenes",
      "definition": "The number of scene headings detected. A scene heading is a line the parser reads as a slugline, so this counts formatting, not narrative units.",
      "values": {
        "master_score": {
          "r": -0.04,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0008,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0452,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0289,
          "n": 1300
        },
        "roi": {
          "r": -0.0215,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0002,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0265,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0067,
          "n": 1234
        }
      }
    },
    {
      "key": "avg_scene_length",
      "label": "Average scene length",
      "unit": "lines",
      "definition": "Mean of action lines plus dialogue lines per scene. Measured in lines rather than pages or seconds.",
      "values": {
        "master_score": {
          "r": 0.0595,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0538,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0351,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0194,
          "n": 1300
        },
        "roi": {
          "r": 0.0022,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0198,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0515,
          "n": 1499
        },
        "audience_score": {
          "r": 0.0507,
          "n": 1234
        }
      }
    },
    {
      "key": "int_ext_ratio",
      "label": "Interior to exterior ratio",
      "unit": "ratio",
      "definition": "Interior scenes divided by exterior scenes, from the INT. and EXT. markers in the sluglines. A screenplay with no exterior scenes divides by one rather than by zero, so the value is the interior count.",
      "values": {
        "master_score": {
          "r": -0.0217,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0397,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0254,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0683,
          "n": 1300
        },
        "roi": {
          "r": -0.0279,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0222,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0302,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0175,
          "n": 1234
        }
      }
    },
    {
      "key": "scene_length_variance",
      "label": "Scene length variance",
      "unit": "lines squared",
      "definition": "Sample variance of the scene lengths above. High values mean a mix of very long and very short scenes.",
      "values": {
        "master_score": {
          "r": -0.0183,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.023,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0006,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0035,
          "n": 1300
        },
        "roi": {
          "r": -0.0173,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0143,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0111,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0051,
          "n": 1234
        }
      }
    },
    {
      "key": "total_pages",
      "label": "Total pages",
      "unit": "pages",
      "definition": "Total lines divided by fifty-six, the standard lines per screenplay page. An estimate from the text, not a page count from a PDF.",
      "values": {
        "master_score": {
          "r": 0.0393,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0873,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0223,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.1416,
          "n": 1300
        },
        "roi": {
          "r": -0.0629,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.1081,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0592,
          "n": 1499
        },
        "audience_score": {
          "r": 0.036,
          "n": 1234
        }
      }
    },
    {
      "key": "transition_density",
      "label": "Transition density",
      "unit": "per page",
      "definition": "Count of lines beginning FADE IN, FADE OUT, FADE TO, CUT TO, DISSOLVE, SMASH CUT or MATCH CUT, divided by the estimated page count.",
      "values": {
        "master_score": {
          "r": -0.0327,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0243,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0029,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0551,
          "n": 1300
        },
        "roi": {
          "r": 0.0105,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0041,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0171,
          "n": 1499
        },
        "audience_score": {
          "r": 0.001,
          "n": 1234
        }
      }
    },
    {
      "key": "unique_character_count",
      "label": "Distinct speaking characters",
      "unit": "characters",
      "definition": "The number of distinct character cues the parser found. A character who appears under two spellings counts twice; one who never speaks does not count at all.",
      "values": {
        "master_score": {
          "r": 0.0086,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0481,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0154,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0526,
          "n": 1300
        },
        "roi": {
          "r": 0.021,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0106,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0295,
          "n": 1499
        },
        "audience_score": {
          "r": 0.062,
          "n": 1234
        }
      }
    },
    {
      "key": "dialogue_ratio",
      "label": "Dialogue ratio",
      "unit": "share of lines",
      "definition": "Dialogue lines divided by total lines. This is the feature that read exactly zero for three quarters of the corpus before the parser was repaired, and chapter 19 is what that did.",
      "values": {
        "master_score": {
          "r": 0.0018,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0415,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0279,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0546,
          "n": 1300
        },
        "roi": {
          "r": 0.0067,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0054,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0306,
          "n": 1499
        },
        "audience_score": {
          "r": 0.0604,
          "n": 1234
        }
      }
    },
    {
      "key": "top3_character_dominance",
      "label": "Top three character dominance",
      "unit": "share",
      "definition": "Words spoken by the three largest parts, divided by all spoken words. A two-hander scores near one; an ensemble scores low.",
      "values": {
        "master_score": {
          "r": -0.0192,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0235,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0145,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0454,
          "n": 1300
        },
        "roi": {
          "r": -0.039,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.007,
          "n": 1499
        },
        "critical_score": {
          "r": 0.008,
          "n": 1499
        },
        "audience_score": {
          "r": 0.024,
          "n": 1234
        }
      }
    },
    {
      "key": "avg_dialogue_length",
      "label": "Average speech length",
      "unit": "words",
      "definition": "Spoken words divided by the number of dialogue blocks. The average length of one uninterrupted speech.",
      "values": {
        "master_score": {
          "r": -0.0141,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0199,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0022,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0576,
          "n": 1300
        },
        "roi": {
          "r": -0.013,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.017,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0042,
          "n": 1499
        },
        "audience_score": {
          "r": 0.015,
          "n": 1234
        }
      }
    },
    {
      "key": "character_intro_rate",
      "label": "Character introduction rate",
      "unit": "per page",
      "definition": "Distinct speaking characters divided by the estimated page count. Named as a rate, computed as a density: it does not measure when characters arrive, only how many there are per page.",
      "values": {
        "master_score": {
          "r": 0.0073,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0286,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0093,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0546,
          "n": 1300
        },
        "roi": {
          "r": 0.0678,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0057,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0171,
          "n": 1499
        },
        "audience_score": {
          "r": 0.0538,
          "n": 1234
        }
      }
    },
    {
      "key": "vocabulary_richness",
      "label": "Vocabulary richness",
      "unit": "ratio",
      "definition": "Distinct words divided by total words, over the first five thousand words. A type-token ratio, sampled at a fixed length because the raw ratio falls as a document gets longer and would otherwise measure length.",
      "values": {
        "master_score": {
          "r": -0.0683,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0871,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.1343,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0029,
          "n": 1300
        },
        "roi": {
          "r": -0.0316,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0592,
          "n": 1499
        },
        "critical_score": {
          "r": -0.1163,
          "n": 1499
        },
        "audience_score": {
          "r": -0.1157,
          "n": 1234
        }
      }
    },
    {
      "key": "avg_word_length",
      "label": "Average word length",
      "unit": "characters",
      "definition": "Mean length in characters of every alphabetic word in the document, action and dialogue together.",
      "values": {
        "master_score": {
          "r": -0.0485,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0676,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0881,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0441,
          "n": 1300
        },
        "roi": {
          "r": -0.0208,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0326,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0813,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0664,
          "n": 1234
        }
      }
    },
    {
      "key": "sentiment_mean",
      "label": "Sentiment, mean",
      "unit": "score",
      "definition": "Mean VADER compound sentiment over the dialogue blocks, on a scale from minus one to plus one. VADER is a lexicon tuned on social media text, and applying it to screen dialogue is an assumption rather than a measurement.",
      "values": {
        "master_score": {
          "r": 0.057,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0914,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.1438,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0072,
          "n": 1300
        },
        "roi": {
          "r": 0.0005,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0425,
          "n": 1499
        },
        "critical_score": {
          "r": 0.1253,
          "n": 1499
        },
        "audience_score": {
          "r": 0.1362,
          "n": 1234
        }
      }
    },
    {
      "key": "sentiment_variance",
      "label": "Sentiment, variance",
      "unit": "score squared",
      "definition": "Sample variance of the same block scores. Read as emotional range.",
      "values": {
        "master_score": {
          "r": 0.0016,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0324,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0237,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0522,
          "n": 1300
        },
        "roi": {
          "r": 0.0319,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0099,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0193,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0052,
          "n": 1234
        }
      }
    },
    {
      "key": "sentiment_arc_slope",
      "label": "Sentiment arc slope",
      "unit": "score per tenth",
      "definition": "The document is cut into ten equal chunks, each chunk scored, and a straight line fitted across them. Positive means the dialogue gets more positive from start to end. A straight line through ten points is a crude summary of an emotional arc and is treated as one.",
      "values": {
        "master_score": {
          "r": 0.022,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0442,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0113,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0237,
          "n": 1300
        },
        "roi": {
          "r": -0.0145,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0216,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0246,
          "n": 1499
        },
        "audience_score": {
          "r": 0.0473,
          "n": 1234
        }
      }
    },
    {
      "key": "action_ratio",
      "label": "Action ratio",
      "unit": "share of lines",
      "definition": "Non-blank lines that are not dialogue, divided by all non-blank lines. Roughly the inverse of the dialogue ratio, and it fails in the same way when the parser fails.",
      "values": {
        "master_score": {
          "r": 0.0058,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.035,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0287,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.0614,
          "n": 1300
        },
        "roi": {
          "r": -0.0035,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0095,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0247,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0616,
          "n": 1234
        }
      }
    },
    {
      "key": "caps_density",
      "label": "Capitals density",
      "unit": "share of words",
      "definition": "Words of two or more capital letters, divided by total words. Intended to capture emphasis and sound cues; it also captures character cues and sluglines, so it is partly a measure of formatting.",
      "values": {
        "master_score": {
          "r": -0.0135,
          "n": 1499
        },
        "imdb_rating": {
          "r": -0.0126,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": -0.0327,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.1595,
          "n": 1300
        },
        "roi": {
          "r": -0.0512,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0199,
          "n": 1499
        },
        "critical_score": {
          "r": -0.0172,
          "n": 1499
        },
        "audience_score": {
          "r": -0.0216,
          "n": 1234
        }
      }
    },
    {
      "key": "exclamation_density",
      "label": "Exclamation density",
      "unit": "share of words",
      "definition": "Exclamation marks divided by total words, across the whole document.",
      "values": {
        "master_score": {
          "r": 0.0262,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0138,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.0442,
          "n": 1229
        },
        "worldwide_gross": {
          "r": 0.1566,
          "n": 1300
        },
        "roi": {
          "r": 0.0187,
          "n": 1238
        },
        "oscar_wins": {
          "r": 0.0196,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0284,
          "n": 1499
        },
        "audience_score": {
          "r": 0.069,
          "n": 1234
        }
      }
    },
    {
      "key": "question_density",
      "label": "Question density",
      "unit": "share of words",
      "definition": "Question marks divided by total words, across the whole document.",
      "values": {
        "master_score": {
          "r": 0.0361,
          "n": 1499
        },
        "imdb_rating": {
          "r": 0.0592,
          "n": 1499
        },
        "rt_tomatometer": {
          "r": 0.1216,
          "n": 1229
        },
        "worldwide_gross": {
          "r": -0.0958,
          "n": 1300
        },
        "roi": {
          "r": 0.0326,
          "n": 1238
        },
        "oscar_wins": {
          "r": -0.0543,
          "n": 1499
        },
        "critical_score": {
          "r": 0.0885,
          "n": 1499
        },
        "audience_score": {
          "r": 0.1083,
          "n": 1234
        }
      }
    }
  ],
  "corrected": [
    {
      "key": "dialogue_words",
      "label": "Volume of dialogue",
      "unit": "words",
      "definition": "Total dialogue words detected by the corrected parser.",
      "values": {
        "master_score": {
          "r": 0.0678,
          "n": 1499
        }
      }
    },
    {
      "key": "dialogue_ratio",
      "label": "Dialogue ratio",
      "unit": "share of lines",
      "definition": "Dialogue lines divided by total lines. This is the feature that read exactly zero for three quarters of the corpus before the parser was repaired, and chapter 19 is what that did.",
      "values": {
        "master_score": {
          "r": 0.0553,
          "n": 1499
        }
      }
    },
    {
      "key": "chars_text",
      "label": "Text length",
      "unit": "characters",
      "definition": "Total characters in the extracted screenplay text.",
      "values": {
        "master_score": {
          "r": 0.0526,
          "n": 1499
        }
      }
    },
    {
      "key": "unique_character_count",
      "label": "Distinct speaking characters",
      "unit": "characters",
      "definition": "The number of distinct character cues the parser found. A character who appears under two spellings counts twice; one who never speaks does not count at all.",
      "values": {
        "master_score": {
          "r": 0.051,
          "n": 1499
        }
      }
    },
    {
      "key": "total_pages",
      "label": "Total pages",
      "unit": "pages",
      "definition": "Total lines divided by fifty-six, the standard lines per screenplay page. An estimate from the text, not a page count from a PDF.",
      "values": {
        "master_score": {
          "r": 0.0392,
          "n": 1499
        }
      }
    },
    {
      "key": "avg_scene_length",
      "label": "Average scene length",
      "unit": "lines",
      "definition": "Mean of action lines plus dialogue lines per scene. Measured in lines rather than pages or seconds.",
      "values": {
        "master_score": {
          "r": 0.0375,
          "n": 1499
        }
      }
    },
    {
      "key": "words_text",
      "label": "Total words",
      "unit": "words",
      "definition": "Total words in the extracted screenplay text.",
      "values": {
        "master_score": {
          "r": 0.0375,
          "n": 1499
        }
      }
    },
    {
      "key": "character_intro_rate",
      "label": "Character introduction rate",
      "unit": "per page",
      "definition": "Distinct speaking characters divided by the estimated page count. Named as a rate, computed as a density: it does not measure when characters arrive, only how many there are per page.",
      "values": {
        "master_score": {
          "r": 0.0283,
          "n": 1499
        }
      }
    },
    {
      "key": "top3_character_dominance",
      "label": "Top three character dominance",
      "unit": "share",
      "definition": "Words spoken by the three largest parts, divided by all spoken words. A two-hander scores near one; an ensemble scores low.",
      "values": {
        "master_score": {
          "r": 0.0124,
          "n": 1499
        }
      }
    },
    {
      "key": "scene_count",
      "label": "Scene count",
      "unit": "scenes",
      "definition": "The number of scene headings detected. A scene heading is a line the parser reads as a slugline, so this counts formatting, not narrative units.",
      "values": {
        "master_score": {
          "r": -0.0115,
          "n": 1499
        }
      }
    },
    {
      "key": "avg_dialogue_length",
      "label": "Average speech length",
      "unit": "words",
      "definition": "Spoken words divided by the number of dialogue blocks. The average length of one uninterrupted speech.",
      "values": {
        "master_score": {
          "r": -0.0041,
          "n": 1499
        }
      }
    },
    {
      "key": "int_ext_ratio",
      "label": "Interior to exterior ratio",
      "unit": "ratio",
      "definition": "Interior scenes divided by exterior scenes, from the INT. and EXT. markers in the sluglines. A screenplay with no exterior scenes divides by one rather than by zero, so the value is the interior count.",
      "values": {
        "master_score": {
          "r": 0.0014,
          "n": 1499
        }
      }
    }
  ],
  "facts": {
    "corpus.total_films": {
      "value": 74571,
      "display": "74,571",
      "unit": "count",
      "n": 74571,
      "of": "films in the shipped catalogue",
      "method": "len() of public/data.json",
      "source": "public/data.json",
      "year_range": "1920-2026",
      "family": "corpus",
      "key": "corpus.total_films"
    },
    "screenplay.corpus_size": {
      "value": 1571,
      "display": "1,571",
      "unit": "count",
      "n": 1571,
      "of": "graded screenplays that entered the analysis pipeline",
      "method": "row count of the shipped feature table",
      "source": "pipeline/output/features_with_outcomes.csv",
      "family": "screenplay",
      "key": "screenplay.corpus_size"
    },
    "craft.guides.total": {
      "value": 926,
      "display": "926",
      "unit": "count",
      "n": 926,
      "of": "markdown craft guides on disk across the four style directories, excluding the three PROGRESS.md trackers",
      "source": "screenwriter-styles/*.md, directors-styles/*.md, cinematographers-styles/*.md, actor-styles/*.md",
      "method": "Counted *.md files in screenwriter-styles, directors-styles, cinematographers-styles and actor-styles; 929 files exist, three are PROGRESS.md trackers and are excluded.",
      "caveat": "929 files are on disk. The three trackers are not guides and all three misstate the size of the directory they sit in.",
      "family": "craft",
      "key": "craft.guides.total"
    },
    "screenplay.correlations_rebuilt": {
      "value": [
        {
          "feature": "dialogue_words",
          "r": 0.0678,
          "n": 1499
        },
        {
          "feature": "dialogue_ratio",
          "r": 0.0553,
          "n": 1499
        },
        {
          "feature": "chars_text",
          "r": 0.0526,
          "n": 1499
        },
        {
          "feature": "unique_character_count",
          "r": 0.051,
          "n": 1499
        },
        {
          "feature": "total_pages",
          "r": 0.0392,
          "n": 1499
        },
        {
          "feature": "avg_scene_length",
          "r": 0.0375,
          "n": 1499
        },
        {
          "feature": "words_text",
          "r": 0.0375,
          "n": 1499
        },
        {
          "feature": "character_intro_rate",
          "r": 0.0283,
          "n": 1499
        },
        {
          "feature": "top3_character_dominance",
          "r": 0.0124,
          "n": 1499
        },
        {
          "feature": "scene_count",
          "r": -0.0115,
          "n": 1499
        },
        {
          "feature": "avg_dialogue_length",
          "r": -0.0041,
          "n": 1499
        },
        {
          "feature": "int_ext_ratio",
          "r": 0.0014,
          "n": 1499
        }
      ],
      "display": "12 features",
      "unit": "list",
      "n": 1571,
      "of": "screenplays re-measured with the corrected parser and joined to their outcomes",
      "method": "Pearson correlation of each rebuilt feature against the composite quality score",
      "source": "book/research/refixed_full_corpus.csv",
      "family": "screenplay",
      "key": "screenplay.correlations_rebuilt"
    },
    "screenplay.correlation_matrix_shipped": {
      "value": [
        {
          "feature": "scene_count",
          "master_score": -0.04,
          "imdb_rating": -0.0008,
          "rt_tomatometer": -0.0452,
          "worldwide_gross": 0.0289,
          "roi": -0.0215,
          "oscar_wins": 0.0002,
          "critical_score": -0.0265,
          "audience_score": -0.0067
        },
        {
          "feature": "avg_scene_length",
          "master_score": 0.0595,
          "imdb_rating": 0.0538,
          "rt_tomatometer": 0.0351,
          "worldwide_gross": 0.0194,
          "roi": 0.0022,
          "oscar_wins": 0.0198,
          "critical_score": 0.0515,
          "audience_score": 0.0507
        },
        {
          "feature": "int_ext_ratio",
          "master_score": -0.0217,
          "imdb_rating": -0.0397,
          "rt_tomatometer": -0.0254,
          "worldwide_gross": -0.0683,
          "roi": -0.0279,
          "oscar_wins": -0.0222,
          "critical_score": -0.0302,
          "audience_score": -0.0175
        },
        {
          "feature": "scene_length_variance",
          "master_score": -0.0183,
          "imdb_rating": -0.023,
          "rt_tomatometer": -0.0006,
          "worldwide_gross": -0.0035,
          "roi": -0.0173,
          "oscar_wins": -0.0143,
          "critical_score": -0.0111,
          "audience_score": -0.0051
        },
        {
          "feature": "total_pages",
          "master_score": 0.0393,
          "imdb_rating": 0.0873,
          "rt_tomatometer": 0.0223,
          "worldwide_gross": 0.1416,
          "roi": -0.0629,
          "oscar_wins": 0.1081,
          "critical_score": 0.0592,
          "audience_score": 0.036
        },
        {
          "feature": "transition_density",
          "master_score": -0.0327,
          "imdb_rating": -0.0243,
          "rt_tomatometer": -0.0029,
          "worldwide_gross": -0.0551,
          "roi": 0.0105,
          "oscar_wins": -0.0041,
          "critical_score": -0.0171,
          "audience_score": 0.001
        },
        {
          "feature": "unique_character_count",
          "master_score": 0.0086,
          "imdb_rating": 0.0481,
          "rt_tomatometer": 0.0154,
          "worldwide_gross": -0.0526,
          "roi": 0.021,
          "oscar_wins": 0.0106,
          "critical_score": 0.0295,
          "audience_score": 0.062
        },
        {
          "feature": "dialogue_ratio",
          "master_score": 0.0018,
          "imdb_rating": 0.0415,
          "rt_tomatometer": 0.0279,
          "worldwide_gross": -0.0546,
          "roi": 0.0067,
          "oscar_wins": 0.0054,
          "critical_score": 0.0306,
          "audience_score": 0.0604
        },
        {
          "feature": "top3_character_dominance",
          "master_score": -0.0192,
          "imdb_rating": 0.0235,
          "rt_tomatometer": 0.0145,
          "worldwide_gross": -0.0454,
          "roi": -0.039,
          "oscar_wins": -0.007,
          "critical_score": 0.008,
          "audience_score": 0.024
        },
        {
          "feature": "avg_dialogue_length",
          "master_score": -0.0141,
          "imdb_rating": 0.0199,
          "rt_tomatometer": 0.0022,
          "worldwide_gross": -0.0576,
          "roi": -0.013,
          "oscar_wins": -0.017,
          "critical_score": 0.0042,
          "audience_score": 0.015
        },
        {
          "feature": "character_intro_rate",
          "master_score": 0.0073,
          "imdb_rating": 0.0286,
          "rt_tomatometer": 0.0093,
          "worldwide_gross": -0.0546,
          "roi": 0.0678,
          "oscar_wins": -0.0057,
          "critical_score": 0.0171,
          "audience_score": 0.0538
        },
        {
          "feature": "vocabulary_richness",
          "master_score": -0.0683,
          "imdb_rating": -0.0871,
          "rt_tomatometer": -0.1343,
          "worldwide_gross": 0.0029,
          "roi": -0.0316,
          "oscar_wins": -0.0592,
          "critical_score": -0.1163,
          "audience_score": -0.1157
        },
        {
          "feature": "avg_word_length",
          "master_score": -0.0485,
          "imdb_rating": -0.0676,
          "rt_tomatometer": -0.0881,
          "worldwide_gross": 0.0441,
          "roi": -0.0208,
          "oscar_wins": -0.0326,
          "critical_score": -0.0813,
          "audience_score": -0.0664
        },
        {
          "feature": "sentiment_mean",
          "master_score": 0.057,
          "imdb_rating": 0.0914,
          "rt_tomatometer": 0.1438,
          "worldwide_gross": -0.0072,
          "roi": 0.0005,
          "oscar_wins": 0.0425,
          "critical_score": 0.1253,
          "audience_score": 0.1362
        },
        {
          "feature": "sentiment_variance",
          "master_score": 0.0016,
          "imdb_rating": -0.0324,
          "rt_tomatometer": -0.0237,
          "worldwide_gross": 0.0522,
          "roi": 0.0319,
          "oscar_wins": -0.0099,
          "critical_score": -0.0193,
          "audience_score": -0.0052
        },
        {
          "feature": "sentiment_arc_slope",
          "master_score": 0.022,
          "imdb_rating": 0.0442,
          "rt_tomatometer": 0.0113,
          "worldwide_gross": -0.0237,
          "roi": -0.0145,
          "oscar_wins": -0.0216,
          "critical_score": 0.0246,
          "audience_score": 0.0473
        },
        {
          "feature": "action_ratio",
          "master_score": 0.0058,
          "imdb_rating": -0.035,
          "rt_tomatometer": -0.0287,
          "worldwide_gross": 0.0614,
          "roi": -0.0035,
          "oscar_wins": -0.0095,
          "critical_score": -0.0247,
          "audience_score": -0.0616
        },
        {
          "feature": "caps_density",
          "master_score": -0.0135,
          "imdb_rating": -0.0126,
          "rt_tomatometer": -0.0327,
          "worldwide_gross": 0.1595,
          "roi": -0.0512,
          "oscar_wins": -0.0199,
          "critical_score": -0.0172,
          "audience_score": -0.0216
        },
        {
          "feature": "exclamation_density",
          "master_score": 0.0262,
          "imdb_rating": 0.0138,
          "rt_tomatometer": 0.0442,
          "worldwide_gross": 0.1566,
          "roi": 0.0187,
          "oscar_wins": 0.0196,
          "critical_score": 0.0284,
          "audience_score": 0.069
        },
        {
          "feature": "question_density",
          "master_score": 0.0361,
          "imdb_rating": 0.0592,
          "rt_tomatometer": 0.1216,
          "worldwide_gross": -0.0958,
          "roi": 0.0326,
          "oscar_wins": -0.0543,
          "critical_score": 0.0885,
          "audience_score": 0.1083
        }
      ],
      "display": "20 features x 8 outcomes",
      "unit": "list",
      "n": 1571,
      "of": "graded screenplays, correlating each structural feature against each outcome measure",
      "method": "Pearson correlation per pair, over rows where both are present",
      "source": "pipeline/output/features_with_outcomes.csv",
      "family": "screenplay",
      "key": "screenplay.correlation_matrix_shipped"
    },
    "screenplay.rebuild_feature_coverage": {
      "value": 11,
      "display": "11 of 20 dropped",
      "unit": "features",
      "n": 20,
      "of": "the twenty features of the shipped analysis, checked for a counterpart in the rebuilt corpus",
      "method": "set difference between the shipped feature list and the columns of the rebuilt corpus, with the columns the rebuild added",
      "source": "book/research/refixed_full_corpus.csv",
      "kept": [
        "avg_dialogue_length",
        "avg_scene_length",
        "character_intro_rate",
        "dialogue_ratio",
        "int_ext_ratio",
        "scene_count",
        "top3_character_dominance",
        "total_pages",
        "unique_character_count"
      ],
      "dropped": [
        "action_ratio",
        "avg_word_length",
        "caps_density",
        "exclamation_density",
        "question_density",
        "scene_length_variance",
        "sentiment_arc_slope",
        "sentiment_mean",
        "sentiment_variance",
        "transition_density",
        "vocabulary_richness"
      ],
      "added": [
        "chars_text",
        "dialogue_words",
        "words_text"
      ],
      "caveat": "The rebuild is a smaller instrument, not a repaired one of the same size. Two of the dropped features carried the project's most-quoted results: vocabulary richness was the strongest shipped correlation, and sentiment variance was the third published effect size.",
      "family": "screenplay",
      "key": "screenplay.rebuild_feature_coverage"
    },
    "screenplay.no_dialogue_share": {
      "value": 74.1,
      "display": "74%",
      "unit": "percent",
      "n": 1571,
      "of": "graded screenplays in the shipped data",
      "method": "share whose measured dialogue ratio is exactly zero",
      "source": "pipeline/output/features_with_outcomes.csv",
      "caveat": "This is the single number that invalidates the published effect sizes.",
      "family": "screenplay",
      "key": "screenplay.no_dialogue_share"
    },
    "corpus.money_coverage_share": {
      "value": 15.46,
      "display": "15.46%",
      "unit": "percent",
      "n": 74571,
      "of": "films in the catalogue",
      "method": "share carrying both a reported budget and a reported worldwide gross",
      "source": "public/data.json",
      "caveat": "Every profitability statement in this book, and in every book like it, describes this fraction of the catalogue and not the catalogue. The films that never reported are not a random sample of the ones that did.",
      "family": "corpus",
      "key": "corpus.money_coverage_share"
    },
    "corpus.coverage_budget_and_gross": {
      "value": 11530,
      "display": "11,530",
      "unit": "count",
      "n": 74571,
      "of": "films in the catalogue, of which this many carry the field",
      "method": "count of non-missing, non-zero values in the budget_and_gross column",
      "source": "public/data.json",
      "share": 15.46,
      "share_display": "15.46%",
      "family": "corpus",
      "key": "corpus.coverage_budget_and_gross"
    },
    "models.r2_budget_only": {
      "value": 0.4121,
      "display": "41%",
      "unit": "percent",
      "n": 11427,
      "of": "films with a reported budget of at least $10,000 and a reported worldwide gross of at least $1,000",
      "method": "R-squared of an ordinary least squares fit predicting log worldwide gross from log production budget alone",
      "source": "public/data.json",
      "caveat": "One number, available before anyone reads the script, and it is the benchmark every cleverer model has to beat.",
      "family": "models",
      "key": "models.r2_budget_only"
    },
    "models.boxoffice_model_r2": {
      "value": 0.1267,
      "display": "12.7%",
      "unit": "percent",
      "n": 1289,
      "of": "films used to fit the shipped box office model",
      "method": "the R-squared reported in the shipped model file",
      "source": "public/boxoffice_model.json",
      "caveat": "This model reads twenty features of the screenplay text. It explains less than a linear fit on the budget alone.",
      "family": "models",
      "key": "models.boxoffice_model_r2"
    }
  },
  "attribution": "Film metadata, ratings and vote counts underlying the statistics in this book are derived from public datasets published by IMDb, The Movie Database (TMDB), and Rotten Tomatoes, and from box office figures published by Box Office Mojo and The Numbers. This product uses the TMDB API but is not endorsed or certified by TMDB. Academy Award records are derived from the Academy of Motion Picture Arts and Sciences awards database. All statistics in this book are the author’s own computations; no source database is reproduced. Screenplay measurements are derived from publicly circulated screenplay texts; no screenplay text is reproduced."
}