{
  "code": "S57",
  "name": "Comparison columns",
  "shape": "option-comparison",
  "family": "Lists and comparisons",
  "fits": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
  "use_when": "The page a reader keeps open while choosing between options. Dense on purpose, so it carries no takeaway band.",
  "slots": [
    {
      "name": "title-bar",
      "holds": "plum bar across the top: the page title left, a lime italic section marker right",
      "budget": "title under 9 words; marker 1-2 words"
    },
    {
      "name": "foundation",
      "holds": "plum row across all columns: lime label, then what every option includes",
      "budget": "under 20 words"
    },
    {
      "name": "columns",
      "holds": "2-4 x (option name, then the same 6-8 labelled rows); recommended column lime rule, lime wash and chip, others clay rule",
      "budget": "row value under 18 words"
    },
    {
      "name": "footnote",
      "holds": "one small italic line under the columns: basis of the figures",
      "budget": "under 30 words"
    }
  ],
  "columns": 3,
  "density": "dense",
  "surface": "paper",
  "works_on": [
    "deck",
    "page"
  ],
  "library": "Hoffman",
  "reference_libraries": [
    "useLayouts"
  ],
  "dir": "S57-comparison-columns",
  "semantic": {
    "audience_question": "How do the options compare on the same decision criteria?",
    "intent": "Compare aligned option rows and recognize the evidenced recommendation.",
    "reasoning_relation": "like-for-like option comparison",
    "message_pattern": "Choose [option] when [criterion]; it adds [benefit] at the cost of [tradeoff].",
    "required_content": [
      "Two to four viable alternatives.",
      "Six to eight identical comparison criteria with comparable units and periods.",
      "Genuinely common inclusions and explicit exclusions.",
      "An evidence-based selection rationale and terms."
    ],
    "narrative_positions": [
      "decision",
      "commercials"
    ],
    "requires_before": [
      "Establish the decision: whether one booking process can work at both branches, and whether language access is in scope."
    ],
    "enables_after": [
      "Confirm the chosen scope, then show the method and delivery commitments."
    ],
    "slot_roles": {
      "title-bar": "Name the buying decision; use the section marker only for orientation.",
      "foundation": "State work included in every option once; do not hide a variable scope here.",
      "columns": "Each option answers the same six to eight questions in the same order. Values explain the consequence of buying that option.",
      "footnote": "State currency, basis, validity or limits that could change the comparison."
    },
    "avoid_when": [
      "Sequential work stages.",
      "Options with different denominators or important qualifications that cannot fit."
    ],
    "layout_specific_contract": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
    "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"
    },
    "variation_rule": "Read the selected option’s actual markup, slot count and source record. Preserve this reasoning relationship only if the option still expresses it; flag a mismatch before adapting.",
    "reader_outcome": "Compare aligned option rows and recognize the evidenced recommendation.",
    "matching": {
      "audience_question": "How do the options compare on the same decision criteria?",
      "reader_outcome": "Compare aligned option rows and recognize the evidenced recommendation.",
      "reasoning_relation": "like-for-like option comparison",
      "content_shape": {
        "composition": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
        "selected_state": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
        "density": "dense",
        "columns": 3,
        "column_note": "Base metadata only; selected option can replace the base geometry."
      },
      "required_slots": [
        {
          "name": "title-bar",
          "reader_question": "What does the title bar contribute to this page’s reader outcome?",
          "semantic_role": "Name the buying decision; use the section marker only for orientation.",
          "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-bar · plum bar across the top: the page title left, a lime italic section marker right]",
          "layout_budget": {
            "authored": "title under 9 words; marker 1-2 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "title-bar",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              9
            ]
          }
        },
        {
          "name": "foundation",
          "reader_question": "What does the foundation contribute to this page’s reader outcome?",
          "semantic_role": "State work included in every option once; do not hide a variable scope here.",
          "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 · foundation · plum row across all columns: lime label, then what every option includes]",
          "layout_budget": {
            "authored": "under 20 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "foundation",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              21
            ]
          }
        },
        {
          "name": "columns",
          "reader_question": "What does the columns contribute to this page’s reader outcome?",
          "semantic_role": "Each option answers the same six to eight questions in the same order. Values explain the consequence of buying that option.",
          "content_unit_count": {
            "min": 2,
            "max": 4,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · columns · 2-4 x (option name, then the same 6-8 labelled rows); recommended column lime rule, lime wash and chip, others clay rule]",
          "layout_budget": {
            "authored": "row value under 18 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "columns",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              164
            ]
          }
        },
        {
          "name": "footnote",
          "reader_question": "What does the footnote contribute to this page’s reader outcome?",
          "semantic_role": "State currency, basis, validity or limits that could change the comparison.",
          "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 · footnote · one small italic line under the columns: basis of the figures]",
          "layout_budget": {
            "authored": "under 30 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "footnote",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              20
            ]
          }
        }
      ],
      "rejection_constraints": [
        "Different row meanings per option, unsupported recommendation or shared terms hidden in one column.",
        "Sequential steps, incomparable denominators or a colour-highlighted recommendation without reasons."
      ],
      "option_guidance": {
        "option": "default",
        "composition_delta": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
        "semantic_change": "retains base content relationship; changes presentation or disclosure",
        "matching_instruction": "Select S57 default when the supplied material answers “How do the options compare on the same decision criteria?” through like-for-like option comparison. Respect this state: A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote."
      },
      "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": 2,
        "source_visual_sha256": [
          "15ebd63fdbd2109c81c00a9abcb789657849053aa11b30a08621d5bfe1535ed0",
          "277ef1c0c9c853a0aedb36c04c9cd686a634ab1f75a3cac9925a89a4f68630e4"
        ],
        "source_export": "private source images remain outside this draft site",
        "markup_sha256": "89e4c440ce010e376c4525f3b852685defee76baca139601afd06342d3340b2b",
        "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."
      ]
    },
    "rejection_constraints": [
      "Different row meanings per option, unsupported recommendation or shared terms hidden in one column.",
      "Sequential steps, incomparable denominators or a colour-highlighted recommendation without reasons."
    ],
    "markup_inventory": {
      "file": "spread.html",
      "sha256": "89e4c440ce010e376c4525f3b852685defee76baca139601afd06342d3340b2b",
      "method": "static lxml markup plus authored option description; no rendered-visibility claim",
      "all_markup_slot_counts": {
        "title-bar": 1,
        "foundation": 1,
        "columns": 1,
        "footnote": 1,
        "plan-1": 1,
        "plan-2": 1,
        "plan-3": 1
      },
      "slot_evidence": {
        "title-bar": [
          {
            "tag": "header",
            "classes": "rbar",
            "sample_word_count": 9,
            "repeated_children": 2
          }
        ],
        "foundation": [
          {
            "tag": "div",
            "classes": "found",
            "sample_word_count": 21,
            "repeated_children": 2
          }
        ],
        "columns": [
          {
            "tag": "div",
            "classes": "cols",
            "sample_word_count": 164,
            "repeated_children": 3
          }
        ],
        "footnote": [
          {
            "tag": "p",
            "classes": "foot",
            "sample_word_count": 20,
            "repeated_children": 0
          }
        ],
        "plan-1": [
          {
            "tag": "article",
            "classes": "cat-plan",
            "sample_word_count": 20,
            "repeated_children": 2
          }
        ],
        "plan-2": [
          {
            "tag": "article",
            "classes": "cat-plan",
            "sample_word_count": 20,
            "repeated_children": 2
          }
        ],
        "plan-3": [
          {
            "tag": "article",
            "classes": "cat-plan",
            "sample_word_count": 20,
            "repeated_children": 2
          }
        ]
      },
      "option_selectors": [
        "pricing"
      ],
      "linked_implementation": [
        {
          "file": "../spreads.css",
          "sha256": "32da94472b0c9131e4d5dae7d5bf0498b09202a9e66294b4e4f23e6ddfbf37ba"
        },
        {
          "file": "../catalogue-options.css",
          "sha256": "d4ac2c72a1ba61f50fc52dbacff24130de014f42f1dc2df5fd841bea7a34e2db"
        },
        {
          "file": "../spread.js",
          "sha256": "3d99948b83f750bd4ae95dac08e3e50a395de7c149c90a6f1a1c0ea36a2634a4"
        },
        {
          "file": "../catalogue-options.js",
          "sha256": "ca693515383ba7cdf6d9937beada03614150786a4ca850ca800282ed4732d991"
        }
      ]
    },
    "variations": {
      "pricing": {
        "audience_question": "What does each approved plan cost and include?",
        "intent": "Compare price, included features and action on an aligned plan set.",
        "reader_outcome": "Compare price, included features and action on an aligned plan set.",
        "reasoning_relation": "plan price and feature comparison",
        "slot_roles": {
          "title-bar": "Name the plan choice; the section marker is hidden in this option.",
          "columns": "Three visible plan cards: tier name, price/period, one benefit sentence and action. Hidden detailed rows do not communicate exclusions."
        },
        "matching": {
          "audience_question": "What does each approved plan cost and include?",
          "reader_outcome": "Compare price, included features and action on an aligned plan set.",
          "reasoning_relation": "plan price and feature comparison",
          "content_shape": {
            "composition": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
            "selected_state": "Pricing plans: centred title, plan cards with a tier bar, big price, two lines and a button; the recommended plan raised",
            "density": "dense",
            "columns": 3,
            "column_note": "Base metadata only; selected option can replace the base geometry."
          },
          "required_slots": [
            {
              "name": "title-bar",
              "reader_question": "What does the title bar contribute to this page’s reader outcome?",
              "semantic_role": "Name the plan choice; the section marker is hidden in this option.",
              "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-bar · plum bar across the top: the page title left, a lime italic section marker right]",
              "layout_budget": {
                "authored": "title under 9 words; marker 1-2 words",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "title-bar",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  9
                ]
              }
            },
            {
              "name": "columns",
              "reader_question": "What does the columns contribute to this page’s reader outcome?",
              "semantic_role": "Three visible plan cards: tier name, price/period, one benefit sentence and action. Hidden detailed rows do not communicate exclusions.",
              "content_unit_count": {
                "min": 3,
                "max": 3,
                "basis": "Authored visible members in the selected arrangement; annotation occurrences can differ."
              },
              "placeholder": "[REAL CONTENT · columns · 2-4 x (option name, then the same 6-8 labelled rows); recommended column lime rule, lime wash and chip, others clay rule]",
              "layout_budget": {
                "authored": "row value under 18 words",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "columns",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  164
                ]
              }
            }
          ],
          "rejection_constraints": [
            "Draft pricing treated as an approved commercial offer or buttons implying billing.",
            "Sequential steps, incomparable denominators or a colour-highlighted recommendation without reasons."
          ],
          "option_guidance": {
            "option": "pricing",
            "composition_delta": "Pricing plans: centred title, plan cards with a tier bar, big price, two lines and a button; the recommended plan raised",
            "semantic_change": "changes content relationship",
            "matching_instruction": "Select S57 pricing when the supplied material answers “What does each approved plan cost and include?” through plan price and feature comparison. Respect this state: Pricing plans: centred title, plan cards with a tier bar, big price, two lines and a button; the recommended plan raised"
          },
          "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": 2,
            "source_visual_sha256": [
              "15ebd63fdbd2109c81c00a9abcb789657849053aa11b30a08621d5bfe1535ed0",
              "277ef1c0c9c853a0aedb36c04c9cd686a634ab1f75a3cac9925a89a4f68630e4"
            ],
            "source_export": "private source images remain outside this draft site",
            "markup_sha256": "89e4c440ce010e376c4525f3b852685defee76baca139601afd06342d3340b2b",
            "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": "plan-1",
              "reader_question": "What does the plan 1 contribute to this page’s reader outcome?",
              "semantic_role": "First plan: approved name, price/period, distinct feature set and honest local action.",
              "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 · plan-1 · First plan: approved name, price/period, distinct feature set and honest local action.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-1",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            },
            {
              "name": "plan-2",
              "reader_question": "What does the plan 2 contribute to this page’s reader outcome?",
              "semantic_role": "Second plan on the same terms and field definitions as the first.",
              "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 · plan-2 · Second plan on the same terms and field definitions as the first.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-2",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            },
            {
              "name": "plan-3",
              "reader_question": "What does the plan 3 contribute to this page’s reader outcome?",
              "semantic_role": "Third plan on the same terms and field definitions; justify any recommended marking.",
              "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 · plan-3 · Third plan on the same terms and field definitions; justify any recommended marking.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-3",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            }
          ],
          "contract_correction": {
            "date": "2026-10-13",
            "basis": "Actual selected HTML/CSS inspection; previous required slots retained for review.",
            "records": [
              {
                "code": "S57",
                "option": "pricing",
                "slots": [
                  "title-bar",
                  "columns"
                ],
                "counts": {
                  "columns": 3
                }
              }
            ]
          }
        },
        "narrative_profile": {
          "central_point": "Each plan combines a price with a concise reason to select it.",
          "communication_job": "Help a reader choose an approved package by audience fit and price, then take the relevant next action.",
          "audience_value": "A quick purchasing orientation when the full scope comparison has already been established; it cannot carry all contractual terms.",
          "reading_path": [
            "Read the common title and each plan name.",
            "Compare price and billing period on the same basis, then the visible benefit sentence.",
            "Use the action only after reviewing the full terms elsewhere."
          ],
          "adaptation": {
            "required_inputs": [
              "Three approved packages, price and billing period.",
              "One concise benefit sentence per plan and a truthful action destination.",
              "A linked complete terms or comparison page."
            ],
            "slot_guidance": {
              "title-bar": "Name the plan choice; the section marker is hidden in this option.",
              "columns": "Three visible plan cards: tier name, price/period, one benefit sentence and action. Hidden detailed rows do not communicate exclusions."
            },
            "can_change": [
              "Tier names, prices, benefit sentences and action targets."
            ],
            "must_survive": [
              "Same comparison basis and visible billing period.",
              "No essential condition left only in hidden base rows."
            ]
          },
          "worked_example": {
            "fictional": true,
            "scenario": "The fictional repair cooperative offers three workshop memberships.",
            "slot_fills": {
              "title-bar": "Choose your workshop access",
              "columns": [
                "Bench · 20 credits/month · One supervised evening each month · View Bench terms.",
                "Maker · 40 credits/month · Four supervised evenings each month · View Maker terms.",
                "Studio · 70 credits/month · Eight supervised evenings each month · View Studio terms."
              ]
            },
            "reasoning": "Increasing access is the differentiator; the reader can compare the cost of access without confusing it with repair outcomes.",
            "qualification": "Fictional membership amounts and inclusions, not approved offers. Full terms need a real destination before use."
          },
          "narrative_fit": {
            "before": "Explain who each membership serves and where complete terms can be read.",
            "after": "Open plan terms or begin an authorized enrollment flow; this preview has no checkout.",
            "good_uses": [
              "A short plan summary after a detailed comparison."
            ],
            "poor_fits": [
              "A contract with material exclusions omitted from the visible sentence.",
              "A functioning billing or checkout interface."
            ]
          },
          "evidence": {
            "observations": [
              "The pricing CSS centers the base title and exposes price/action in three base .ccol cards.",
              "It hides foundation, footnote and most comparison rows. The separate plan-1/2/3 nodes belong to the hidden plan-selector branch.",
              "Corrected selected matching now uses the visible title-bar and three columns."
            ],
            "interpretations": [
              "This is a short commercial choice, not the detailed procurement decision served by the default."
            ],
            "not_verified": [
              "Source pricing option capture and original author intent were not independently reviewed."
            ],
            "references": [
              "dist/S57-comparison-columns/spread.json",
              "dist/S57-comparison-columns/spread.html",
              "02_product/spreads/S57-comparison-columns/source.webp (viewed; structure only)",
              "Hoffman L53 Comparison columns",
              "dist/catalogue-options.css"
            ]
          },
          "review": {
            "status": "reviewed",
            "basis": "Motif rechecked the corrected selected matching contract against active markup and example roles/cardinality. This confirms layout-contract adaptation, not source author intent, factual proof or rendered usability."
          },
          "variation_relationship": "different-job"
        },
        "required_content": [
          "Three approved packages, price and billing period.",
          "One concise benefit sentence per plan and a truthful action destination.",
          "A linked complete terms or comparison page."
        ],
        "requires_before": [
          "Explain who each membership serves and where complete terms can be read."
        ],
        "enables_after": [
          "Open plan terms or begin an authorized enrollment flow; this preview has no checkout."
        ],
        "avoid_when": [
          "A contract with material exclusions omitted from the visible sentence.",
          "A functioning billing or checkout interface."
        ]
      },
      "plan-selector": {
        "audience_question": "Which approved plan and period match my requirements?",
        "intent": "Inspect each finite plan’s terms before making a local selection.",
        "reader_outcome": "Inspect each finite plan’s terms before making a local selection.",
        "reasoning_relation": "period and plan selection",
        "slot_roles": {
          "plan-1": "Entry plan for a specific audience: name, comparable price, three real inclusions and allowance.",
          "plan-2": "Middle plan on the same field definitions; explain the meaningful increment.",
          "plan-3": "Highest plan on the same basis; do not imply unlimited scope without a real limit."
        },
        "matching": {
          "audience_question": "Which approved plan and period match my requirements?",
          "reader_outcome": "Inspect each finite plan’s terms before making a local selection.",
          "reasoning_relation": "period and plan selection",
          "content_shape": {
            "composition": "A title bar, a dark row stating what every option includes, then two to four tall columns with the same labelled rows in the same order; the recommended column is washed in lime and chipped; a small footnote.",
            "selected_state": "Compact vertical plan selector: period controls above three plan rows; selected row expands its approved features. No billing engine.",
            "density": "dense",
            "columns": 3,
            "column_note": "Base metadata only; selected option can replace the base geometry."
          },
          "required_slots": [
            {
              "name": "plan-1",
              "reader_question": "What does the plan 1 contribute to this page’s reader outcome?",
              "semantic_role": "Entry plan for a specific audience: name, comparable price, three real inclusions and allowance.",
              "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 · plan-1 · First plan: approved name, price/period, distinct feature set and honest local action.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-1",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            },
            {
              "name": "plan-2",
              "reader_question": "What does the plan 2 contribute to this page’s reader outcome?",
              "semantic_role": "Middle plan on the same field definitions; explain the meaningful increment.",
              "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 · plan-2 · Second plan on the same terms and field definitions as the first.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-2",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            },
            {
              "name": "plan-3",
              "reader_question": "What does the plan 3 contribute to this page’s reader outcome?",
              "semantic_role": "Highest plan on the same basis; do not imply unlimited scope without a real limit.",
              "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 · plan-3 · Third plan on the same terms and field definitions; justify any recommended marking.]",
              "layout_budget": {
                "authored": "one complete plan row/card",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "plan-3",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  20
                ]
              }
            }
          ],
          "rejection_constraints": [
            "A local selection presented as checkout, billing or a persisted subscription.",
            "Sequential steps, incomparable denominators or a colour-highlighted recommendation without reasons."
          ],
          "option_guidance": {
            "option": "plan-selector",
            "composition_delta": "Compact vertical plan selector: period controls above three plan rows; selected row expands its approved features. No billing engine.",
            "semantic_change": "changes content relationship",
            "matching_instruction": "Select S57 plan-selector when the supplied material answers “Which approved plan and period match my requirements?” through period and plan selection. Respect this state: Compact vertical plan selector: period controls above three plan rows; selected row expands its approved features. No billing engine."
          },
          "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": 2,
            "source_visual_sha256": [
              "15ebd63fdbd2109c81c00a9abcb789657849053aa11b30a08621d5bfe1535ed0",
              "277ef1c0c9c853a0aedb36c04c9cd686a634ab1f75a3cac9925a89a4f68630e4"
            ],
            "source_export": "private source images remain outside this draft site",
            "markup_sha256": "89e4c440ce010e376c4525f3b852685defee76baca139601afd06342d3340b2b",
            "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."
          ]
        },
        "narrative_profile": {
          "central_point": "A reader can inspect one plan in detail while keeping the other options and billing period in view.",
          "communication_job": "Help a reader answer which plan and period fit their requirements, with a local selection they can revise.",
          "audience_value": "Reduces the amount of feature detail shown at once, while preserving access to alternatives; it does not establish affordability or complete a purchase.",
          "reading_path": [
            "Set or inspect the stated period first so the prices mean the same thing.",
            "Compare the three names and audience labels, then expand a row to examine its features and allowance.",
            "Use Show all details when comparing fine differences; a selected row is a preference, not a completed order."
          ],
          "adaptation": {
            "required_inputs": [
              "Three approved plans with audience, price/period, three features and allowance.",
              "Honest yearly and monthly terms if a period toggle is enabled."
            ],
            "slot_guidance": {
              "plan-1": "Entry plan for a specific audience: name, comparable price, three real inclusions and allowance.",
              "plan-2": "Middle plan on the same field definitions; explain the meaningful increment.",
              "plan-3": "Highest plan on the same basis; do not imply unlimited scope without a real limit."
            },
            "can_change": [
              "Plan copy, supported periods and which row is expanded."
            ],
            "must_survive": [
              "One shared price basis at a time.",
              "All features remain accessible without interaction.",
              "The selector is not a billing engine; period labels cannot imply an automatic discount."
            ]
          },
          "worked_example": {
            "fictional": true,
            "scenario": "A fictional workshop evaluates memberships with different visit allowances.",
            "slot_fills": {
              "plan-1": "Bench · Occasional repairers · 20 credits/month · Safety induction; supervised bench; tool library · One visit monthly.",
              "plan-2": "Maker · Regular repairers · 40 credits/month · Safety induction; supervised bench; tool library · Four visits monthly.",
              "plan-3": "Studio · Frequent repairers · 70 credits/month · Safety induction; supervised bench; tool library · Eight visits monthly."
            },
            "reasoning": "The same feature labels isolate the allowance difference; selection helps inspect fit without inventing a transaction.",
            "qualification": "Fictional prices and allowances. Annual pricing must be supplied independently; the preview does not calculate it."
          },
          "narrative_fit": {
            "before": "Explain what a supervised visit includes and the reader’s likely frequency.",
            "after": "Review full terms and availability before any real enrollment.",
            "good_uses": [
              "An interactive membership or package selector."
            ],
            "poor_fits": [
              "A static dense procurement comparison with many conditions.",
              "Claims that selecting a row activates a subscription."
            ]
          },
          "evidence": {
            "observations": [
              "The viewed option capture contains a period control above three plan rows with one expanded feature list.",
              "Current plan-selector HTML has three plan slots, an allowance paragraph and a note disclosing no billing calculation or checkout."
            ],
            "interpretations": [
              "Disclosure is a way to inspect alternatives, not evidence that one is better."
            ],
            "not_verified": [
              "Original author intent, factual claims and persuasion effects are not independently verified.",
              "No confidential proposal corpus was used or validated."
            ],
            "references": [
              "dist/S57-comparison-columns/spread.json",
              "dist/S57-comparison-columns/spread.html",
              "02_product/spreads/S57-comparison-columns/source.webp (viewed; structure only)",
              "Hoffman L53 Comparison columns",
              "02_product/spreads/S57-comparison-columns/source-opt-plan-selector.webp (viewed)",
              "https://uselayouts.com/docs/components/pricing-card"
            ]
          },
          "review": {
            "status": "reviewed",
            "basis": "Motif reviewed the current slot contract, selected markup and cited local source captures for faithful adaptation; this is not confirmation of original author intent."
          },
          "variation_relationship": "different-job"
        },
        "required_content": [
          "Three approved plans with audience, price/period, three features and allowance.",
          "Honest yearly and monthly terms if a period toggle is enabled."
        ],
        "requires_before": [
          "Explain what a supervised visit includes and the reader’s likely frequency."
        ],
        "enables_after": [
          "Review full terms and availability before any real enrollment."
        ],
        "avoid_when": [
          "A static dense procurement comparison with many conditions.",
          "Claims that selecting a row activates a subscription."
        ]
      }
    },
    "narrative_profile": {
      "central_point": "A choice can be judged against shared criteria and genuine tradeoffs.",
      "communication_job": "Help a buyer answer: which option meets our stated needs, and what do we give up by spending less or more?",
      "audience_value": "Decision support: puts benefits, exclusions and price on the same basis so the reader can challenge the recommendation rather than accept a highlighted column.",
      "reading_path": [
        "Read the title to identify the decision, then the shared foundation to separate common work from real differences.",
        "Scan each criterion across columns before reading one option down: like-for-like rows reveal tradeoffs.",
        "Test the emphasized option against the stated decision criteria, then read the footnote for pricing and scope limits."
      ],
      "adaptation": {
        "required_inputs": [
          "Two to four viable alternatives.",
          "Six to eight identical comparison criteria with comparable units and periods.",
          "Genuinely common inclusions and explicit exclusions.",
          "An evidence-based selection rationale and terms."
        ],
        "slot_guidance": {
          "title-bar": "Name the buying decision; use the section marker only for orientation.",
          "foundation": "State work included in every option once; do not hide a variable scope here.",
          "columns": "Each option answers the same six to eight questions in the same order. Values explain the consequence of buying that option.",
          "footnote": "State currency, basis, validity or limits that could change the comparison."
        },
        "can_change": [
          "Option names, subject, number of columns within two to four, criteria and prices.",
          "The recommended option, only when criteria justify it."
        ],
        "must_survive": [
          "Identical row meanings and units across options.",
          "Common work separated from added work.",
          "Visible limitations; a color highlight is not supporting evidence."
        ]
      },
      "worked_example": {
        "fictional": true,
        "scenario": "A fictional repair cooperative chooses how broadly to test a new booking process.",
        "slot_fills": {
          "title-bar": "Choose the booking test scope | Scope",
          "foundation": "Every option includes a protocol, consent process, findings report and one decision workshop.",
          "columns": [
            "A · One branch. Coverage: North branch. Participants: 12. Journey: booking only. Second audience: none. Comparison: current process. Fee: 2,000 credits. Repeat: 1,500 credits.",
            "B · Both branches. Coverage: North and South. Participants: 24. Journey: booking and arrival. Second audience: reception staff. Comparison: current process. Fee: 3,200 credits. Repeat: 2,400 credits.",
            "C · Both plus access. Coverage: North and South. Participants: 36. Journey: booking and arrival. Second audience: staff and interpreters. Comparison: current and telephone booking. Fee: 4,800 credits. Repeat: 3,600 credits."
          ],
          "footnote": "Fictional fixed fees in credits; same protocol. B covers both branches; C is needed only if interpreter access joins the decision."
        },
        "reasoning": "B closes the stated two-branch coverage gap. C answers an additional access question; it is not simply a more impressive number.",
        "qualification": "All organizations, fees and counts are invented to demonstrate comparison logic, not a commercial offer."
      },
      "narrative_fit": {
        "before": "Establish the decision: whether one booking process can work at both branches, and whether language access is in scope.",
        "after": "Confirm the chosen scope, then show the method and delivery commitments.",
        "good_uses": [
          "Scope or supplier decisions with aligned criteria.",
          "A reference page buyers can revisit during discussion."
        ],
        "poor_fits": [
          "Sequential work stages.",
          "Options with different denominators or important qualifications that cannot fit."
        ]
      },
      "evidence": {
        "observations": [
          "The retained capture shows a shared inclusion band, three aligned scope columns, a highlighted middle option and a terms footnote.",
          "Current HTML retains those roles and repeats the same row labels in each column."
        ],
        "interpretations": [
          "The structure is useful for explaining sufficient scope and the marginal value of optional modules."
        ],
        "not_verified": [
          "Original author intent, factual claims and persuasion effects are not independently verified.",
          "No confidential proposal corpus was used or validated."
        ],
        "references": [
          "dist/S57-comparison-columns/spread.json",
          "dist/S57-comparison-columns/spread.html",
          "02_product/spreads/S57-comparison-columns/source.webp (viewed; structure only)",
          "Hoffman L53 Comparison columns"
        ]
      },
      "review": {
        "status": "reviewed",
        "basis": "Motif reviewed the current slot contract, selected markup and cited local source captures for faithful adaptation; this is not confirmation of original author intent."
      },
      "variation_relationship": "base"
    }
  },
  "options": [
    {
      "id": "pricing",
      "what": "Pricing plans: centred title, plan cards with a tier bar, big price, two lines and a button; the recommended plan raised"
    },
    {
      "id": "plan-selector",
      "what": "Compact vertical plan selector: period controls above three plan rows; selected row expands its approved features. No billing engine.",
      "sources": [
        {
          "ref": "useLayouts Pricing Card",
          "url": "https://uselayouts.com/docs/components/pricing-card"
        }
      ]
    }
  ],
  "also_seen_in": [],
  "source": {
    "ref": "Hoffman L53 Comparison columns",
    "url": "https://github.com/neekchan/hoffman-agency-design-system/blob/main/templates/deck/Deck.dc.html"
  }
}
