Philippines COVID vaccine queue - priority group calculator
A 72-year-old with a comorbidity gets group A2, senior citizens, in the Philippines' 2021 COVID-19 vaccination plan, ahead of the comorbidity group A3. Enter age, occupation code and comorbidity to see the group code and the criteria behind it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Age
- 72
- Occupation
- Other
- Group
- A2
- Group label
- A2 — senior citizens 60 years and over
- Eligibility status
- eligible
- Priority rank
- 2
The Philippines sequenced its first COVID-19 immunization campaign through the Department of Health National COVID-19 Vaccination Deployment Plan, often cited together with the IATF priority list. Early vials went first to health-facility frontliners coded A1, then to senior citizens coded A2, then to adults with comorbidities coded A3, then to uniformed and other essential frontline personnel coded A4, and later to remaining workforce bands B1 through B6 and the rest of the population coded C. This Philippine vaccine-queue calculator assigns a DOH-style priority group code from three facts you already know: age in completed years as a non-negative integer, a closed occupation code, and whether a comorbidity is present. It returns the matching group code, a short label, a priority rank, the criteria that fired, and an eligibility status for the original adult and adolescent programme. An occupation code that is not on the published list is rejected as invalid input rather than being silently mapped to the general public. Age that is not a non-negative integer also fails. Treat every result as an educational reconstruction of the 2021 sequenced framework, never as a live Department of Health or local-government booking, a medical order, or a clinical substitute.
How the Philippine COVID-19 vaccine priority groups were sequenced
The Philippines did not offer every adult a first COVID-19 dose on the same morning. The Department of Health, working with the Inter-Agency Task Force and the National Vaccination Operations Center, sequenced people through the 2021 National COVID-19 Vaccination Deployment Plan so the earliest vials went to those whose work kept hospitals standing, then to those at greatest clinical risk of severe disease, then to remaining essential workers and the wider public. This calculator encodes that 2021 NDVP sequenced framework as a deterministic educational model.
It does not look up a live local-government slot, does not know which barangay health station has supply this week, and does not replace a clinician or a local vaccination operations center. The engine then walks a published waterfall from highest priority to lowest and returns the first matching group code together with eligibility. Group A1 covers frontline workers in public and private health facilities.
Group A2 covers senior citizens aged sixty and over. Group A3 covers adults with a recorded comorbidity. Group A4 covers uniformed personnel such as the Armed Forces, the Philippine National Police, the Bureau of Fire Protection, the Bureau of Jail Management and Penology, the Philippine Coast Guard, and the Bureau of Corrections, plus other designated essential frontliners.
Group B1 covers teachers and social workers; B2 other government workers; B3 other essential workers; B5 overseas Filipino workers; and B6 the remaining workforce. Adolescents twelve to seventeen enter group C after that age band was authorized in the later pediatric expansion; children under twelve sit outside the original adult and adolescent sequenced programme and receive group none. Always frame outputs as an educational group code from this published waterfall, not as a clinic appointment or a clinical recommendation.
Where a Philippine vaccine-queue calculator earns its keep
Public-health explainers, journalism notebooks, and civics classrooms still need a transparent oracle for the question people typed in 2021 and still type when they reconstruct that year in the Philippines: which DOH COVID-19 vaccine priority group did this age, job, and comorbidity profile fall into. A single trusted function that returns the group code beside the criteria that fired speeds teaching, fact-checking, and synthetic dataset labels without scraping a portal that no longer hosts the original queue.
Research assistants preparing historical immunization tables want stable group codes from known demographics, and they need a hard reject when age is not a non-negative integer or the occupation code is not recognized so dirty extracts cannot masquerade as a sequenced group. If you later need remaining vaccine-induced protection percent, a booster interval, or a live clinic finder, treat those as separate search intents and landings rather than overloading this queue page.
Always present results as educational estimates from the 2021 Department of Health NDVP sequenced framework; clinical decisions and actual appointments require qualified professionals, a Department of Health or local-government programme this tool does not call, and eligibility rules that changed as supply improved.
What you can do with it
Classroom reconstruction of the 2021 Philippine NDVP queue
Give students an age, occupation code, and comorbidity flag and verify the DOH-style group code and eligibility status against the published waterfall, including the hard reject when age is not a non-negative integer.
Journalism and explainer widgets
Show which Philippine COVID-19 vaccine priority group a profile would have entered without scraping a booking site that no longer hosts the original NDVP queue.
FAQ
What occupation codes are accepted?
Occupation must be one of healthcare, uniformed, frontliner, education, government, essential, ofw, or other.
Does this book a vaccine appointment in the Philippines?
No. It is an educational reconstruction of the 2021 DOH and IATF NDVP sequenced framework. It does not call a Department of Health portal, reserve a local-government slot, or give medical advice.
Why is a 72-year-old with a comorbidity in A2 and not A3?
Both criteria apply, but the senior citizens group A2 ranks above the comorbidity group A3, and the highest matching group always wins. The result is A2 with priority rank 2.
Who was in group A4 of the Philippine vaccine priority list?
Uniformed personnel such as the Armed Forces, the Philippine National Police, the Bureau of Fire Protection, the jail management bureau, the Coast Guard and the Bureau of Corrections, plus other designated essential frontliners.
Where did teachers fall in the Philippine COVID vaccine order?
In group B1, together with social workers, after all the A groups. Other government workers followed in B2 and other essential workers in B3, before the rest of the population in group C.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/vaccine-queue-philippines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"age":72,"occupation":"other","comorbidity":true}'const res = await fetch("https://api.kit.forhosting.com/health/vaccine-queue-philippines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"age": 72,
"occupation": "other",
"comorbidity": true
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/vaccine-queue-philippines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"age": 72,
"occupation": "other",
"comorbidity": true
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/vaccine-queue-philippines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"age":72,"occupation":"other","comorbidity":true}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"age":72,"occupation":"other","comorbidity":true}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/vaccine-queue-philippines", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"age": 72,
"occupation": "other",
"comorbidity": true
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.vaccine_queue_philippines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_age | 120 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Successful API calls use the published $0.002 per item; invalid input is not billed.
How the Philippine COVID-19 vaccine priority groups were sequenced
You send an age in completed years as a non-negative integer, an occupation code from a closed list, and a boolean for comorbidity the caller has already classified. Identical inputs always produce identical JSON because the rules are pure comparisons with no network, no clock, and no randomness.
Input contract, response shape, and error behaviour
The field occupation is a closed occupation code: healthcare for public or private health-facility workers, uniformed for AFP, PNP, BFP, BJMP, PCG, BuCor and related forces, frontliner for other designated A4 essential frontliners, education for teachers and social workers, government for remaining public servants, essential for other essential workers, ofw for overseas Filipino workers, and other for retired, unemployed, or remaining workforce. A classic high-priority triple is a seventy-two-year-old with occupation other and comorbidity true, which yields group A2. A thirty-four-year-old healthcare worker yields group A1 even without a comorbidity. Send a JSON object with three required fields. The field age is completed years and must be a non-negative integer from zero through one hundred and twenty; a negative age, a fractional age, or a non-numeric value fails with invalid_input naming that field, because years of life cannot be negative or fractional and this calculator will not silently take an absolute value or round. Aliases years and age_years are accepted. Aliases job, work, role, and occupation_code are accepted. An occupation value that is not on that list fails with invalid_input stating that the occupation code is not recognized; the calculator never invents a default job. The field comorbidity is a boolean that is true when an NDVP 2021 comorbidity is present, such as diabetes, hypertension, heart disease, chronic kidney disease, cancer, or another condition the caller already classified; the strings yes, no, one, and zero parse as booleans, and aliases comorbidities, has_comorbidity, chronic_condition, and high_risk are accepted. Missing required fields, empty strings, a non-integer age, age above one hundred and twenty, an unrecognized occupation code, and a non-boolean comorbidity flag all fail with invalid_input and are not charged. On success the response echoes the cleaned age, occupation, and comorbidity values, reports group as the code A1, A2, A3, A4, B1, B2, B3, B5, B6, C, or none, reports group_label and priority_rank, sets eligible true when the person is in the original adult or adolescent sequenced programme (age twelve and over), sets eligibility_status to eligible or not_eligible, lists the criteria codes that fired, and includes guideline, method, and formula strings for display and for pinning in tests. Pricing for successful API calls is the published $0.002 per item; validation failures do not consume prepaid balance.
Where a Philippine vaccine-queue calculator earns its keep
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance. Keep requests small, pin the group and eligibility_status in tests, and you get reproducible Philippine vaccine-queue labels for homework, LMS plugins, and edge workers without standing up a public-health information system of your own.
Integration use cases
Historical immunization dataset labels
Bulk-produce stable group codes for synthetic or archived demographic rows, with invalid_input when age is not a non-negative integer so dirty extracts cannot look like a sequenced group.
Technical questions
How is the Philippine COVID-19 vaccine priority group assigned?
Send age as a non-negative integer, occupation (healthcare, uniformed, frontliner, education, government, essential, ofw, or other), and comorbidity as a boolean. The API walks a DOH-style waterfall and returns the highest matching group code plus eligibility_status.
What happens if age is not a non-negative integer?
The task fails with invalid_input. Age must be a whole number from zero through one hundred and twenty; negative years, fractions, and non-numeric values are rejected and the request is not billed.
What does the Philippines COVID vaccine queue calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.