Choice lists distilled from novaWaste2
On this page
- 1. Form choice lists
- Generic answer sets
- Identification and lookup (entity pickers, not concepts)
- Service point and household
- Enrolment (consent and agreement)
- Baseline and current disposal practices
- Service delivery and exceptions
- Separation quality and contamination
- Material categories
- Evaluation: satisfaction and perceived change
- 2. System enumerations (not asked; derived or app-authored)
- 3. Proposed concept schemes
- 4. Forms not seen
Primary source: the live SurveyCTO definitions of the 27 non-fixture forms, ~/novaWasteStandard/reference/surveycto/choices.csv (abbreviated ref:choices.csv below). Its choice column holds the label and its choice_label column holds the value; the swap was checked on rows such as search_scan: choice_label = search, choice = "Search for stand". The file groups choices by question, not by XLSForm list_name. So a “list” below is a distinct value set, and its name is the question name, or the list_name where an .xlsx gives one. Also used: - pilot ~/novaWaste2/arch/design/surveycto/nova_waste_collection.xlsx (pilot:); - 2022 questionnaires ~/smashWaste/data/Vraelyste/*.xlsx (2022:); - DB and dbt enumerations in ~/novaWaste2 (nw2:).
Form shorthand is family/town: town mf = aap_mfidikwe_*, ik = aap_ikemeleng_* (plus aap_waste_imp_stand_enumeration_*), sb = norplats_* (plus wsf_sorting_evaluation_active1). Family names come from nw2:dbt/seeds/form_family.csv. Values are written value=label.
Scheme prefix wst-cs: is a placeholder for the new waste standard’s concept namespace.
1. Form choice lists
Generic answer sets
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
yes_no (pilot); ~95 questions in live forms |
every family, every town: e.g. confirm_stand, found_stand_confirmation, suitable_respondent_available, informed_adult_available, owner_available, respondent_concent_sober, study_info, participate_agreement, provide_bags, training_seperation, qr_code_location, qr_code_location_bin, correct_bin_use, bags_received, service_received, burn_waste, stand_fenced, stand_number_exists, stand_card_available, stand_card_door_missmatch, diversion_* (ik/sb), bag_use_* (mf), fw_comments, HH_comments, wp_compliance, waste_weight_scale_check, mf bins_still_available |
ref:choices.csv; pilot:choices |
Yes=Yes, No=No | none: xsd:boolean |
Not a concept scheme. wst should type these as booleans. |
yesno |
pilot nova_waste_collection (unused); 2022 both forms (waste_wet) |
pilot:choices; 2022: |
1=Yes, 0=No | none: xsd:boolean |
Same meaning as yes_no with numeric codes. |
diversion_of_non_recyclables value set |
stand_evaluation/mf: diversion_of_non_recyclables, diversion_of_organics, diversion_to_other_WPs, participation_all_households |
ref:choices.csv |
Yes=Yes, No=No, dont_know=I don’t know | none: boolean with “unknown” as absent value | ik/sb ask the same questions with plain yes/no. |
Identification and lookup (entity pickers, not concepts)
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
towns |
pilot nova_waste_collection |
pilot:choices; nw2:arch/design/surveycto/nova_towns.csv |
dataset nova_towns (value column slug, label column name): mfidikwe=Mfidikwe, ikemeleng=Ikemeleng, smashblock=Smashblock |
none: entity reference (project / town IRI) | ADR-0031. Project-specific. |
search_scan |
bin_placement/ik, mf | ref:choices.csv |
search=Search for stand, scan=Scan the QR code | none: input method, not data | UI routing only. |
scan_or_search |
bin_placement/sb | ref:choices.csv |
scan_qr=Scan QR-code, search=Search | none | Same as search_scan with different values. |
sorting_facility (4 sites) |
bin_placement/ik, enrollment/ik | ref:choices.csv |
wsf_1=Sorting Facility 1, wsf_2=Sorting Facility 2, wsf_3=Sorting Facility 3, wsf_4=Sorting Facility 4 | none: entity reference (Waste Site) | Project-specific. Derivable from the stand’s block (ADR-0028). |
sorting_facility (5 sites) |
bin_placement/sb, enrollment/sb | ref:choices.csv |
wsf_1 … wsf_5 = Sorting Facility 1 … 5 | none: entity reference | Project-specific. |
site_name / wsf_site (4 sites) |
collection_follow_up/ik, stand_evaluation/ik, sorting_evaluation/sb (both forms), wp_enrollment/ik, mf | ref:choices.csv |
wsf_1=Sorting facility 1, wsf_2=Sorting facility 2, wsf_3=Sorting facility 3, wsf_4=Sorting facility 4 | none: entity reference | mf’s picker list carries the ik site codes; sb sorting evaluation offers only 4 of sb’s 5 sites (drift). |
site_name / wsf_site (5 sites) |
collection_follow_up/sb, stand_evaluation/sb, wp_enrollment/sb | ref:choices.csv |
wsf_1 … wsf_5 = Sorting facility 1 … 5 | none: entity reference | |
enumeration_block (dynamic) |
bin_placement, collection_follow_up, enrollment, qrcode_replacement, stand_evaluation (ik, sb); block_number mf |
ref:choices.csv |
search() dataset columns, not values: enumeration_block=table_list_place_block / table_list_enrol_block / enumeration_block; mf block_number=table_block_number / block_number |
none: entity reference (Block) | Server datasets. Derivable from the stand. |
id / id_search (dynamic stand picker) |
bin_placement, collection_follow_up, enrollment, qrcode_replacement, stand_evaluation (all towns) | ref:choices.csv |
dataset columns: ik/sb id=nova_stand_number or table_list; mf erf_id=table_list_stands or table_list_follow_up |
none: entity reference (Stand / service point) | mf keys on erf; ADR-0026 replaced both keys with the Stand Reference. |
week_day (dynamic) |
collection_follow_up/mf | ref:choices.csv |
dataset columns week_day_short=week_day_follow_up |
none | Derivable from the service group. |
wday / WP_house_group (mf) |
collection/mf (WP_house_group); pilot service_group_day |
ref:choices.csv; pilot:choices |
Monday=Monday, Tuesday=Tuesday, Wednesday=Wednesday, Thursday=Thursday | none: entity reference (Service Group). If needed, xsd:date weekday or time:DayOfWeek |
In mf a service group code is a weekday (ADR-0031). |
Service point and household
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
stand_status (4) |
stand_enumeration/ik (aap_waste_imp_*), mf |
ref:choices.csv |
Residential=Residential, Non_Residential=Non-residential (Business or Church or School, etc), Vacant=Vacant (Empty stand/Structures are unoccupied), Business_residential=Business and Residential | wst-cs:ServicePointOccupancy (new) |
Mapped to occupied / vacant / non_residential / unknown in nw2:dbt/models/marts/mart_stand_eligibility.sql. |
stand_status (5) |
stand_enumeration/sb | ref:choices.csv |
as above plus un_occupied=Un-occupied | wst-cs:ServicePointOccupancy |
un_occupied is sb-only and is mapped to vacant. Its difference from Vacant is not defined. |
proximity_to_stand |
stand_enumeration/all | ref:choices.csv |
On_the_stand=On the stand, Outside=Outside the stand fence, 10m_to_20m=10 to 20 meters from the stand., more_20m=More than 20 meters | wst-cs:ObservationProximity (new) or drop |
ADR-0028: this can be derived from the device GPS against the stand location (gps_difference is already calculated). |
bin_set_size |
bin_placement/ik | ref:choices.csv |
big=Big bin set, small=Small bin set | wst-cs:ContainerTypes (new, with capacity) |
Project-specific sizes. A standard needs container type plus volume. |
deployment_type |
bin_placement/sb | ref:choices.csv |
first_deployment=First deployment, re_deployement=Re-deployment | wst-cs:DeploymentKinds (new) |
Derivable from earlier placements (ADR-0028). Value is misspelled (re_deployement). |
bins_still_available (ik/sb) |
collection_follow_up/ik, sb; stand_evaluation/ik, sb | ref:choices.csv |
3=Yes, 2=Only 2, 1=Only 1, 0=They are all gone | none: integer count of containers present | mf asks yes/no. stg_stand_evaluation.sql tests not in ('1','2'), so mixed vocabularies leak into SaS logic. |
bins_remaining |
collection_follow_up/ik, sb; stand_evaluation/ik, sb | ref:choices.csv |
organic=Organic, non_recycling=Non-recycling, recycling=Recycling | wst-cs:SeparationStreams |
select_multiple. The streams of the container set. |
bin_condition |
collection_follow_up/all, stand_evaluation/all | ref:choices.csv |
Very_good=Very good, Good=Good, Still_works_shows_damage=Still works but shows damage, Bad_condition=Bad condition | wst-cs:ContainerConditions (new, ordinal) |
Legacy scores 3/2/1/0 (legacy-views/ikemeleng/stand_evaluation_group_summary_daily.sql). |
qr_code_missing_reason (placement) |
bin_placement/all | ref:choices.csv |
missing_damaged=The QR-code is missing or damaged., unreachable=The QR-code is unreachable. (e.g. behind a locked gate) | wst-cs:IdentifierTagIssues (new) |
|
qr_code_missing_reason (follow-up, evaluation) |
collection_follow_up/all, stand_evaluation/all | ref:choices.csv |
missing_damaged_qr=The QR-code is missing or damaged., unreachable=The QR-code is unreachable. (e.g. Behind a locked gate) | wst-cs:IdentifierTagIssues |
Same concept as the placement list under a different value (missing_damaged_qr vs missing_damaged). Merge. |
qr_code_bin_missing_reason |
collection_follow_up/all, stand_evaluation/ik, sb | ref:choices.csv |
missing_damaged=The QR-code is missing or damaged., missing_bin=The bin with the QR-code is missing | wst-cs:IdentifierTagIssues |
Adds missing_bin, which is a container fate rather than a tag issue. |
select_replacement_qrcode |
qrcode_replacement/all | ref:choices.csv |
bin_qrcode=Bin QR-code, stand_qrcode=Stand QR-code | wst-cs:TaggedEntityTypes (new) |
DB twin: qr_code.entity_type in {stand, bin, person, service_group} (nw2:dbt/models/staging/_sources.yml). |
Enrolment (consent and agreement)
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
respondent_qualification_wiling |
enrollment/all | ref:choices.csv |
Yes=Yes, Nobody_home=There’s nobody home, Not_convenient_time=It is not convenient at this time to take part, No_suitable_person=There is no suitable respondent, No_hh_member_wants_take_part=No household member wants to take part, Unsafe_to_enter=I feel unsafe to enter this house, Empty_stand=Empty stand, Non_residential_stand=Non-residential stand | wst-cs:ContactOutcomes (new) |
Mixes contact outcome, refusal and occupancy. Empty_stand and Non_residential_stand duplicate ServicePointOccupancy. Legacy ad-hoc statuses Nobody_home, Reachable, Unreachable, Abandoned (nw2:db/legacy/import_terminations.sql) belong here too. |
respondent_age |
enrollment/all | ref:choices.csv |
Yes=Yes, No=No, Not_18_but_oldest_in_hh=Not 18, but the oldest person in the household | wst-cs:RespondentEligibility (new) |
A safeguard rule (adult or oldest). Normative candidate. |
discuss_family_or_sign |
enrollment/all | ref:choices.csv |
Sign=Sign, Discuss_with_residents=Discuss project with residents/households, Need_more_time_consider_contract=I need more time to consider the contract | wst-cs:EnrolmentDecisions (new) |
Sign is the completion test for enrolment (mart_stand_status.sql). |
Baseline and current disposal practices
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
organic_waste_current_disposal |
enrollment/all | ref:choices.csv |
Throw_away_other_waste=Throw away with other waste, Give_to_animals=I give it to the animals, Someone_collects_for_animals=Someone collects for animals, Burn_it_inside_yard=I burn it inside my yard, Make_compost=I make compost, Someone_collects_make_compost=Someone collects to make compost, Burn_it_outside_yard=I burn it outside my yard, Bury_in_yard=I bury it in my yard, Public_dumping_sites=Use public dumping sites, Other=Other | wst-cs:DisposalPractices (new, merged) |
select_multiple. Baseline. |
recycled_waste_disposal |
enrollment/all | ref:choices.csv |
Other=Other, Throw_everything_other_waste=Throw everything away with other waste, Recycle_some_myself=Recycle some myself, Keep_waste_picker_other_person=Keep for waste picker or other person | wst-cs:DisposalPractices |
select_one. |
Non_recycle |
enrollment/all | ref:choices.csv |
Other=Other, Burn_in_yard=Burn in my yard, Burn_outside_my_yard=Burn outside my yard, Communal_skip=Use the communal skip, Throw_away_public_place=Throw away in public place, Bury_yard=Bury in my yard, Some_one_collects=Some-one collects my waste, Take_to_landfill=I take it to the landfill | wst-cs:DisposalPractices |
Take_to_landfill corresponds to ccts-cs:landfilled (~/ii-test-standard/glossary/ccts-glossary.ttl). |
stream_without_bin (ik/sb) |
collection_follow_up/ik, sb; stand_evaluation/ik, sb | ref:choices.csv |
Put_with_other_waste_in_bin=Put with other waste in bin, Use_a_bag=Use a bag, Dump_in_street=Dump in street, Burn_it=Burn it, Other=Other | wst-cs:DisposalPractices |
Order differs between the follow-up and evaluation forms; the values are the same. |
stream_without_bin (mf) |
collection_follow_up/mf, stand_evaluation/mf | ref:choices.csv |
Use_a_bag=Use a bag, Dump_in_street=Dump in street, Burn_it=Burn it, Other=Other | wst-cs:DisposalPractices |
Lacks Put_with_other_waste_in_bin. |
diversion_of_organics_dispose (ik/sb) |
stand_evaluation/ik, sb | ref:choices.csv |
Dump_in_street=Dump in street, Feed_to_animals=Feed to animals, Compost=Compost, Burn=Burn | wst-cs:DisposalPractices |
|
diversion_of_organics_dispose (mf) |
stand_evaluation/mf | ref:choices.csv |
as ik/sb plus Dump_in_stand=Dump inside stand | wst-cs:DisposalPractices |
|
diversion_non_recyclables_dispose |
stand_evaluation/all | ref:choices.csv |
Dump_in_street=Dump in street, Other=Other, Burn=Burn, Bury_in_stand=Bury in stand, Take_to_landfill=Take to landfill | wst-cs:DisposalPractices |
Overlaps ccts-cs:landfilled. |
uncollected_waste |
stand_evaluation/mf | ref:choices.csv |
next_service=I kept the waste for the next service date, burned=I burned the waste, dumped=I dumped the waste, other=other | wst-cs:DisposalPractices |
Adds “kept for next service” (storage, not disposal). |
put_out |
stand_evaluation/mf | ref:choices.csv |
Yes=Yes, No=No, no_waste=I did not have any waste to put out | wst-cs:CollectionOutcomes (household view) |
Gives the reason the household saw for no collection. |
diversion_other_wp_type_waste |
stand_evaluation/all | ref:choices.csv |
Plastics=Plastics, Glass=Glass, Paper=Paper, Cans=Cans, E_waste=E-waste | wst-cs:MaterialCategories (coarse level) |
Leakage to informal collectors. Maps to cdm:PlasticWaste, GlassWaste, PaperWaste, MetalScrap. E-waste has no CDM concept. |
Service delivery and exceptions
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
collection_status (follow-up trigger) |
collection_follow_up/ik, sb | ref:choices.csv |
Missed_collection=Missed collection, Never_collected=Never collected | wst-cs:CollectionOutcomes |
Derived, should not be asked: it follows from the week status (mart_collection_status_asof.sql; legacy never-collected). |
missed_collection_reason (ik) |
collection_follow_up/ik | ref:choices.csv |
No_one_home_loced_away=No one was home and bins were locked away, No_waste_to_collect=Stand had no waste to collect, Bins_used_other_purposes=Bins were used for other purposes (like water storage), WP_not_attempt_to_collect=Waste Picker did not attempt collection from this stand, Other=Other | wst-cs:ServiceFailureReasons (new) |
Value is misspelled (loced). |
missed_collection_reason (mf, sb) |
collection_follow_up/mf, sb | ref:choices.csv |
Collect_no_QR=WP collected waste but did not scan a QR code, plus all ik values | wst-cs:ServiceFailureReasons |
Collect_no_QR is a recording failure, not a service failure. It matches the tracker description collection no qr. |
never_collected (ik) |
collection_follow_up/ik | ref:choices.csv |
Other=Other, No_one_home=No one has ever been at home on the appropriate date and time for collection, WP_not_aware_stand_service_block=The assigned Waste Picker was is not aware that this stand falls under their service block | wst-cs:ServiceFailureReasons |
|
never_collected (mf, sb) |
collection_follow_up/mf, sb | ref:choices.csv |
Collect_no_QR=WP collected waste but did not scan a QR code, No_waste_to_collect=Stand had no waste to collect, Bins_used_other_purposes=Bins were used for other purposes (like water storage), Other=Other, No_one_home=No one has ever been at home on the appropriate date and time for collection, WP_not_aware_stand_service_block=The assigned Waste Picker was is not aware that this stand falls under their service block | wst-cs:ServiceFailureReasons |
|
WP_relationship |
collection_follow_up/all, stand_evaluation/all | ref:choices.csv |
Yes=Yes, Everything_is_fine=No, everything is fine | none: boolean | Uses a non-standard “No” value. |
WP_relationship_issues |
collection_follow_up/all, stand_evaluation/all | ref:choices.csv |
Other=Other, Unfriendly=He/she is unfriendly, Argues_with_us=He/she argues with us, Not_properly_dressed_neat=He/she is not properly dressed or neat, Does_not_come_agreed_day=He/she does not come on the day we agreed, Makes_mess_when_collecting_waste=He/she makes a mess when collecting waste | wst-cs:CollectorConductIssues (new) |
select_multiple. Feeds grievance handling. |
Separation quality and contamination
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
SaS_recyclable_waste / SaS_non_recyclable_waste / SaS_organic_waste |
stand_evaluation/ik, sb | ref:choices.csv |
Yes=Yes, No=No, it is empty, Misused_bin=No, It is used for a different purpose. | wst-cs:ContainerContentStates (new) |
stg_stand_evaluation.sql adds the derived Missing_bin and Empty. |
SaS_recyclable_waste_quality |
stand_evaluation/ik, sb | ref:choices.csv |
Very_good=Very good - only recyclable waste in bin, Decent_little_mixing=Decent - a little bit of mixing, Average_noticable_mixing=Average - noticable mixing, Poor_lots_of_mixing=Poor - lots of mixing | wst-cs:SeparationQuality (new, ordinal 4) |
Same values for all three streams; only the Very_good label names the stream. Legacy scores 3/2/1/0. Dashboard consolidates to 3 levels (nw2:services/dashboard/email_weekly_charts.go). |
SaS_non_recyclable_waste_quality |
stand_evaluation/ik, sb | ref:choices.csv |
Very_good=Very good - only non recyclable waste in bin, Decent_little_mixing=Decent - a little bit of mixing, Average_noticable_mixing=Average - noticable mixing, Poor_lots_of_mixing=Poor - lots of mixing | wst-cs:SeparationQuality |
|
SaS_organic_waste_quality |
stand_evaluation/ik, sb | ref:choices.csv |
Very_good=Very good - only organic waste in bin, Decent_little_mixing=Decent - a little bit of mixing, Average_noticable_mixing=Average - noticable mixing, Poor_lots_of_mixing=Poor - lots of mixing | wst-cs:SeparationQuality |
|
sos_compliance (pilot) / SaS_compliance |
collection/ik, sb; pilot | ref:choices.csv; pilot:choices |
Perfect_no_problems=Perfect, no problems, Very_good_small_issues=Very good, small issues, Some_good_some_bad=Some good, some bad, Mostly_bad_mixing_contamination=Mostly bad, a lot of mixing/contamination, Looks_no_SoS=Looks like no S@S at all | wst-cs:SeparationQuality (load-level scale) |
A 5-level scale at the facility, against 4 levels at the bin. Merge into one ordinal scheme with a scopeNote per level, or keep two collections. |
material_inside_bag |
sorting_evaluation/sb (both forms) | ref:choices.csv |
Recyclable=Recyclable, Organic=Organic, Non_of_above_in_bag=No, I didn’t find any of these materials in the bag | wst-cs:SeparationStreams plus “none” |
dbt accepted_values test (nw2:dbt/models/staging/_staging_families.yml:794-796). |
Material categories
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
Waste_type_identified (pilot) / waste_groups_present |
collection/ik, sb; pilot | ref:choices.csv; pilot:choices |
HL_White_Paper=HL (White Paper), CMW_Magazines_Pamphlets=CMW (Magazines & Pamphlets), K4_Cardboard=K4 (Cardboard), FN_Newspaper=FN (Newspaper), Tertrapack_Longlife_milk=Tertrapack (Longlife milk), PET_Clear_plastic_bottles=PET Clear (plastic bottles), PET_Green_plastic_bottles=PET Green (plastic bottles), PET_Blue_plastic_bottles=PET Blue (plastic bottles), PET_Brown=PET Brown, HDPE_yogurt_ice_cream_tubs=HDPE (yogurt & ice cream tubs), HDPE_white=HDPE (White), HDPE_mixed=HDPE (Mixed), LDPE_Clear_plastic_wrapping=LDPE Clear (plastic wrapping), LDPE_Mix_plastic_wrapping=LDPE Mix (plastic wrapping), LDPE_Shrinkwrap_plastic_wrapping=LDPE Shrinkwrap (plastic wrapping), Metal_cans=Metal (cans), Food_cans=Metal (Food Cans), Aluminium_cans=Metal (Aluminium Cans), Scrap_metal=Metal (Scrap), Glass=Glass, Electronic_waste=Electronic waste, Organic_waste=Organic waste, Sanitary_waste=Sanitary waste, Non_recyclable_waste=Non-recyclable waste, PP_containers=PP containers, PP_bottle_caps=PP bottle caps, PVC=PVC | wst-cs:MaterialCategories (new, hierarchical) |
The pilot filter column hides HDPE_yogurt_ice_cream_tubs and Metal_cans (filter 0). Paper grade codes (HL, CMW, K4, FN) are South African recycler trade grades, which makes them project- or region-level. Overlaps cdm:PaperWaste, PlasticWaste, MetalScrap, GlassWaste, MunicipalOrganicWaste (~/GHG_methodologies/CDMSemantic/cdmSemantic/inst/concepts/cdm-concepts.ttl). The selected value and the weight_* field name disagree (Food_cans vs weight_metal_food_cans); the catalog operational.waste_category uses the field-name codes. |
waste_types (2022) |
norplats_aq_waste_hh_analysis |
2022:norplats_aq_Waste_HH_Analysis.xlsx |
0=Plastics, 1=Metals, 2=Paper, 3=Organic waste, 4=Glass, 5=Textiles, 6=Hazardous waste, 7=Cardboard, 8=Electronic waste, 9=Sanitary waste, 10=Construction and demolition waste, 11=Soil,Ash&Dust, 12=Other | wst-cs:MaterialCategories (top level) |
A characterisation-grade list. Adds textiles, hazardous, C&D and soil/ash/dust, which are absent from the 2026 forms. |
volume_choice (2022) |
norplats_aq_waste_hh_analysis |
2022: |
0=Full, 1=3/4, 2=Half, 3=Quarter, 4=Less than a quarter | wst-cs:FillLevels (new, ordinal) |
Volume estimate of a container of known capacity. |
Evaluation: satisfaction and perceived change
| list name (source) | form(s) | source path | values | proposed concept scheme | notes |
|---|---|---|---|---|---|
project_satisfaction (ik/sb) |
stand_evaluation/ik, sb | ref:choices.csv |
1=1 … 10=10 (order in source: 3, 2, 1, 4, 5, 6, 7, 8, 9, 10) | none: integer rating 1–10 | mf runs 0–10 and the dashboard question text says 0–10. The ranges are inconsistent. |
project_satisfaction (mf) |
stand_evaluation/mf | ref:choices.csv |
0=0 … 10=10 | none: integer rating 0–10 | |
HH_feel_about_project |
stand_evaluation/all | ref:choices.csv |
QoL_much_worse=The waste project made our quality of life much worse, QoL_worse=…worse, QoL_no_change=…did not change our quality of life, QoL_better=…better, QoL_much_better=…much better | wst-cs:PerceivedChange (new, 5-point) |
The three QoL questions share a 5-level scale (email_weekly_charts.go wkQoLLevelNames). |
HH_feel_waste_collection |
stand_evaluation/all | ref:choices.csv |
Much_worse_than_before=Getting rid of waste is much worse than before the project, Worse_than_before=…worse…, Same_as_before=…the same…, Better_than_before=…better…, Much_better_than_before=…much better… | wst-cs:PerceivedChange |
|
HH_feel_cleanliness_community |
stand_evaluation/all | ref:choices.csv |
Much_dirtier_since_project=Our community is much dirtier since the project started, Dirtier_since_project=…dirtier…, Same_since_project=…the same (neither dirtier nor cleaner)…, Cleaner_since_project=…cleaner…, Much_cleaner_since_project=…much cleaner… | wst-cs:PerceivedChange |
3. Proposed concept schemes
Each scheme below is new under wst-cs:. Top concepts are candidates only.
| scheme | merges | candidate top concepts | external alignment |
|---|---|---|---|
wst-cs:MaterialCategories (hierarchical, skos:broader) |
waste_groups_present / Waste_type_identified, operational.waste_category, 2022 waste_types, diversion_other_wp_type_waste |
Paper and cardboard (HL, CMW, K4, FN); Plastics (PET clear/green/blue/brown; HDPE white/mixed/tubs; LDPE clear/mix/shrink; PP containers/caps; PVC); Metals (food cans, aluminium cans, scrap; legacy generic cans); Glass; Composite packaging (liquid cartons); Electrical and electronic waste; Organic (food/garden); Sanitary (nappies, hygiene); Textiles; Hazardous household waste; Construction and demolition; Soil, ash and dust; Residual (non-recyclable); Unsorted (mixed) | cdm:WasteTypeScheme: PaperWaste, PlasticWaste, MetalScrap, GlassWaste ⊂ RecyclableMaterial; Organic → MunicipalOrganicWaste. Gaps in CDM: e-waste, sanitary, textiles, hazardous, C&D, composite. Projects declare which leaf level they weigh at (project-level granularity). |
wst-cs:SeparationStreams |
bins_remaining, material_inside_bag, waste_category bucket, SaS streams |
Recyclable; Organic; Residual (non-recyclable); Sanitary; Mixed / unseparated | Each MaterialCategories leaf gets a default stream (skos:related), since the stream a material goes in is project design. |
wst-cs:SeparationQuality (ordinal) |
SaS_*_quality, SaS_compliance / sos_compliance |
Clean (only target stream); Minor contamination; Noticeable contamination; Heavy contamination; Not separated | Score via skos:notation 4…0. |
wst-cs:ContainerContentStates |
SaS_*_waste + derived Empty / Missing_bin |
Contains target waste; Empty; Used for other purpose; Container missing | — |
wst-cs:ContainerConditions (ordinal) |
bin_condition |
Very good; Good; Damaged but functional; Unusable | — |
wst-cs:ContainerTypes |
bin_set_size, 70 L bin / 20 L bucket (2022), bags |
Bin set (n bins, capacity); Single bin; Bag; Communal skip | Capacity as a property, not a concept. |
wst-cs:DisposalPractices |
organic_waste_current_disposal, recycled_waste_disposal, Non_recycle, stream_without_bin, diversion_*_dispose, uncollected_waste |
Project collection service; Other formal collection (municipal); Informal collector / other waste picker; Self-recycling; Composting (own / by others); Feeding to animals; Open burning (on own plot / off plot); Burial on plot; Dumping (street / public site / on plot); Communal skip; Self-haul to landfill; Kept for next collection; Mixed with other waste; Other | ccts-cs:DisposalRoutes: recycled ⊃ self-recycling, informal collector; landfilled ⊃ self-haul to landfill, communal skip (when skip goes to landfill). Burning, burial, dumping have no CCTS concept. They are leakage / emission routes for indicators. |
wst-cs:CollectionOutcomes |
follow-up collection_status, put_out, tracker descriptions, collection status ladder |
Collected; Collected, not recorded (no tag scan); No waste presented; No access to container; No access to service point; Not attempted; Never collected | Point-level observations versus week-level derived status: keep observed concepts here and make week status a derived state. |
wst-cs:ServiceFailureReasons |
missed_collection_reason, never_collected |
Nobody home / container locked away; No waste; Container misused; Collector did not attempt; Collector unaware of assignment; Collected without record; Other | — |
wst-cs:ServicePointOccupancy |
stand_status, occupancy class, Empty_stand / Non_residential_stand from enrolment |
Occupied: residential; Occupied: mixed residential and business; Non-residential (business, church, school); Vacant (empty or structures unoccupied) | The sb-only un_occupied is a narrower form of Vacant. |
wst-cs:ContactOutcomes |
respondent_qualification_wiling, legacy ad-hoc statuses |
Respondent available and willing; Nobody home; Inconvenient time; No suitable respondent; Household declines; Unsafe to enter; Not a residential service point; Unreachable after repeated attempts | Reusable across enrolment, placement, evaluation and follow-up visits (all ask confirm_stand / suitable_respondent). |
wst-cs:RespondentEligibility |
respondent_age, sober gate |
Adult; Oldest household member (minor); Not eligible | Safeguard: normative. |
wst-cs:EnrolmentDecisions |
discuss_family_or_sign |
Signed; Wants to consult household; Needs more time | Only Signed completes enrolment. |
wst-cs:IdentifierTagIssues |
qr_code_missing_reason (2 variants), qr_code_bin_missing_reason |
Tag missing or damaged; Tag unreachable; Tagged container missing | — |
wst-cs:TaggedEntityTypes |
select_replacement_qrcode, qr_code.entity_type |
Service point; Container; Collector; Service group | Possibly belongs to entities sweep. |
wst-cs:DeploymentKinds |
deployment_type |
First deployment; Redeployment (replacement); Retrieval (inferred) | Derivable; keep as a concept for the activity record. |
wst-cs:CollectorConductIssues |
WP_relationship_issues |
Unfriendly; Argumentative; Not properly dressed; Misses agreed day; Leaves mess; Other | Feeds grievance handling. |
wst-cs:PerceivedChange (ordinal 5) |
HH_feel_about_project, HH_feel_waste_collection, HH_feel_cleanliness_community |
Much worse; Worse; No change; Better; Much better | One scale, three questions (question = indicator, scale = concept). |
wst-cs:FillLevels (ordinal) |
volume_choice (2022) |
Full; Three quarters; Half; Quarter; Less than a quarter | — |
wst-cs:ObservationProximity |
proximity_to_stand |
On the plot; At the boundary; 10–20 m; More than 20 m | Prefer deriving from GPS (ADR-0028). |
wst-cs:VisitOutcomes |
attempt_outcome |
Completed; No respondent; Wrong service point | Generic across visit activities. |
wst-cs:ServiceExitEvents |
termination kind | Termination; Reversal (entered in error) | Greening ADR-0027 (correct and replace) may absorb Reversal. |
wst-cs:ActivityTypes (collection, as in ncgs-cs:ActivityTypes) |
activities-and-workflows.md §1 |
Service point enumeration; Household enrolment; Container deployment; Separation training; Collection round; Sort and weigh; Weighing at facility; Contamination audit; Service exception follow-up; Monitoring visit; Identifier maintenance; Collector enrolment; Material offtake; Residual delivery to disposal; Composting; Clean-up event; Waste characterisation; Service exit | ccts clean-up methodology for clean-up events. |
Not schemes: yes/no lists (booleans), satisfaction 0–10 / 1–10 (integer), bins_still_available 0–3 (integer), site / block / stand / town / weekday pickers (entity references by IRI, greening ADR-0022 pattern).
4. Forms not seen
All 27 non-fixture forms in nw2:dbt/seeds/form_family.csv are in ref:questions.csv and ref:choices.csv. Every form there has at least one choice row, and none failed.
Not covered: - nova_fixture_225_mfidikwe_collection and nova_fixture_225_mfidikwe_evaluation: test fixtures in form_family.csv, not live forms. - nova_waste_collection (ADR-0031 generic pilot): seen only as the design .xlsx, not deployed. Its lists are included above. - Location-tracker app tables (tbl_waste_picker_route, _log, _route_qrcode) have no choice lists. Scan descriptions arrive as free text (stg_picker_qr.sql). - The 2022 questionnaires were read from .xlsx only; there is no live definition for them.