CivicTechTO / CivicTechTO/toronto-bids
Toronto Police Service procurement (MERX)
- Dominant language
- Python
- Stars
- 7
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Part of #103. Blocked on #103's keyspace and terms-of-use decisions.
## What exists
Toronto Police Service posts open and closed solicitations on **MERX** — `https://www.merx.com/torontopolice`. Reported threshold: public tenders/RFPs over **$50,000**.
The Service also has a purchasing page at `https://torontopolice.on.ca/purchasing/` and a Procurement Services unit under Corporate Services Command (`tps.ca`).
## Note for whoever picks it up
**`torontopolice.on.ca/purchasing/` returns 403 to a plain HTTP client** — bot-gated, like TMMIS. The page exists (it is indexed and linked); it just is not readable without a real browser. Do not record it as "does not exist". If TPS's own site turns out to carry award results that MERX does not, that 403 is the obstacle, and `sources/council.py` already has the headed-Chromium pattern for exactly this.
## Scope
Same platform as TTC (#104) and the Parking Authority (#106). **This should be configuration of a MERX adapter, not a third scraper.** If it turns out to need its own code, that is a finding worth writing down.
## Sources
- https://www.merx.com/torontopolice
- https://www.tps.ca/organizational-chart/corporate-services-command/finance-business-management/procurement-services/
- https://www.tps.ca/services/do-business-service/
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading issue #103 for the keyspace and terms-of-use decisions, then compare the MERX work for TTC (#104) and the Parking Authority (#106). Inspect sources/council.py for the headed-Chromium pattern and identify the existing MERX adapter configuration. Done means TPS solicitations are covered through configuration, with any need for custom code documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100