{
  "hash": {
    "algo": "sha256",
    "value": "a9b18b41964725f62d44a4e270a89c5f5328026e65d7c200718aba8d9d86d326"
  },
  "version": "0.3.0",
  "meta": {
    "title": "Surveyframe Demo: Survey Title",
    "version": "0.3.0",
    "description": "Simulated questionnaire covering section breaks, text blocks, text, textarea, single choice, multiple choice, numeric, date, Likert, matrix, slider, ranking, rating, branching, attention checks, scored scales, and analysis plans.",
    "authors": "Mohammed Ali Sharafuddin",
    "languages": "en",
    "validated": true,
    "created_at": "2026-05-14T14:52:22Z"
  },
  "items": [
    {
      "id": "sec_intro",
      "label": "Section 1: Visit background",
      "type": "section_break",
      "required": false,
      "reverse": false,
      "section_intro": "A few questions about your visit and how you planned it.",
      "page": 1
    },
    {
      "id": "info_block",
      "label": "This is a display text block. It should not be treated as a response variable.",
      "type": "text_block",
      "required": false,
      "reverse": false,
      "page": 1
    },
    {
      "id": "respondent_name",
      "label": "Respondent display name",
      "type": "text",
      "required": false,
      "reverse": false,
      "placeholder": "Optional short name",
      "page": 1
    },
    {
      "id": "visit_type",
      "label": "Was this your first visit?",
      "type": "single_choice",
      "required": true,
      "choice_set": "visit_type",
      "reverse": false,
      "page": 1
    },
    {
      "id": "visit_purpose",
      "label": "What was the main purpose of your visit?",
      "type": "single_choice",
      "required": true,
      "choice_set": "visit_purpose",
      "reverse": false,
      "page": 1
    },
    {
      "id": "other_purpose",
      "label": "Please specify the other purpose.",
      "type": "text",
      "required": false,
      "reverse": false,
      "placeholder": "Write the other purpose",
      "page": 1
    },
    {
      "id": "information_channels",
      "label": "Which channels helped you before the visit?",
      "type": "multiple_choice",
      "required": true,
      "choice_set": "channels",
      "reverse": false,
      "help": "Select all that apply.",
      "page": 1
    },
    {
      "id": "booking_date",
      "label": "When did you make the booking?",
      "type": "date",
      "required": true,
      "reverse": false,
      "page": 1
    },
    {
      "id": "nights_stayed",
      "label": "How many nights did you stay?",
      "type": "numeric",
      "required": true,
      "reverse": false,
      "help": "Enter the number of nights.",
      "page": 1
    },
    {
      "id": "sec_experience",
      "label": "Section 2: Experience and service ratings",
      "type": "section_break",
      "required": false,
      "reverse": false,
      "section_intro": "Tell us how you rate the digital information and the service you received.",
      "page": 2
    },
    {
      "id": "digital_ease",
      "label": "Online information made the visit easier to plan.",
      "type": "likert",
      "required": true,
      "choice_set": "agree5",
      "scale_id": "digital_experience",
      "reverse": false,
      "page": 2
    },
    {
      "id": "digital_trust",
      "label": "The online information appeared trustworthy.",
      "type": "likert",
      "required": true,
      "choice_set": "agree5",
      "scale_id": "digital_experience",
      "reverse": false,
      "page": 2
    },
    {
      "id": "digital_confusion",
      "label": "Online information made the planning process confusing.",
      "type": "likert",
      "required": true,
      "choice_set": "agree5",
      "scale_id": "digital_experience",
      "reverse": true,
      "page": 2
    },
    {
      "id": "service_matrix",
      "label": "Please rate the following service aspects.",
      "type": "matrix",
      "required": true,
      "choice_set": "agree5",
      "reverse": false,
      "matrix_items": ["Cleanliness", "Staff helpfulness", "Food quality", "Transport support"],
      "page": 2
    },
    {
      "id": "value_slider",
      "label": "How would you rate value for money?",
      "type": "slider",
      "required": true,
      "reverse": false,
      "slider_min": 0,
      "slider_max": 100,
      "slider_step": 5,
      "page": 2
    },
    {
      "id": "feature_ranking",
      "label": "Rank the following features by importance.",
      "type": "ranking",
      "required": true,
      "choice_set": "feature_rank",
      "reverse": false,
      "page": 2
    },
    {
      "id": "overall_rating",
      "label": "Overall experience rating",
      "type": "rating",
      "required": true,
      "reverse": false,
      "rating_max": 5,
      "rating_icon": "star",
      "page": 2
    },
    {
      "id": "sec_feedback",
      "label": "Section 3: Intentions and feedback",
      "type": "section_break",
      "required": false,
      "reverse": false,
      "section_intro": "Your future intentions, a quick check, and any final comments.",
      "page": 3
    },
    {
      "id": "recommend",
      "label": "I would recommend this service to others.",
      "type": "likert",
      "required": true,
      "choice_set": "agree5",
      "scale_id": "behavioural_intention",
      "reverse": false,
      "page": 3
    },
    {
      "id": "reuse",
      "label": "I would use a similar service again.",
      "type": "likert",
      "required": true,
      "choice_set": "agree5",
      "scale_id": "behavioural_intention",
      "reverse": false,
      "page": 3
    },
    {
      "id": "attention",
      "label": "For quality control, please select Agree.",
      "type": "single_choice",
      "required": true,
      "choice_set": "agree5",
      "reverse": false,
      "page": 3
    },
    {
      "id": "follow_up_permission",
      "label": "May the research team contact you for clarification?",
      "type": "single_choice",
      "required": true,
      "choice_set": "yes_no",
      "reverse": false,
      "page": 3
    },
    {
      "id": "open_comment",
      "label": "Please add any comments about your visit.",
      "type": "textarea",
      "required": false,
      "reverse": false,
      "placeholder": "Optional comment",
      "page": 3
    }
  ],
  "choices": [
    {
      "id": "agree5",
      "values": [1, 2, 3, 4, 5],
      "labels": ["Strongly disagree", "Disagree", "Neither agree nor disagree", "Agree", "Strongly agree"],
      "allow_other": false,
      "randomise": false
    },
    {
      "id": "visit_type",
      "values": ["first_time", "repeat"],
      "labels": ["First-time visitor", "Repeat visitor"],
      "allow_other": false,
      "randomise": false
    },
    {
      "id": "visit_purpose",
      "values": ["holiday", "business", "family", "education", "other"],
      "labels": ["Holiday", "Business", "Family visit", "Education", "Other"],
      "allow_other": false,
      "randomise": false
    },
    {
      "id": "channels",
      "values": ["search_engine", "instagram", "facebook", "youtube", "travel_blog", "friend"],
      "labels": ["Search engine", "Instagram", "Facebook", "YouTube", "Travel blog", "Friend or family"],
      "allow_other": false,
      "randomise": false
    },
    {
      "id": "yes_no",
      "values": ["yes", "no"],
      "labels": ["Yes", "No"],
      "allow_other": false,
      "randomise": false
    },
    {
      "id": "feature_rank",
      "values": ["service_quality", "price", "sustainability", "location", "digital_information"],
      "labels": ["Service quality", "Price", "Sustainability", "Location", "Digital information"],
      "allow_other": false,
      "randomise": false
    }
  ],
  "scales": [
    {
      "id": "digital_experience",
      "label": "Digital experience",
      "items": ["digital_ease", "digital_trust", "digital_confusion"],
      "method": "mean",
      "min_valid": 2,
      "reverse_items": "digital_confusion"
    },
    {
      "id": "behavioural_intention",
      "label": "Behavioural intention",
      "items": ["recommend", "reuse"],
      "method": "mean",
      "min_valid": 2
    }
  ],
  "branching": [
    {
      "item_id": "other_purpose",
      "depends_on": "visit_purpose",
      "operator": "==",
      "value": "other",
      "action": "show"
    }
  ],
  "checks": [
    {
      "id": "attention_agree",
      "item_id": "attention",
      "type": "attention",
      "pass_values": 4,
      "fail_action": "flag",
      "label": "Instructional attention check",
      "notes": "Respondent should select Agree."
    }
  ],
  "analysis_plan": [
    {
      "id": "rq_digital_bi",
      "research_question": "Is digital experience associated with behavioural intention?",
      "family": "association",
      "method": "correlation_pearson",
      "test": "correlation_pearson",
      "roles": {
        "x": "digital_experience",
        "y": "behavioural_intention"
      },
      "variables": ["digital_experience", "behavioural_intention"],
      "options": {
        "alpha": 0.05
      },
      "hypotheses": {
        "null": "Digital experience is not associated with behavioural intention.",
        "alternative": "Digital experience is associated with behavioural intention."
      },
      "decision_rule": "Report the direction, size, and uncertainty of the relationship.",
      "interpretation": "Report the direction, size, and uncertainty of the relationship.",
      "reporting_references": [],
      "citations": [],
      "status": "valid_plan",
      "requires_data": true,
      "alpha": 0.05
    },
    {
      "id": "rq_visit_rating",
      "research_question": "Do first-time and repeat visitors differ in overall rating?",
      "family": "group_comparison",
      "method": "mann_whitney",
      "test": "mann_whitney",
      "roles": {
        "group": "visit_type",
        "outcome": "overall_rating"
      },
      "variables": ["visit_type", "overall_rating"],
      "options": {
        "alpha": 0.05
      },
      "hypotheses": {
        "null": "First-time and repeat visitors do not differ in overall rating.",
        "alternative": "First-time and repeat visitors differ in overall rating."
      },
      "decision_rule": "Compare the distribution of ratings across visitor groups.",
      "interpretation": "Compare the distribution of ratings across visitor groups.",
      "reporting_references": [],
      "citations": [],
      "status": "valid_plan",
      "requires_data": true,
      "alpha": 0.05
    },
    {
      "id": "rq_freq",
      "research_question": "What is the distribution of visit purposes in the sample?",
      "variables": "visit_purpose",
      "test": "frequency",
      "method": "frequency",
      "alpha": 0.05,
      "family": "descriptive",
      "roles": [],
      "options": [],
      "decision_rule": "Report absolute and relative frequencies for each category.",
      "interpretation": "Report absolute and relative frequencies for each category.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_desc",
      "research_question": "What are the central tendency and spread of all Likert and rating items?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion", "recommend", "reuse", "overall_rating"],
      "test": "descriptives",
      "method": "descriptives",
      "alpha": 0.05,
      "family": "descriptive",
      "roles": [],
      "options": [],
      "decision_rule": "Inspect mean, SD, skewness, and kurtosis for each item.",
      "interpretation": "Inspect mean, SD, skewness, and kurtosis for each item.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_missing",
      "research_question": "What is the pattern of missing responses across items?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion", "recommend", "reuse", "overall_rating", "nights_stayed"],
      "test": "missing_data",
      "method": "missing_data",
      "alpha": 0.05,
      "family": "descriptive",
      "roles": [],
      "options": [],
      "decision_rule": "Flag items with more than 10 per cent missing.",
      "interpretation": "Flag items with more than 10 per cent missing.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_quality",
      "research_question": "Do respondents meet attention check and data quality thresholds?",
      "test": "quality",
      "method": "quality",
      "alpha": 0.05,
      "family": "data_quality",
      "roles": [],
      "options": [],
      "decision_rule": "Exclude respondents who fail the attention check or complete in under 60 seconds.",
      "interpretation": "Exclude respondents who fail the attention check or complete in under 60 seconds.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_scale_desc",
      "research_question": "What are the mean, SD, and range of each composite scale?",
      "test": "scale_descriptives",
      "method": "scale_descriptives",
      "alpha": 0.05,
      "family": "descriptive",
      "roles": [],
      "options": [],
      "decision_rule": "Report scale-level descriptives alongside item-level results.",
      "interpretation": "Report scale-level descriptives alongside item-level results.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_alpha",
      "research_question": "What is the Cronbach alpha internal consistency of each scale?",
      "test": "reliability_alpha",
      "method": "reliability_alpha",
      "alpha": 0.05,
      "family": "reliability",
      "roles": [],
      "options": [],
      "decision_rule": "Flag any scale with alpha below 0.70 as requiring revision.",
      "interpretation": "Flag any scale with alpha below 0.70 as requiring revision.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_omega",
      "research_question": "What is the McDonald omega reliability of each scale?",
      "test": "reliability_omega",
      "method": "reliability_omega",
      "alpha": 0.05,
      "family": "reliability",
      "roles": [],
      "options": [],
      "decision_rule": "Compare omega to alpha; prefer omega when item loadings are unequal.",
      "interpretation": "Compare omega to alpha; prefer omega when item loadings are unequal.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_item_diag",
      "research_question": "Which items show low item-total correlations or reduce alpha on removal?",
      "test": "item_diagnostics",
      "method": "item_diagnostics",
      "alpha": 0.05,
      "family": "reliability",
      "roles": [],
      "options": [],
      "decision_rule": "Consider removing items with corrected item-total correlation below 0.30.",
      "interpretation": "Consider removing items with corrected item-total correlation below 0.30.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_efa_ready",
      "research_question": "Does the inter-item correlation matrix support exploratory factor analysis?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion", "recommend", "reuse"],
      "test": "efa_readiness",
      "method": "efa_readiness",
      "alpha": 0.05,
      "family": "measurement",
      "roles": [],
      "options": [],
      "decision_rule": "Proceed with EFA if KMO exceeds 0.60 and Bartlett test is significant.",
      "interpretation": "Proceed with EFA if KMO exceeds 0.60 and Bartlett test is significant.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_efa_sol",
      "research_question": "How many factors emerge from digital experience and behavioural intention items?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion", "recommend", "reuse"],
      "test": "efa_solution",
      "method": "efa_solution",
      "alpha": 0.05,
      "family": "measurement",
      "roles": [],
      "options": {
        "nfactors": 2
      },
      "decision_rule": "Retain factors with eigenvalue above 1 and inspect the scree plot.",
      "interpretation": "Retain factors with eigenvalue above 1 and inspect the scree plot.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_cfa_syntax",
      "research_question": "What is the lavaan CFA syntax for the two-factor measurement model?",
      "test": "cfa_lavaan_syntax",
      "method": "cfa_lavaan_syntax",
      "alpha": 0.05,
      "family": "measurement",
      "roles": {
        "model": [
          "input_types_cfa"
        ]
      },
      "options": [],
      "decision_rule": "Inspect syntax before fitting; confirm indicator counts meet CFA identification rules.",
      "interpretation": "Inspect syntax before fitting; confirm indicator counts meet CFA identification rules.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": false
    },
    {
      "id": "rq_sem_syntax",
      "research_question": "What is the CB-SEM lavaan syntax for digital experience predicting behavioural intention?",
      "test": "sem_lavaan_syntax",
      "method": "sem_lavaan_syntax",
      "alpha": 0.05,
      "family": "measurement",
      "roles": {
        "model": [
          "input_types_sem"
        ]
      },
      "options": [],
      "decision_rule": "Review structural paths before fitting to confirm the model is identified.",
      "interpretation": "Review structural paths before fitting to confirm the model is identified.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": false
    },
    {
      "id": "rq_pls_syntax",
      "research_question": "What is the PLS-SEM seminr syntax for the structural model?",
      "test": "seminr_syntax",
      "method": "seminr_syntax",
      "alpha": 0.05,
      "family": "measurement",
      "roles": {
        "model": [
          "input_types_sem"
        ]
      },
      "options": [],
      "decision_rule": "Use seminr syntax only when the seminr package is installed.",
      "interpretation": "Use seminr syntax only when the seminr package is installed.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": false
    },
    {
      "id": "rq_chisq",
      "research_question": "Is visitor type associated with attention check response level?",
      "variables": ["visit_type", "attention"],
      "test": "chi_square",
      "method": "chi_square",
      "alpha": 0.05,
      "family": "categorical",
      "roles": [],
      "options": [],
      "decision_rule": "Report chi-square, degrees of freedom, p value, and Cramer V.",
      "interpretation": "Report chi-square, degrees of freedom, p value, and Cramer V.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_crosstab",
      "research_question": "Is visit purpose associated with follow-up permission?",
      "variables": ["visit_purpose", "follow_up_permission"],
      "test": "crosstab",
      "method": "crosstab",
      "alpha": 0.05,
      "family": "categorical",
      "roles": [],
      "options": [],
      "decision_rule": "Inspect row percentages and report the effect size.",
      "interpretation": "Inspect row percentages and report the effect size.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_fisher",
      "research_question": "Is there an association between visitor type and follow-up permission?",
      "variables": ["visit_type", "follow_up_permission"],
      "test": "fisher_exact",
      "method": "fisher_exact",
      "alpha": 0.05,
      "family": "categorical",
      "roles": [],
      "options": [],
      "decision_rule": "Use Fisher p value; report phi for the 2 x 2 table.",
      "interpretation": "Use Fisher p value; report phi for the 2 x 2 table.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_ttest_ind",
      "research_question": "Do first-time and repeat visitors differ in mean digital experience?",
      "variables": ["visit_type", "digital_experience"],
      "test": "t_test_ind",
      "method": "t_test_ind",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report t, degrees of freedom, p value, and Cohen d.",
      "interpretation": "Report t, degrees of freedom, p value, and Cohen d.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_ttest_pair",
      "research_question": "Do respondents rate recommend and reuse items differently?",
      "variables": ["recommend", "reuse"],
      "test": "t_test_pair",
      "method": "t_test_pair",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report the mean difference, paired t statistic, and p value.",
      "interpretation": "Report the mean difference, paired t statistic, and p value.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_wilcoxon",
      "research_question": "Is there a significant distributional difference between digital ease and digital trust ratings?",
      "variables": ["digital_ease", "digital_trust"],
      "test": "wilcoxon_pair",
      "method": "wilcoxon_pair",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report W statistic, p value, and rank-biserial correlation.",
      "interpretation": "Report W statistic, p value, and rank-biserial correlation.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_kruskal",
      "research_question": "Does overall rating differ across visit purposes?",
      "variables": ["visit_purpose", "overall_rating"],
      "test": "kruskal_wallis",
      "method": "kruskal_wallis",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report H statistic, degrees of freedom, p value, and eta-squared.",
      "interpretation": "Report H statistic, degrees of freedom, p value, and eta-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_anova1",
      "research_question": "Does mean digital experience differ across visit purposes?",
      "variables": ["visit_purpose", "digital_experience"],
      "test": "anova_one",
      "method": "anova_one",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report F, degrees of freedom, p value, and partial eta-squared.",
      "interpretation": "Report F, degrees of freedom, p value, and partial eta-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_anova2",
      "research_question": "Do visitor type and visit purpose interact in predicting overall rating?",
      "test": "anova_two",
      "method": "anova_two",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": {
        "factor_a": [
          "visit_type"
        ],
        "factor_b": [
          "visit_purpose"
        ],
        "outcome": [
          "overall_rating"
        ]
      },
      "options": [],
      "decision_rule": "Report main effects and the interaction term with F, p value, and partial eta-squared.",
      "interpretation": "Report main effects and the interaction term with F, p value, and partial eta-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_ancova",
      "research_question": "Do visitor types differ in overall rating after controlling for nights stayed?",
      "test": "ancova",
      "method": "ancova",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": {
        "group": [
          "visit_type"
        ],
        "covariate": [
          "nights_stayed"
        ],
        "outcome": [
          "overall_rating"
        ]
      },
      "options": [],
      "decision_rule": "Report adjusted group means and the F test for the group factor after covariate removal.",
      "interpretation": "Report adjusted group means and the F test for the group factor after covariate removal.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_rep_anova",
      "research_question": "Do mean ratings differ across the three digital experience items within respondents?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion"],
      "test": "repeated_anova",
      "method": "repeated_anova",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report the within-subject F, degrees of freedom, p value, and partial eta-squared.",
      "interpretation": "Report the within-subject F, degrees of freedom, p value, and partial eta-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_friedman",
      "research_question": "Do ordinal ratings differ across the three digital experience items within respondents?",
      "variables": ["digital_ease", "digital_trust", "digital_confusion"],
      "test": "friedman",
      "method": "friedman",
      "alpha": 0.05,
      "family": "group_comparison",
      "roles": [],
      "options": [],
      "decision_rule": "Report Friedman chi-square, degrees of freedom, and p value.",
      "interpretation": "Report Friedman chi-square, degrees of freedom, and p value.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_spearman",
      "research_question": "Are digital experience perceptions associated with overall rating?",
      "variables": ["digital_experience", "overall_rating"],
      "test": "correlation_spearman",
      "method": "correlation_spearman",
      "alpha": 0.05,
      "family": "correlation",
      "roles": [],
      "options": [],
      "decision_rule": "Report rho, sample size, and p value.",
      "interpretation": "Report rho, sample size, and p value.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_kendall",
      "research_question": "Is nights stayed associated with overall rating?",
      "variables": ["nights_stayed", "overall_rating"],
      "test": "correlation_kendall",
      "method": "correlation_kendall",
      "alpha": 0.05,
      "family": "correlation",
      "roles": [],
      "options": [],
      "decision_rule": "Report tau, sample size, and p value.",
      "interpretation": "Report tau, sample size, and p value.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_partial",
      "research_question": "Is digital experience associated with behavioural intention after controlling for overall rating?",
      "test": "partial_correlation",
      "method": "partial_correlation",
      "alpha": 0.05,
      "family": "correlation",
      "roles": {
        "predictor": [
          "digital_experience"
        ],
        "outcome": [
          "behavioural_intention"
        ],
        "control": [
          "overall_rating"
        ]
      },
      "options": [],
      "decision_rule": "Report partial r, degrees of freedom, and p value.",
      "interpretation": "Report partial r, degrees of freedom, and p value.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_reg_lin",
      "research_question": "Do digital experience and nights stayed predict overall rating?",
      "variables": ["digital_experience", "nights_stayed", "overall_rating"],
      "test": "regression_linear",
      "method": "regression_linear",
      "alpha": 0.05,
      "family": "regression",
      "roles": [],
      "options": [],
      "decision_rule": "Report standardised coefficients, R-squared, and F test.",
      "interpretation": "Report standardised coefficients, R-squared, and F test.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_logit_bin",
      "research_question": "Do digital experience and overall rating predict follow-up permission?",
      "variables": ["digital_experience", "overall_rating", "follow_up_permission"],
      "test": "regression_logistic_binary",
      "method": "regression_logistic_binary",
      "alpha": 0.05,
      "family": "regression",
      "roles": [],
      "options": [],
      "decision_rule": "Report odds ratios with 95 per cent confidence intervals and Nagelkerke R-squared.",
      "interpretation": "Report odds ratios with 95 per cent confidence intervals and Nagelkerke R-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_logit_ord",
      "research_question": "Do digital experience and nights stayed predict ordered overall rating?",
      "variables": ["digital_experience", "nights_stayed", "overall_rating"],
      "test": "regression_logistic_ordinal",
      "method": "regression_logistic_ordinal",
      "alpha": 0.05,
      "family": "regression",
      "roles": {
        "predictors": [
          "digital_experience",
          "nights_stayed"
        ],
        "outcome": [
          "overall_rating"
        ]
      },
      "options": [],
      "decision_rule": "Report proportional odds ratios and model fit indices.",
      "interpretation": "Report proportional odds ratios and model fit indices.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_logit_mult",
      "research_question": "Do digital experience and overall rating predict visit purpose category?",
      "variables": ["digital_experience", "overall_rating", "visit_purpose"],
      "test": "regression_logistic_multinomial",
      "method": "regression_logistic_multinomial",
      "alpha": 0.05,
      "family": "regression",
      "roles": {
        "predictors": [
          "digital_experience",
          "overall_rating"
        ],
        "outcome": [
          "visit_purpose"
        ]
      },
      "options": [],
      "decision_rule": "Report odds ratios for each category contrast and pseudo R-squared.",
      "interpretation": "Report odds ratios for each category contrast and pseudo R-squared.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_moderation",
      "research_question": "Does visitor type moderate the relationship between digital experience and overall rating?",
      "test": "moderation",
      "method": "moderation",
      "alpha": 0.05,
      "family": "regression",
      "roles": {
        "predictor": [
          "digital_experience"
        ],
        "moderator": [
          "behavioural_intention"
        ],
        "outcome": [
          "overall_rating"
        ]
      },
      "options": [],
      "decision_rule": "Report the interaction coefficient, p value, and simple slopes.",
      "interpretation": "Report the interaction coefficient, p value, and simple slopes.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    },
    {
      "id": "rq_mediation",
      "research_question": "Does overall rating mediate the path from digital experience to behavioural intention?",
      "test": "mediation",
      "method": "mediation",
      "alpha": 0.05,
      "family": "regression",
      "roles": {
        "x": [
          "digital_experience"
        ],
        "mediator": [
          "overall_rating"
        ],
        "y": [
          "behavioural_intention"
        ]
      },
      "options": [],
      "decision_rule": "Report direct, indirect, and total effects with bootstrap confidence intervals.",
      "interpretation": "Report direct, indirect, and total effects with bootstrap confidence intervals.",
      "citations": [],
      "reporting_references": [],
      "status": "valid_plan",
      "requires_data": true
    }
  ],
  "models": [
    {
      "id": "input_types_cfa",
      "label": "input_types_cfa",
      "type": "cfa",
      "engine": "lavaan",
      "measurement": {
        "constructs": [
          {
            "id": "digital_experience",
            "items": ["digital_ease", "digital_trust", "digital_confusion"],
            "mode": "reflective"
          },
          {
            "id": "behavioural_intention",
            "items": ["recommend", "reuse"],
            "mode": "reflective"
          }
        ]
      },
      "structural": {
        "paths": [],
        "covariances": [],
        "indirect": []
      },
      "options": []
    },
    {
      "id": "input_types_sem",
      "label": "input_types_sem",
      "type": "cb_sem",
      "engine": "lavaan",
      "measurement": {
        "constructs": [
          {
            "id": "digital_experience",
            "items": ["digital_ease", "digital_trust", "digital_confusion"],
            "mode": "reflective"
          },
          {
            "id": "behavioural_intention",
            "items": ["recommend", "reuse"],
            "mode": "reflective"
          }
        ]
      },
      "structural": {
        "paths": [
          {
            "from": "digital_experience",
            "to": "behavioural_intention"
          }
        ],
        "covariances": [],
        "indirect": []
      },
      "options": []
    }
  ],
  "render": {
    "mode": "standard",
    "theme": "#1f6f78",
    "submit_label": "Submit response",
    "welcome": {
      "title": "surveyframe Input Types Demo",
      "intro_text": "This demo instrument covers the main input types supported by surveyframe. It is intended for testing the builder, studio, dashboard, and vignettes.",
      "consent_text": "I understand that this is simulated demonstration data.",
      "consent_required": true,
      "start_label": "Start demo"
    },
    "thankyou": {
      "message": "Thank you for completing the input-types demo.",
      "redirect_url": "",
      "show_download": true
    },
    "header": {
      "institution": "Surveyframe Demo: Title Card",
      "logo_base64": "[encoded data, 42892 characters]",
      "show_progress": true,
      "logo_media_type": "image/png"
    }
  }
}
