What was the effect of end demand legislation on Canadian sex worker populations?
Bibliographic record
Abstract
Sex work in Canada is rapidly evolving, and this is reflected in where and how frequently sex workers advertise. The Protection of Communities and Exploited Persons Act (PCEPA) criminalized the purchase of sexual services in 2014. This study looks at the effect of this law using estimated sex worker populations based on classified advertising data. Data collected between December 9, 2022 and November 30, 2023 from a prominent classified advertising site used by contact sex workers in Canada is compared with data collected between November 1, 2014 and December 31, 2016 the two years following the introduction of PCEPA. Collected ads were analyzed to identify advertisers, names, and other demographic data such as ethnicity, gender, location and rates charged. Monthly, the mean estimated number of workers (17878, SD 1128) represented 84% of 2015 and 63% of 2016 estimates and, yearly, 90% of 2015 and 80% 2016 estimates respectively. Between 2016 and 2023 there were notable increases in the number of BIPOC and trans female advertisers. Median hourly rates increased from CAD$200 (IQR 160-250) in 2014-2016 to CAD$250, IQR 200-300) in 2022-2023. While most workers still engaged in contact sex work, a large majority of advertisers (61%, N=29308) have branched out to offer online services. Given the large increase in 2016, the decrease in 2023 was most likely the result of decreased advertising opportunities and not end demand legislation.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.006 | 0.023 |
| Meta-epidemiology (narrow) | 0.000 | 0.001 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.002 | 0.004 |
| Science and technology studies | 0.004 | 0.003 |
| Scholarly communication | 0.005 | 0.002 |
| Open science | 0.003 | 0.002 |
| Research integrity | 0.001 | 0.003 |
| Insufficient payload (model declined to judge) | 0.006 | 0.000 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".