{
  "code": "S102",
  "name": "Chart stages",
  "shape": "chart-comparison",
  "family": "Evidence and pictures",
  "fits": "Three labelled charts on one baseline, built in sequence.",
  "use_when": "Showing a starting point, a next stage and a longer horizon.",
  "slots": [
    {
      "name": "title",
      "holds": "what changes across the three stages",
      "budget": "under 14 words"
    },
    {
      "name": "charts",
      "holds": "three editable SVG donut charts; derive geometry from real data",
      "budget": "3 charts"
    },
    {
      "name": "captions",
      "holds": "one line per chart",
      "budget": "under 10 words each"
    },
    {
      "name": "legend",
      "holds": "three segment labels",
      "budget": "under 4 words each"
    },
    {
      "name": "note",
      "holds": "one short result below the final chart",
      "budget": "under 10 words"
    }
  ],
  "columns": 3,
  "density": "standard",
  "surface": "paper",
  "works_on": [
    "deck",
    "page"
  ],
  "library": "Hoffman",
  "dir": "S102-chart-stages",
  "semantic": {
    "audience_question": "How does the mix change across three comparable stages?",
    "intent": "Compare three part-to-whole charts using the same segment definitions.",
    "reasoning_relation": "aligned staged quantitative comparison",
    "message_pattern": "Across [groups or stages], [measure] changes from [A] to [B], implying [bounded finding].",
    "required_content": [
      "States the pattern or question the three stages address.",
      "Three charts using the same categories and calculation rules; derive every segment and label from actual data.",
      "One time/status caption for each chart, distinguishing baseline, target and scenario.",
      "Three consistent category definitions shared by all charts.",
      "The common horizon or decisive qualification."
    ],
    "narrative_positions": [
      "context",
      "explanation",
      "evidence: choose only when the page supports the surrounding argument"
    ],
    "requires_before": [
      "Define categories, counting method and why the mix matters."
    ],
    "enables_after": [
      "Explain assumptions, capacity requirements or a decision about the target."
    ],
    "slot_roles": {
      "title": "States the pattern or question the three stages address.",
      "charts": "Three charts using the same categories and calculation rules; derive every segment and label from actual data.",
      "captions": "One time/status caption for each chart, distinguishing baseline, target and scenario.",
      "legend": "Three consistent category definitions shared by all charts.",
      "note": "The common horizon or decisive qualification."
    },
    "avoid_when": [
      "Categories with changing definitions.",
      "Absolute growth shown only by equal rings without totals."
    ],
    "layout_specific_contract": "Three labelled charts on one baseline, built in sequence.",
    "provenance": {
      "basis": "interpretation of the existing layout and slot contracts",
      "review": "Tessel model-authored guidance; implementation approved by Nic, 2026-10-10",
      "corpus_evidence_status": "not yet established",
      "guide": "../SEMANTICS.md"
    },
    "reader_outcome": "Compare three part-to-whole charts using the same segment definitions.",
    "matching": {
      "audience_question": "How does the mix change across three comparable stages?",
      "reader_outcome": "Compare three part-to-whole charts using the same segment definitions.",
      "reasoning_relation": "aligned staged quantitative comparison",
      "content_shape": {
        "composition": "Three labelled charts on one baseline, built in sequence.",
        "selected_state": "Three labelled charts on one baseline, built in sequence.",
        "density": "standard",
        "columns": 3,
        "column_note": "Base metadata only; selected option can replace the base geometry."
      },
      "required_slots": [
        {
          "name": "title",
          "reader_question": "How does the mix change across three comparable stages?",
          "semantic_role": "States the pattern or question the three stages address.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · title · what changes across the three stages]",
          "layout_budget": {
            "authored": "under 14 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "title",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              5
            ]
          }
        },
        {
          "name": "charts",
          "reader_question": "What specific quantity or comparable member supports the governing point?",
          "semantic_role": "Three charts using the same categories and calculation rules; derive every segment and label from actual data.",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL DATA · charts · three editable SVG donut charts; derive geometry from real data]",
          "layout_budget": {
            "authored": "3 charts",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "charts",
            "occurrences": 3,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              8,
              8,
              8
            ]
          },
          "integrity": "Supply real values, units, denominator, period and traceable source; derive any chart geometry from those values."
        },
        {
          "name": "captions",
          "reader_question": "What does the captions contribute to this page’s reader outcome?",
          "semantic_role": "One time/status caption for each chart, distinguishing baseline, target and scenario.",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "Authored visible members in the selected arrangement; annotation occurrences can differ."
          },
          "placeholder": "[REAL CONTENT · captions · one line per chart]",
          "layout_budget": {
            "authored": "under 10 words each",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "captions",
            "occurrences": 0,
            "annotation_status": "Semantic role explicitly mapped to authored selector; do not infer a data-slot with this name.",
            "visibility_status": "Selected-state structure inspected; conditional or decorative regions can be absent in narrow/complete states.",
            "selector": "[data-spread=\"S102\"] [data-native^=\"caption-\"]"
          }
        },
        {
          "name": "legend",
          "reader_question": "What does the legend contribute to this page’s reader outcome?",
          "semantic_role": "Three consistent category definitions shared by all charts.",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · legend · three segment labels]",
          "layout_budget": {
            "authored": "under 4 words each",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "legend",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              6
            ]
          }
        },
        {
          "name": "note",
          "reader_question": "What does the note contribute to this page’s reader outcome?",
          "semantic_role": "The common horizon or decisive qualification.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · note · one short result below the final chart]",
          "layout_budget": {
            "authored": "under 10 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "note",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              3
            ]
          }
        }
      ],
      "rejection_constraints": [
        "Different denominator definitions, illustrative geometry retained with real labels or projections presented as results.",
        "Different scales or unrelated populations presented as a continuous progression."
      ],
      "option_guidance": {
        "option": "default",
        "composition_delta": "Three labelled charts on one baseline, built in sequence.",
        "semantic_change": "retains base content relationship; changes presentation or disclosure",
        "matching_instruction": "Select S102 default when the supplied material answers “How does the mix change across three comparable stages?” through aligned staged quantitative comparison. Respect this state: Three labelled charts on one baseline, built in sequence."
      },
      "provenance": {
        "status": "inferred composition evidence",
        "author_intent": "not independently confirmed",
        "basis": [
          "retained source composition where available",
          "authored layout and slot contracts",
          "static implementation inspection"
        ],
        "source_visual_count": 1,
        "source_visual_sha256": [
          "37c3837e3d315806e76f3b2882e58c61b223b5c880e9e44a21c581a53212d54b"
        ],
        "source_export": "private source images remain outside this draft site",
        "markup_sha256": "ff6248eb108211bcebae11aa0c0f10dba175163fd9e325719e759d0094ab77f8",
        "limits": [
          "Static parsing inventories authored nodes; it does not certify rendered visibility, responsive fit or interactive state.",
          "Budgets are authored layout guidance, not a content-writing limit or proof of fit.",
          "Matching guidance is a draft inference; it does not establish facts, endorsement, causation or source author intent."
        ]
      },
      "adaptation_rules": [
        "Choose by audience question, reasoning relation and required content before aesthetic preference.",
        "Supply every required semantic role; retain visible unknowns as labelled real-content placeholders.",
        "A number needs source, scope and units; a quotation needs faithful wording and attribution.",
        "Do not infer importance from area, colour, depth or movement unless the content explicitly defines that encoding.",
        "Keep colour token roles, structural objects, licences and source records; changing content does not authorize changing them."
      ],
      "previous_required_slots": [
        {
          "name": "title",
          "reader_question": "How does the mix change across three comparable stages?",
          "semantic_role": "what changes across the three stages",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · title · what changes across the three stages]",
          "layout_budget": {
            "authored": "under 14 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "title",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              5
            ]
          }
        },
        {
          "name": "charts",
          "reader_question": "What specific quantity or comparable member supports the governing point?",
          "semantic_role": "three editable SVG donut charts; derive geometry from real data",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL DATA · charts · three editable SVG donut charts; derive geometry from real data]",
          "layout_budget": {
            "authored": "3 charts",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "charts",
            "occurrences": 3,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              8,
              8,
              8
            ]
          },
          "integrity": "Supply real values, units, denominator, period and traceable source; derive any chart geometry from those values."
        },
        {
          "name": "captions",
          "reader_question": "What does the captions contribute to this page’s reader outcome?",
          "semantic_role": "one line per chart",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · captions · one line per chart]",
          "layout_budget": {
            "authored": "under 10 words each",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "captions",
            "occurrences": 0,
            "annotation_status": "unannotated semantic unit; locate in authored structure",
            "visibility_status": "not asserted from static parsing"
          }
        },
        {
          "name": "legend",
          "reader_question": "What does the legend contribute to this page’s reader outcome?",
          "semantic_role": "three segment labels",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · legend · three segment labels]",
          "layout_budget": {
            "authored": "under 4 words each",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "legend",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              6
            ]
          }
        },
        {
          "name": "note",
          "reader_question": "What does the note contribute to this page’s reader outcome?",
          "semantic_role": "one short result below the final chart",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · note · one short result below the final chart]",
          "layout_budget": {
            "authored": "under 10 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "note",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              3
            ]
          }
        }
      ],
      "contract_correction": {
        "date": "2026-10-13",
        "basis": "Actual selected HTML/CSS inspection; previous required slots retained for review.",
        "records": [
          {
            "code": "S102",
            "option": "default",
            "selectors": {
              "captions": "[data-spread=\"S102\"] [data-native^=\"caption-\"]"
            },
            "counts": {
              "captions": 3
            },
            "reason": "captions is conceptual; actual three figcaptions are identified by data-native caption-1/2/3."
          }
        ]
      }
    },
    "rejection_constraints": [
      "Different denominator definitions, illustrative geometry retained with real labels or projections presented as results.",
      "Different scales or unrelated populations presented as a continuous progression."
    ],
    "markup_inventory": {
      "file": "spread.html",
      "sha256": "ff6248eb108211bcebae11aa0c0f10dba175163fd9e325719e759d0094ab77f8",
      "method": "static lxml markup plus authored option description; no rendered-visibility claim",
      "all_markup_slot_counts": {
        "title": 1,
        "charts": 3,
        "legend": 1,
        "note": 1
      },
      "slot_evidence": {
        "title": [
          {
            "tag": "h2",
            "classes": "head",
            "sample_word_count": 5,
            "repeated_children": 1
          }
        ],
        "charts": [
          {
            "tag": "figure",
            "classes": "stage",
            "sample_word_count": 8,
            "repeated_children": 2
          },
          {
            "tag": "figure",
            "classes": "stage",
            "sample_word_count": 8,
            "repeated_children": 2
          },
          {
            "tag": "figure",
            "classes": "stage",
            "sample_word_count": 8,
            "repeated_children": 2
          }
        ],
        "legend": [
          {
            "tag": "div",
            "classes": "legend",
            "sample_word_count": 6,
            "repeated_children": 3
          }
        ],
        "note": [
          {
            "tag": "p",
            "classes": "note",
            "sample_word_count": 3,
            "repeated_children": 0
          }
        ]
      },
      "option_selectors": [],
      "linked_implementation": [
        {
          "file": "../spreads.css",
          "sha256": "32da94472b0c9131e4d5dae7d5bf0498b09202a9e66294b4e4f23e6ddfbf37ba"
        },
        {
          "file": "../spread.js",
          "sha256": "3d99948b83f750bd4ae95dac08e3e50a395de7c149c90a6f1a1c0ea36a2634a4"
        },
        {
          "file": "../deck-motion.js",
          "sha256": "6869989cd926fded3afc494e350791f2517cd0d859822072b95f3dd97e693781"
        }
      ]
    },
    "variations": {},
    "narrative_profile": {
      "central_point": "Three comparable stages show how both the total and the composition of a quantity are expected or observed to change.",
      "communication_job": "Compare the same categories across aligned stages while distinguishing measured baselines from planned futures.",
      "audience_value": "Offers quantitative perspective. It answers “What changes in the mix, and over which horizon?”; equal-sized rings compare shares, not absolute total magnitude.",
      "reading_path": [
        "Read the title and stage captions for the time/status of each chart.",
        "Use the legend once, then follow each category across the three charts.",
        "Read both percentage shares and absolute totals where they differ.",
        "Read the horizon note and qualification before interpreting a forecast as an outcome."
      ],
      "adaptation": {
        "required_inputs": [
          "States the pattern or question the three stages address.",
          "Three charts using the same categories and calculation rules; derive every segment and label from actual data.",
          "One time/status caption for each chart, distinguishing baseline, target and scenario.",
          "Three consistent category definitions shared by all charts.",
          "The common horizon or decisive qualification."
        ],
        "slot_guidance": {
          "title": "States the pattern or question the three stages address.",
          "charts": "Three charts using the same categories and calculation rules; derive every segment and label from actual data.",
          "captions": "One time/status caption for each chart, distinguishing baseline, target and scenario.",
          "legend": "Three consistent category definitions shared by all charts.",
          "note": "The common horizon or decisive qualification."
        },
        "can_change": [
          "Replace the fictional subject and its supported content while retaining the roles and relationship described here."
        ],
        "must_survive": [
          "Every chart must use the same category meanings and units.",
          "Segments sum to the total and share labels sum to 100%, allowing disclosed rounding.",
          "Preserve observed/target/scenario status.",
          "Existing sample arcs and zero labels are placeholders; recalculate geometry and labels together."
        ]
      },
      "worked_example": {
        "fictional": true,
        "scenario": "Fictional Cedar plans a shift in volunteer-hours across three stages.",
        "slot_fills": {
          "title": "The pilot shifts toward supervised practice",
          "charts": [
            "Fictional baseline: 100 volunteer-hours; intake 40 (40%), supervised practice 40 (40%), review 20 (20%).",
            "Fictional target: 120 volunteer-hours; intake 36 (30%), supervised practice 60 (50%), review 24 (20%).",
            "Fictional scenario: 150 volunteer-hours; intake 30 (20%), supervised practice 90 (60%), review 30 (20%)."
          ],
          "captions": [
            "June baseline — fictional",
            "September target — fictional",
            "December scenario — fictional"
          ],
          "legend": [
            "Intake",
            "Supervised practice",
            "Review"
          ],
          "note": "Illustrative hours; targets are not measured results."
        },
        "reasoning": "The review share stays 20% while its absolute hours rise from 20 to 30. Equal rings must not obscure that difference, and future targets remain visibly distinct from the baseline.",
        "qualification": "Fictional teaching example. Replace invented details with authorised content and keep any source, scope, status or uncertainty that affects interpretation."
      },
      "narrative_fit": {
        "before": "Define categories, counting method and why the mix matters.",
        "after": "Explain assumptions, capacity requirements or a decision about the target.",
        "good_uses": [
          "Comparable composition across periods or scenarios."
        ],
        "poor_fits": [
          "Categories with changing definitions.",
          "Absolute growth shown only by equal rings without totals."
        ]
      },
      "evidence": {
        "observations": [
          "Viewed retained source: three dated donut charts share a legend; later captions describe future growth and absolute quantities appear beside shares.",
          "Current implementation has three fixed illustrative donut geometries, three captions, a shared legend and a caveat."
        ],
        "interpretations": [
          "Three comparable stages show how both the total and the composition of a quantity are expected or observed to change. This is an interpretation of the inspected composition, not a verified claim of author intent."
        ],
        "not_verified": [
          "Original author intent, historical claims, persuasion and archive-wide frequency have not been independently verified."
        ],
        "references": [
          "02_product/spreads/S102-chart-stages/source.webp",
          "02_product/spreads-semantics-2026-10-13/dist/S102-chart-stages/spread.html",
          "02_product/spreads-semantics-2026-10-13/dist/S102-chart-stages/spread.json"
        ]
      },
      "review": {
        "status": "reviewed",
        "basis": "Viewed the retained base source capture and inspected current HTML and matching slots; reviewed the fictional adaptation at layout-contract level."
      },
      "variation_relationship": "base"
    }
  },
  "options": [],
  "also_seen_in": [],
  "source": {
    "ref": "Private deck reference; original evidence retained in the private Spreads library."
  },
  "motion": {
    "file": "motion.json",
    "description": "Three native slides become three build steps. Each retains its automatic fades; Next represents advancing the original deck."
  }
}
