{
 "schema": "adfactory.container-budget/v1",
 "version": 1,
 "sourceId": "targ",
 "durationSeconds": 194.333,
 "fps": 30,
 "integratedLufs": -14.2,
 "song": {
  "status": "measured",
  "sungSpan": [
   0.0,
   188.56
  ],
  "sungSeconds": 188.56,
  "syllables": 645,
  "syllablesPerSecond": 3.421,
  "words": 471,
  "phrases": 75,
  "syllablesPerPhraseMedian": 9,
  "phraseSecondsMedian": 2.38,
  "rests": [
   {
    "from": 91.88,
    "to": 92.9,
    "seconds": 1.02
   }
  ],
  "restsCount": 1,
  "restSeconds": 1.02,
  "longestUnbrokenVocalSeconds": 95.66,
  "voicedFrameFraction": 0.708,
  "vocalRangeSemitones": 14.1,
  "tempoBpm": 103.36,
  "keyTop": [
   "F major",
   0.7765326755892957
  ]
 },
 "picture": {
  "status": "measured",
  "shots": 47,
  "shotSecondsMedian": 4.3,
  "shotSecondsP90": 7.07,
  "shotsOver8s": 5,
  "shotsUnder2s": 7,
  "tightShotShare": 0.234,
  "tightSeconds": 55.0,
  "tightSecondsShare": 0.261,
  "wideShotShare": 0.298,
  "inserts": 2,
  "insertSeconds": 7.4,
  "cameraMoveShare": 0.213,
  "endCardSeconds": 5.87,
  "sizeHistogram": {
   "CARD": 1,
   "CU": 3,
   "INSERT": 2,
   "MCU": 8,
   "MLS": 5,
   "MS": 19,
   "WS": 9
  }
 },
 "problem": {
  "status": "measured",
  "beforeStateSeconds": 102.4,
  "beforeStateVisibleSeconds": 89.3,
  "beforeStateVisibleShare": 0.872,
  "resolvedStateSeconds": 52.2,
  "resolvedStateVisibleShare": 0.916,
  "anyVisibleSeconds": 154.6,
  "visibleInTightShotsSeconds": 41.3,
  "firstLegibleSecond": 0.0,
  "firstLegibleShareOfRuntime": 0.0
 },
 "product": {
  "status": "measured",
  "firstProductOnScreenSecond": 109.4,
  "firstProductOnScreenShareOfRuntime": 0.563,
  "productOnScreenSeconds": 25.4,
  "anyProductPropShots": 12,
  "brandSungTimes": [
   {
    "time": 181.6,
    "text": "The cream is called searer"
   }
  ],
  "brandSungCount": 1,
  "ctaPhrases": 3,
  "ctaSyllables": 15,
  "ctaSeconds": 7.0
 },
 "captions": {
  "position": "centred horizontally, lower-middle of frame (box centre ~70-75% down), never at the very bottom",
  "box": "white rounded rectangle, generous padding, no outline/shadow, opaque; single box per card",
  "font": "bold geometric sans (Poppins-like), black, ~2 text lines high; identical size on every card",
  "linesPerCard": 2,
  "wordsPerCardMedian": 9,
  "cardDurationMedian": 3.0,
  "textCase": "sentence case with lyric-line capitals inside the card ('cream Staring', 'over Knew', 'around She saw me'); stray trailing commas ('Cliché,', 'Leggings,'); numbers spelled out",
  "extraOverlays": "none in 0-50 s: no logo, no disclaimer strip, no product card; only diegetic Target signage",
  "notes": "17 caption cards start inside 0-50 s (an 18th begins at 50.8 s). Caption changes coincide with a cut at 23.0, 33.0 and 42.13 s; the other 14 changes happen mid-shot, so caption change != shot change here."
 },
 "derivation": {
  "asr": "targ/asr.json (faster-whisper large-v3-turbo, word timestamps)",
  "audio": "targ/audio-dna.json (librosa 1.0, demucs htdemucs stems)",
  "ledger": "ledgers/targ-seg1..4.json (agent frame reading of 1 fps sheets and per-shot keyframes)",
  "limits": "ASR text may contain errors; shot sizes and problem-zone visibility are agent readings, not detector output; no listening test."
 }
}