# Survey Data Processing Actions

## Purpose

The public release was created so readers can examine and reproduce the survey findings without receiving respondents' identities, contact information, precise submission timing, petition-level records, response-linked geography, or unreviewed narrative answers. These steps reduce disclosure risk, but they do not guarantee anonymity when a person has outside knowledge of how someone responded.

## Preparing the source data

The survey was open from June 11 through July 11, 2026. A final cleaned dataset was frozen on July 15, 2026 and used for every public output; later changes to the live response file do not affect this release.

Before the freeze, the processing script applied the same repeatable rules to the full source file:

- Trimmed surrounding whitespace, standardized email case for duplicate detection, and removed form-option prefixes that had been introduced partway through collection.
- Removed exact duplicate submissions. Repeated submissions were reviewed: contradictory repeats were excluded, while a repeated response with consistent core answers was reduced to its more complete submission.
- Standardized recognized neighborhood aliases, not-applicable responses, and exact variants of a no-concern answer.
- Enforced question logic by clearing follow-up answers when their triggering choice did not apply, and removed non-substantive placeholders from narrative fields.
- Conservatively resolved multiple answers to the single-choice visit-frequency question by retaining the less-frequent category.
- Kept noncategorical greenspace-balance write-ins available for private qualitative review but removed them from the categorical balance field.

The source contained 128 submissions. Five duplicate or repeat submissions were removed under these rules, producing a frozen dataset of 123 responses and 35 source columns.

## Transforming the frozen data for public release

The public-release script left the frozen source unchanged and produced three different views of it.

For the row-level categorical file, it:

- Removed submission timestamps, email addresses, names, neighborhoods, all open-text fields, individual petition choices, and all petition contact and consent fields.
- Combined the five original respondent types into four broader groups. Occasional visitors were combined with nonresident trail users and visitors.
- Converted the greenspace preference questions into five mutually exclusive categories. A respondent who selected a mix without specifying its balance was assigned to the midpoint, "An even split," under the published analysis rule.
- Grouped crossing-safety, design-preference, and optional belief responses into broader categorical values.
- Represented eligible multi-select choices as Yes/No indicator columns and excluded all write-in text.
- Included a field only when every released value in that field appeared in at least five records. Fields that failed this minimum were omitted.
- Reordered records using a hash of the retained categorical values, so the original collection order and any identifier-derived key were not preserved.

For the aggregate summary file, it:

- Published counts, denominators, and percentages for released questions, including questions too sparse for row-level release.
- Combined neighborhoods represented by fewer than five respondents into an "Other neighborhoods (&lt;5 each)" category.
- Suppressed cross-tab cells below five.
- Reported petition and consent results only as aggregate totals. Consent covered sharing identifiable petition information with the City, not publishing it as row-level data.
- Labeled multi-select results so readers know that their percentages are based on respondents and are not expected to sum to 100%.

For the quotation file, it released only seven anonymous quotations that had already been reviewed and published in the community report. Quotations were checked for direct identifiers and contextual details that could reveal a respondent; raw narrative responses and multi-select write-ins were not released.

## Validation and quality checks

The release was checked against the frozen source before publication:

- The frozen source's recorded checksum and 123-response count had to match.
- The public microdata had to contain exactly 123 rows.
- Prohibited source fields could not appear in the public microdata.
- Every value in every released microdata field had to occur at least five times.
- Public CSVs were scanned for email addresses, phone numbers, street-address patterns, and known respondent names.
- Published petition totals were reconciled to the frozen source, and the five greenspace-preference categories were required to sum to 123.
- Checksums for all three public CSVs were recorded in the accompanying README.

The automated release check passed for the published files.

## Files produced

- `responses_public_2026-07-15.csv`: limited row-level categorical microdata.
- `responses_public_summary_2026-07-15.csv`: the authoritative public aggregate table, including suppression notes and aggregate-only results.
- `responses_public_quotes_2026-07-15.csv`: seven reviewed, anonymous quotations already used in the public report.
- `PUBLIC-DATA-README.md`: file descriptions, data dictionary, de-identification rules, provenance, checksums, citation guidance, and license.

## Limitations and responsible use

This release is de-identified, not anonymous. A person with detailed outside knowledge may still infer information from combinations of categorical answers. Users should not attempt to re-identify respondents or combine these files with private contact or petition lists.

The row-level file is intentionally incomplete: sparse fields, exact geography, individual petition data, and raw narrative responses are available only in generalized aggregates or are not public. The summary file should be treated as the authoritative source for published counts and denominators, especially for optional and multi-select questions.
