title "Weighting Demo using python" config hub { hub: 1234 table survey = p12345.response table wbasic = weights.basic_wights table wadvanced = weights.advanced_weights table wcell = weights.cell_weights table winterlocked = weights.interlocked_weights relation oneToOne { primaryKey: survey:responseid foreignKey: wbasic:responseid } relation oneToOne { primaryKey: survey:responseid foreignKey: wadvanced:responseid } relation oneToMany { foreignKey: survey:fiscal_year, survey:gender, survey:age_group, survey:region primaryKey: wcell:fiscal_year, wcell:gender, wcell:age_group, wcell:region } relation oneToMany { foreignKey: survey:gender, survey:age_group primaryKey: winterlocked:gender, winterlocked:age_group } weight expression #myweight_basic { table: survey: value: wbasic:weight } weight expression #myweight_advanced { table: survey: value: wadvanced:weight } weight expression #myweight_advanced_survey { table: survey: value: survey:adv_weight } weight expression #myweight_cell { table: survey: value: wcell:weight } weight expression #myweight_interlocked { table: survey: value: winterlocked:weight } } page #Page1 { label: "Basic weights" widget dataGridBeta #uwbasicgender { fixedHeader: true label: "Unweighted gender" size: medium column #colq { label: "Total" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: count(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #wbasicgender { fixedHeader: true label: "Weighted gender " size: medium useWeights: myweight_basic column #colq { label: "Total" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: wcount(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #uwbasicagegroup { fixedHeader: true label: "Unweighted age group" size: medium column #colq { label: "Total" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: count(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #wbasicagegroup { fixedHeader: true label: "Weighted age group " size: medium useWeights: myweight_basic column #colq { label: "Total" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: wcount(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #uwbasicregion { fixedHeader: true label: "Unweighted region" size: medium column #colq { label: "Total" } row cut #ban2 { value: survey:region totalLabel: "region" cell rowPercentage { value: count(survey:region) extraValue: count(survey:region) } } } widget dataGridBeta #wbasicregion { fixedHeader: true label: "Weighted region " size: medium useWeights: myweight_basic column #colq { label: "Total" } row cut #ban2 { value: survey:Region totalLabel: "age group" cell rowPercentage { value: wcount(survey:Region) extraValue: count(survey:Region) } } } } page #Page2 { label: "Advanced weights" widget dataGridBeta #uwadvancedgender { fixedHeader: true label: "Unweighted gender" size: large column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: count(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #wadvancedgender { fixedHeader: true label: "Weighted gender " size: large useWeights: myweight_advanced column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: wcount(survey:gender) extraValue: count(survey:gender) } } } // widget table #test { // table: survey: // column value { // value: survey:adv_weight // label: "adv_weight" // } // } widget dataGridBeta #wadvancedgender_survey { fixedHeader: true label: "Weighted gender (survey)" size: large useWeights: myweight_advanced_survey column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: wcount(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #uwadvancedagegroup { fixedHeader: true label: "Unweighted age group" size: medium column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: count(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #wadvancedagegroup { fixedHeader: true label: "Weighted age group " size: medium useWeights: myweight_advanced column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: wcount(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #uwadvancedregion { fixedHeader: true label: "Unweighted region" size: medium column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:region totalLabel: "region" cell rowPercentage { value: count(survey:region) extraValue: count(survey:region) } } } widget dataGridBeta #wadvancedregion { fixedHeader: true label: "Weighted region " size: medium useWeights: myweight_advanced column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:Region totalLabel: "age group" cell rowPercentage { value: wcount(survey:Region) extraValue: count(survey:Region) } } } widget dataGridBeta #uwadvancedfiscalyear { fixedHeader: true label: "Unweighted fiscal year" size: medium column #colq { label: "Total" } row cut #ban2 { value: survey:fiscal_year totalLabel: "fiscal year" cell rowPercentage { value: count(survey:fiscal_year) extraValue: count(survey:fiscal_year) } } } widget dataGridBeta #wadvancedfiscalyear { fixedHeader: true label: "Weighted fiscal year " size: medium useWeights: myweight_advanced column #colq { label: "Total" } row cut #ban2 { value: survey:fiscal_year totalLabel: "fiscal year" cell rowPercentage { value: wcount(survey:fiscal_year) extraValue: count(survey:fiscal_year) } } } } page #Page3 { label: "Cell weights" widget dataGridBeta #uwcellgender { fixedHeader: true label: "Unweighted gender" size: medium column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: count(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #wcellgender { fixedHeader: true label: "Weighted gender " size: medium useWeights: myweight_cell column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:gender totalLabel: "gender" cell rowPercentage { value: wcount(survey:gender) extraValue: count(survey:gender) } } } widget dataGridBeta #uwcellagegroup { fixedHeader: true label: "Unweighted age group" size: medium column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: count(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #wcellagegroup { fixedHeader: true label: "Weighted age group " size: medium useWeights: myweight_cell column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:age_group totalLabel: "age group" cell rowPercentage { value: wcount(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #uwcellregion { fixedHeader: true label: "Unweighted region" size: medium column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:region totalLabel: "region" cell rowPercentage { value: count(survey:region) extraValue: count(survey:region) } } } widget dataGridBeta #wcellregion { fixedHeader: true label: "Weighted region " size: medium useWeights: myweight_cell column cut #colq { value: survey:fiscal_year showLabel: true total: none label: "Fiscal year" } row cut #ban2 { value: survey:Region totalLabel: "age group" cell rowPercentage { value: wcount(survey:Region) extraValue: count(survey:Region) } } } widget dataGridBeta #uwcellfiscalyear { fixedHeader: true label: "Unweighted fiscal year" size: medium column #colq { label: "Total" } row cut #ban2 { value: survey:fiscal_year totalLabel: "fiscal year" cell rowPercentage { value: count(survey:fiscal_year) extraValue: count(survey:fiscal_year) } } } widget dataGridBeta #wcellfiscalyear { fixedHeader: true label: "Weighted fiscal year " size: medium useWeights: myweight_cell column #colq { label: "Total" } row cut #ban2 { value: survey:fiscal_year totalLabel: "fiscal year" cell rowPercentage { value: wcount(survey:fiscal_year) extraValue: count(survey:fiscal_year) } } } } page #Page4 { label: "Interlocked weights" widget dataGridBeta #uwagegenderrow { fixedHeader: true label: "Unweighted age vs gender (row percentage)" size: medium column cut #colq { value: survey:gender showLabel: true total: none label: "Gender" } row cut #ban2 { value: survey:age_group total: none showLabel: true cell rowPercentage { value: count(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #wagegenderrow { fixedHeader: true label: "Weighted age vs gender (row percentage)" size: medium useWeights: myweight_interlocked infobox { info: "Targets for male (percent per age group): 15, 10, 10, 10, 10 Targets for female: 15, 5, 15, 5, 5" } column cut #colq { value: survey:gender showLabel: true total: none label: "Gender" } row cut #ban2 { value: survey:age_group total: none showLabel: true cell rowPercentage { value: wcount(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #uwagegendercol { fixedHeader: true label: "Unweighted age vs gender (column percentage)" size: medium column cut #colq { value: survey:gender showLabel: true total: none label: "Gender" } row cut #ban2 { value: survey:age_group total: none showLabel: true cell columnPercentage { value: count(survey:age_group) extraValue: count(survey:age_group) } } } widget dataGridBeta #wagegendercol { fixedHeader: true label: "Weighted age vs gender (column percentage)" size: medium useWeights: myweight_interlocked infobox { info: "Targets for male (percent per age group): 15, 10, 10, 10, 10 Targets for female: 15, 5, 15, 5, 5" } column cut #colq { value: survey:gender showLabel: true total: none label: "Gender" } row cut #ban2 { value: survey:age_group total: none showLabel: true cell columnPercentage { value: wcount(survey:age_group) extraValue: count(survey:age_group) } } } }