Contribute park observations
Sensors, social posts, and event listings only see one slice of how a park is used. Human observation — a 30-minute look at a park on a Saturday afternoon — captures things no API can: who shows up, what they do, whether the place feels alive. We aggregate observations to the park level and discard any individual detail before it leaves the file you submit.
Join the active campaign
Summer Parks Observation Week · June 22–28, 2026
A coordinated week where volunteers each pick one park, sit for 30 minutes, and submit a structured observation. Aggregate-only. We're testing whether human observation can fill the gap that sensors and Google reviews leave open.
Submitting through a campaign helps us coordinate coverage and surface your observation alongside everyone else’s on a single dashboard. You can still submit ad-hoc using the steps below.
Open campaignFind a park id
The CSV expects a park_id_or_name in the first column. The id is preferred (it disambiguates parcels with the same name). Search any park below to copy the id straight into your spreadsheet.
What to record
One row per 30-minute observation window. Pick a park, sit somewhere with a clear view, set a 30-minute timer.
- Estimated total people in your line of sight (a count, not a guess of how many came that day).
- Counts of people sitting, walking, doing sports, with dogs, with children, seniors.
- Perceived safety (1–7), sociability (1–7).
- Weather, time, your confidence in your numbers (0.0–1.0).
- One short note: what made the place feel alive or empty.
What NOT to record
Privacy is non-negotiable.
- No names, faces, license plates, or other identifiers.
- No descriptions of specific individuals (clothing, race, body type).
- No photos or audio recordings — counts only.
- No incidents involving police, EMS, or shelter context.
We aggregate to park-level before publishing. Raw rows are reviewed and any field that violates these rules is stripped before the import.
How to submit
- Download the template CSV (link below). Open it in any spreadsheet — Google Sheets, Excel, Numbers.
- Fill in one row per observation window. Use the park-id finder above if you’re not sure which id to put in the first column. Comment lines start with
#— leave them as-is. - Save your filled-in CSV, then upload it using the form below. We’ll review, drop any rows that violate privacy rules, and merge into the next data build.
Upload your completed CSV
Filled out the template? Send it through here. Uploads are private to project admins until reviewed.
Example completed row
This is what one good 30-minute observation looks like.
park_id_or_name,observed_at,time_window_minutes,weather,estimated_people,sitting,walking,sports,dogs,children,seniors,perceived_safety,sociability,observer_confidence,notes toronto-4305324,2026-06-15T14:30:00,30,sunny,80,40,25,5,8,12,6,4,5,0.85,"Saturday afternoon — picnics on the slope; busy dog bowl"
park_id_or_namecan be a numeric park id (preferred — see the finder above, or any /parks/[id] URL) or the park name. Counts you didn't track can be left blank; observer_confidence tells the model how heavily to weight your row.
Questions or unsure about a field? Email infotorontoparksatlas.ca before you start.