Choice lists distilled from novaWaste2

Pre-release. This site describes standard version 0.1.0-dev, which is in development and may change before version 1.0.0.

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).

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

2. System enumerations (not asked; derived or app-authored)

These are not form choice lists, but they are value sets the standard’s concept schemes must cover.

enumeration values source proposed scheme
Stand status ladder enumerated, enrolled, placed, contract_terminated nw2:dbt/models/marts/mart_stand_status.sql wst-cs:ServicePointStates (derived state, novaOS)
Legacy stand status Enumerated, Enrolled, Bin_placed, Unreachable, Not_Sober, No_study_info, No_suitable_person, plus ad-hoc Contract_terminated, System_default, Reachable, Unreachable, Abandoned, Nobody_home legacy-views/ikemeleng/stand_status_view.sql; nw2:db/legacy/import_terminations.sql ServicePointStates / ContactOutcomes
Occupancy class occupied, vacant, non_residential, unknown mart_stand_eligibility.sql wst-cs:ServicePointOccupancy (top concepts)
Collection status (stand-week) collected, no-waste, no-bin-access, no-stand-access, un-scanned, pending-service, recent-placement, unknown; legacy never-collected, missed mart_collection_status.sql, mart_collection_status_asof.sql wst-cs:CollectionOutcomes
Tracker scan description collection, collection no qr, no collection, no waste, no stand access mart_collection_status.sql:212-218 wst-cs:CollectionOutcomes (as observed at the point)
Termination kind termination, reversal nw2:db/migrations/20261006000002_create_stand_termination_event.sql wst-cs:ServiceExitEvents
Evaluation attempt outcome completed, no_respondent, wrong_stand, unknown stg_stand_evaluation.sql; _staging_families.yml:230-232 wst-cs:VisitOutcomes
Schedule lifecycle / status issued, cancelled, superseded / completed, attempted, missed, scheduled 20260805000003_create_evaluation_scheduler.sql; mart_evaluation_schedule_status_current.sql platform (novaOS) step states, not standard concepts
Waste category bucket recyclable, non_recyclable, sanitary, organic (+ code unsorted → recyclable) nw2:db/migrations/20261007000300_create_waste_category.sql wst-cs:SeparationStreams
Tagged entity type stand, bin, person, service_group _sources.yml:210-212 wst-cs:TaggedEntityTypes
Weight flag kind slide, transposition, swapped_qr, wrong_picker, missing_usual_day, tracker_no_weight mart_weight_flags.sql operational
Payee exception null_started_at, pending, unresolved_qr, service_group_qr, stand_or_bin_qr int_collection_payee.sql operational
Payment statement status / cancel kind draft, signed_off, paid, canceled / rejected, canceled nw2:arch/erd/operational.payment_statement.md operational
Person position; org type; org relationship; person-stand relationship field_staff, waste_picker, supervisor, admin, other; nova, municipality, funder, subcontractor, partner, other; service_provider, municipality, funder, local_partner, other; resident, owner, head_of_household, responsible_party, other nw2:db/migrations/20260727000001_create_person_org_cluster.sql roles: sibling (entities) sweep
Collection / service-group mode sorted, unsorted / scan, day nova_towns.csv project parameters, not concepts

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.

This page explains the standard and does not decide conformance: only the released corpus does. It describes docs/distillation/choice-lists.md at standard version 0.1.0-dev.