Joint targeted coverage ranks locations by p_inf, which crowds out workplaces
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
Research direction
Start with generate_joint_intervention_switches() and trace its use of ach_to_p_inf(), volume_per_person_<setting>, and size_per_individual_<setting>. Review #139 and the discussion in #142 to resolve whether the budget metric uses floor area or air volume. Done means the selected benefit-per-budget ranking is implemented and compared with the current default-parameter coverage results for workplaces, schools, and leisure locations.
Written by the indexing model from the issue text.
Description
In joint targeted mode, generate_joint_intervention_switches() ranks the pooled workplace, school and leisure locations by ach_to_p_inf(). This was agreed in #142 as a minimum fix.
p_inf divides by volume_per_person_<setting>, which the transmission model never uses. The model's per-location FOI is riskiness_i × (1 − efficacy_i) × beta_s × I_i / N_i. As a result, leisure (8 m³ per person) outranks workplaces (27 m³ per person) at the same ACH. With default parameters at 33% joint coverage, only 4–13% of workplace people are covered, against 50–58% of leisure.
Proposed fix: rank by benefit per unit of budget, beta_s × riskiness_i × efficacy_i / cost_i, where cost_i depends on the coverage target:
- Per person: 1
- Per space: space per person ×
delta_i, since larger spaces cost more to ventilate. Space could be floor area or air volume. The currentsquare_footagetarget usessize_per_individual_<setting>, which is documented as either, while Wells-Riley usesvolume_per_person_<setting>. Which one to use is still open (see #139).
This gives a per-person and a per-space ranking to compare.
- Dominant language
- R
- Stars
- 8
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from petal-code/helios
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
petal-code/helios#174 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
petal-code/helios#173 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
petal-code/helios#166 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
petal-code/helios#161 ·
-
run_simulation() is not reproducible from seed: the leisure draw uses dqrng's own RNGPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
petal-code/helios#157 · 1 comment ·
All issues in petal-code/helios
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 71/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
OHDSI/PatientLevelPrediction#688 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rfordatascience/tidytuesday#1098 ·