Stories

COVID-19 vaccine effectiveness

Open the research page

Two studies: a Phuket cohort comparing two booster routes, and a national matched case-control study of severe COVID-19.

ImmunizationsConfirmed casesCo-wardCOVID-19 deathsEncrypted national ID156,574 assessed18,310 excluded138,264 analysedIntramuscularIntradermal88,87749,38725.9024.04Infections per 1,000 person-years, from day 141 Sep15 Sep1 Oct15 Oct31 Oct0100200Positive tests per day, Phuket, 2021IMID0204060800.9920.9940.9960.9981.000Days from day 14 after the boosterShare still uninfectedIntramuscularIntradermalNumber at riskID49,38749,32949,27049,17733,165IM88,87788,67688,57688,44588,332From day 14From day 21From day 283-day windows1-day windowsEach panel:share uninfected0.992 to 1.000days 0 to 950.250.5124Hazard ratio, intradermal vs intramuscularAll, adjustedMaleFemaleAge 40 or underAge 41 to 60Contact riskIllness riskStrata, unadjusted0.88 (0.76 to 1.02)International Journal of Infectious Diseases, 2024Thailand matched case-controlPhuket138,264 recordsThailandMore than 15 million recordsCOVID-19 testsDMS Co-labImmunizationMOPH-ICSeverityDMS Co-wardDeathsDDCSeparate owners, separate systemsEncrypted national IDMore than 15 million recordsJanuary 2020 to December 2022One monthof testsMaleFemalePUIContactOtherPUIContactOtherSexTesting reasonRecordsFemale, PUISplit again by exact ageAge AAge BAge CNo controlBoth cases, same fourDrawn more than onceCase droppedMatched setsConditional logisticregression, within each set26,827 cases107,308 control records0.050.10.250.51Unadjusted odds ratio, severe COVID-19Odds ratio within one month, risk-adjusted1 dose0.702 doses0.343 doses0.144 doses0.075 doses0.05July 2021 (Delta)March 2022 (Omicron)024681012+0.250.51Months since latest doseOdds ratioUsed in national booster-policy workPhuket: rationale1 / 26
  1. Phuket retrospective cohort

    Rationale

    1In Phuket, a one-fifth-dose intradermal ChAdOx1 booster was given after two CoronaVac doses, and it needed comparison with the standard intramuscular dose.From IJID 2024, Abstract · IJID 2024, Methods, p. 2

  2. Method

    2In a retrospective cohort, four record systems were linked through an encrypted national ID number.From IJID 2024, Data collection, p. 2 · Phuket_Vaccine Phuket Parquet.ipynb cell 4

  3. 3Of 156,574 records assessed, 18,310 were excluded, leaving 138,264.From IJID 2024, Fig 1, p. 4 · IJID 2024, Abstract; Sample size, p. 3

  4. 488,877 people received the intramuscular booster from 14 to 23 September 2021, and 49,387 the intradermal booster from 24 September to 3 October.From IJID 2024, Abstract; Methods p. 2 · Phuket_Vaccine Phuket Parquet.ipynb cell 3

  5. 5I placed both vaccination windows on Phuket's daily positive tests: they were ten days apart, both within the September 2021 peak of reported cases.From IJID 2024, Fig 2b, p. 5; Discussion, p. 6 · thailand-ve notebooks/phuket_infection.ipynb cell 31 · data/aggregates/phuket_incidence.json

  6. Findings

    6Infections from day 14 to 31 December 2021 came to 25.90 per 1,000 person-years after the intramuscular dose and 24.04 after the intradermal dose.From IJID 2024, Table 2, p. 6 · Phuket_Vaccine transform/normalize/vaccine.py:165 · Phuket_Vaccine Phuket Parquet.ipynb cell 7

  7. 7I followed both groups from day 14: the share still uninfected fell to about 0.994 by day 85 with the intradermal dose and 0.993 by day 95 with the intramuscular dose, and the intradermal curve ran higher for about the first 40 days before the two converged.From IJID 2024, Fig 3a, p. 7; Results, p. 3 · Phuket_Vaccine Dhup-Cox Regression.ipynb cell 42 · data/aggregates/phuket_km.json

  8. 8I repeated the curves from day 21 and day 28 after the booster, and with 3-day or 1-day vaccination windows; none showed a statistically significant difference.From IJID 2024, Supplementary Figures 1 to 4 · IJID 2024, Discussion, p. 6 · data/aggregates/phuket_km.json

  9. 9After adjusting for demographic and clinical risk factors, I did not detect a statistically significant difference: HR 0.88, 95% CI 0.76 to 1.02, P = 0.09.From IJID 2024, Abstract; Table 2, p. 6 · Phuket_Vaccine Dhup-Cox Regression.ipynb cells 34-36

  10. 10In unadjusted analyses by sex, age and risk group, no stratum showed a clear difference; the male estimate sat at the boundary (P = 0.05).From IJID 2024, Table 2 univariate, p. 6 · IJID 2024, Results, p. 3 · Phuket_Vaccine Dhup-Cox Regression.ipynb cell 42

  11. Impact

    11The Phuket study was published in the International Journal of Infectious Diseases in 2024, with me as last and corresponding author.From IJID 2024, title page, p. 1 · DOI 10.1016/j.ijid.2024.107179

  12. Thailand matched case-control

    Rationale

    12That was one province. I then studied the whole country, in a separate matched case-control study.From IJID 2024 abstract · Internal report, p. 14

  13. 13At The Gang Technology, I studied how COVID-19 vaccination related to the odds of severe disease across Thailand.From Internal report, Objective, p. 5 · Internal report, letterhead, p. 1

  14. 14Four national databases held the pieces: test results, immunization history, hospital severity and deaths. Different departments kept them for different purposes on a single server with limited resources for data this large, and the Department of Disease Control had proposed a more efficient way to manage and analyse them.From Internal report, Introduction and Data Preparation, pp. 5-6 · ve_report_1.docx draft, Background · Attachment D, User Training 1, slide 2

  15. Method

    15Joined on an encrypted national ID, they gave more than 15 million records from January 2020 to December 2022.From Internal report, Abstract p. 4; Results p. 14 · Internal report, cid_md5 join, p. 6 · vaccine-efficacy sql/dms_coward.sql:87

  16. 16A case was a first infection that turned severe within 30 days; a control was any tested person with no earlier infection who did not turn severe.From Internal report, case and control definition, p. 9 · thailand-ve configs/CaseControl_config_01.yaml:8-9 · vaccine-efficacy normalize/coward.py:6-23

  17. Matching

    17The matching was custom code. It took one calendar month of tests at a time and split it by sex, then by testing reason: suspected case (PUI), close contact or other.From Internal report, Fig 1.3 p. 11; Table 1.3 p. 10 · thailand-ve src/thailand_ve/pipeline/preprocess.py:41-50 · thailand-ve src/thailand_ve/pipeline/matcher.py:171-191

  18. 18Each branch was split again by exact age, so a case could only meet controls of its own month, sex, testing reason and age.From thailand-ve configs/CaseControl_config_01.yaml:10 · thailand-ve src/thailand_ve/pipeline/matcher.py:115-119 · thailand-ve src/thailand_ve/pipeline/utils.py:20-36

  19. 19Each case then drew four controls from its own bucket.From thailand-ve src/thailand_ve/pipeline/matcher.py:90 · thailand-ve src/thailand_ve/pipeline/const.py:57-60 · Internal report, Matched Case-Control, p. 11

  20. 20A case with no control in its bucket that month, or with a missing sex, testing reason or age, was dropped.From thailand-ve src/thailand_ve/pipeline/matcher.py:86-88 · thailand-ve src/thailand_ve/pipeline/matcher.py:111-114 · Internal report, Matched Case-Control, p. 11

  21. 21Each case and its four controls formed one matched set, and conditional logistic regression compared vaccination only within each set.From thailand-ve src/thailand_ve/pipeline/matcher.py:91-99 · thailand-ve src/thailand_ve/pipeline/fitter.py:52-58 · Internal report, Data Analysis, p. 12

  22. Method

    22That gave 26,827 cases and 107,308 control records. The pipeline shipped with configuration files, and Department of Disease Control staff were trained to rerun it.From Internal report, Table 3.1, p. 14 · thailand-ve configs/*.yaml; src/thailand_ve/main.py:98-111 · Attachment D, User Training 3, 14 Mar 2023

  23. Findings

    23Unadjusted odds ratios from conditional logistic regression fell with every dose: 0.70 after one, 0.34 after two, 0.14 after three, 0.07 after four and 0.05 after five.From Internal report, Table A.2, p. 38 · thailand-ve src/thailand_ve/pipeline/fitter.py:55-58 · thailand-ve src/thailand_ve/pipeline/fitter.py:138-149

  24. 24When I split by month and adjusted for risk group, the dose pattern shifted between variant waves: in July 2021, early in the Delta wave, odds ratios were 0.58 after one dose and 0.26 after two; in March 2022, early in Omicron, they were 1.22, 0.56, 0.17 and about 0.1 after one to four doses.From Internal report, Tables A.16 and A.17, pp. 63-64 · Internal report, By Year-Month, p. 28 · thailand-ve src/thailand_ve/pipeline/stratifier.py:74-82

  25. 25Unadjusted odds of severe disease were lowest one to two months after the latest dose, with odds ratios of 0.34 and 0.33, and rose unevenly toward 1 by month 10.From Internal report, Table A.3, p. 39 · Internal report, Univariate Results, p. 17

  26. Impact

    26The Ministry of Public Health used these vaccine-effectiveness reports in its national booster-policy work.From dhupbh.com /industry

Open the research page