New discovery about VAERS variable CAGE_MO
If it is interpreted as fractions of months - not years - EVERYTHING changes!
Update: I heard back from CDC. See below…
I was under the impression that a field entry of 0.3 in the CAGE_MO variable in VAERS indicated an infant of ~4 months old = 0.3 of a year and used only as as add-on the CAGE_YR variable to yield the AGE_YRS variable, which incidentally, is the variable used for VAERS analytics when doing age-related analyses. But apparently, I could have been wrong, or at least, had an incomplete understanding of the potential use of the CAGE_MO variable.
The CAGE_MO field could be intended to only represent the age in months. However, for infants less than one month old, the age could be recorded in days or weeks as a float and then converted to a decimal month format. This is problematic when the these numbers are rounded to integer values. If the decimal is rounded to an integer (ie: 0.3 months to 0 months), all reports within that first month are grouped together and aggregation of these 0s masks the acute temporal clustering that occurs in the first few days post-vaccination, making the signal indistinguishable from background noise.
This artifact alone has hidden or severely attenuated multiple known safety signals in the past (e.g., the intussusception signal with early rotavirus vaccines and the original 1990s whole-cell DTP sudden-death signal in the first 72 hours).
The most common interpretation of a decimal value like 0.3 in CAGE_MO is that it represents 0 years and 0.3 of a month.
A value of 0.3 in CAGE_MO could be used to represent an infant who is less than one month old (i.e., a newborn). Decimal precision would be the only way to capture the temporal signal in the first month of life. But, since a month is approximately 30.44 days, 0.3 months is approximately 9 days (0.3 * 30.44 days).
This changes EVERYTHING. With respect to infant data - which is exceedingly important when considering vaccines administered at birth such as the Hepatitis B vaccine - there are a lot of temporality safety signal data in VAERS to be had.
Here is a chart that shows all of the infant deaths in VAERS from 1990-2025 for all vaccines combined.
There are 1097 reports of death of infants less than a week old. Distribution of CAGE_MO (0.0 - 1.0) for All VAERS Death Reports (1990-2025) is shown above and examines the distribution of the raw CAGE_MO field for ALL death reports in the VAERS database, regardless of the vaccine.
If we go deeper and look into Hepatitis B shots, we get a clearer picture of the effects of injecting babies at birth with respect to deaths. This chart displays HepB Death Reports by Age in Days (0-30 Days).
Now are these caused by the HepB vaccine? It hasn’t been proven, but the more granular temporality data - if interpreted correctly - sure does paint a clear picture, as shown in the next chart. The frequency distribution of reports across time-to-onset bins (NUMDAYS) for infants who got the HepB shots demonstrates this.
When the deaths are considered for all infants in the first 8 weeks of life by age, the picture becomes even more clear. At 1 week of age, there are 1,023 reports of death in VAERS in the context of the HepB vaccines.
The following bar chart showing deaths by week for all VAERS data from 1990-2025 for HepB vaccines shows the count (frequency) of reports across discrete age bins (Weeks old), and it’s very telling. Most of the reports of death occur in week 1.
I need to confirm this finding but regardless, there are many reports of death in temporal proximity to HepB vaccines in infants and small children. The granularity of the first-weeks-of-life data is what is being considered here, because if the CAGE_MO variable ‘works’ this way, then temporal signals are very clear.
Considering HepB is a sexually-transmitted disease and there is such a thing as “education”, there is no point in subjecting infants - and especially newborns - to real emergent harms, as demonstrated in VAERS - even without the more granular interpretation of CAGE_MO.
The charts below paint very different pictures of death reports in VAERS for infants when comparing the data using rounded months and granular weeks/days, and again, this is extremely important when considering birth dose vaccines like Hepatitis B.
If the CAGE_MO field were treated as an integer, all reports with a value greater than 0.0 but less than 1.0 would be incorrectly rounded down to 0.0, effectively losing the temporal information that places them at Day 1, Day 6, Day 9, etc.
As an example of explicit data point loss, the number of death reports where the critical fine-grained age information would be lost if the floating-point precision of CAGE_MO was ignored is: N = 72 in the specific context of reports of death in infants under 2 years for Hepatitis B vaccines. That’s unacceptable.
In the slide below, the larger graph shows all VAERS data by month according to the composite age interpretation as denoted in the VAERS Data Use Guide (AGE_YRS = AGE_YRS * 12 + CAGE_MO).1 The inset graph blows up the data in the red bar representing all infant deaths at month 0 for children under 2 in the context of HepB vaccination reports and the temporal information gained is clear: most infants death reports occur on day 1.
NB: These charts are imperfect: I needed to “floor” the AGE_YRS data first. See below.
In the slide below, the inset graph shows all death vaccine data where the peak in reporting of infant death shifts to day 6. DAY 6!
This NEEDS to be clarified by HHS.
What analysts lack is birth date data in order to calculate true age. We must rely on transcribed age data (the AGE_YRS variable), for the time being. We need more granular data regardless of whether or not the CAGE_MO question is answered.
Update:
Update: There is no direct relationship between the AGE_YRS variable and the CAGE_YR and CAGE_MO variables according to the VAERS Data Use Guide. The AGE_YRS is transcribed by people from the original VAERS report, and the CAGE_YR and CAGE_MO variables are calculated from birth data by people: CAGE_YR = Age in years = (VAX_DATE - BIRTH_DATE) expressed in fractional years; CAGE_MO = Age in months = (VAX_DATE - BIRTH_DATE) expressed in fractional months.
This is weird to me: why are they using the vax_date to calculate the Age of patient years and months? It is also written that the CAGE_MO data is only collected for individuals 2 years-old or less. And indeed, as I had understood from the VAERS Data Use Guide, the age is calculated from the CAGE_YR and CAGE_MO variables by adding them. If CAGE_YR is 1 and CAGE_MO is 0.5 then the individual is 1.5 years old.
But, this isn’t true age: this is age based on vaccination date.
Therefore, CAGE_YR and CAGE_MO are “VAX_AGE” in years and months (more appropriately expressed as VAGE_YR; VAGE_MO), respectively.
I have a problem with doing it this way because VAX_DATE data is far less plentiful than RECVDATE data in VAERS, for example, thus many data points are being lost by using the VAX_DATE variable to do this calculation. Also, date data in general is notoriously bad in VAERS in the first place, as I have described in my soon-to-be-published VAERS-needs-a-facelift paper.
When an additional correction to my original calculation is made (flooring the AGE_YRS data), and the x-axis data are calculated using the CAGE_MO data (floor(AGE_YRS)*12 + CAGE_MO - floor means to throw away anything after the decimal point) as intended according to the VAERS Data Use Guide, the picture becomes even scarier.
In other words, I took the whole years the reporter wrote (ignoring any fraction), turned those into months, then added the precise months the computer calculated in the CAGE_MO variable which is the age at vaccination in months. Previously, I had mistakenly “over-aged” all the infants by not flooring the AGE_YRS data and clearly, the distribution of the data is massively affected.
A sound methodology needs to be secured.
I am writing this on the fly as I learn quickly, so forgive the eeks and erks along the way! All of these problems I am encountering are real.
If the CDC released exact age in days (or even age in weeks), any artificial spikes would disappear and we would see a much smoother (and usually less dramatic-looking) distribution of infant [death] data.
Update: I heard back from CDC (and even got CDC VAERS people involved), and following their own resolved confusion as to the ins-and-outs of the CAGE_MO and CAGE_YR variables, they concluded that these variables only represent fractional quantities (ie: fractional years and months, respectively). That is, CAGE_MO data ONLY represents a fractional month that should be multiplied by 12 to get the age in months, and multiplied by 365 to get the age in days. That is, CAGE_MO = 0.3 → 4 months and 112 days. In order to get the most out of the AGE_YRS and CAGE_MO variables, it is best to use these formulas to calculate the age in months and days :
Age_in_months = (floor(AGE_YRS) + CAGE_MO) * 12
Age_in_days = Age_in_months * 31.
The CAGE_YR variable is the floor of AGE_YRS but since there is far more data in the AGE_YRS variable, it is important to floor it manually rather than use the CAGE_YR variable to calculate the age in months and days from the CAGE_MO variable.
Here’s what the chart for deaths in infants under 2 looks like now. It didn’t change much it’s just that we don’t have access to more granular data.
Stay tuned!
https://vaers.hhs.gov/docs/VAERSDataUseGuide_en_September2021.pdf












Extremely relevant for today's proceedings in DC. Please pass it to the powers that be! Amazing information.
This afternoon shortly before 5 PM Eastern time on CNN a doctor was being interviewed about the hepatitis B vaccine and CNN flashed up a bit of info showing in 1991 before the vaccine was implemented on day one of life there were approximately 20,000 cases of hep B and in 2025 it reported only 20 cases of hep B. So they are only talking about cases and no mention of any deaths from the vaccine, yet you and Albert have uncovered data in VAERS showing over 1000 deaths and of course that's probably an under reporting.
As a side note when my daughter was born in 1996 before we left the hospital we were told that she was given the hep B vaccine the same day she was born and we were stunned because no one told us ahead of time and it was never mentioned to us that it was going to be given. I questioned why it was given since hep B is only transmitted by blood products and sexual activity and I was told by the doctor that it was to head off the anticipated epidemic of hep B in adolescents experimenting with sex. Of course we know that the immunity from that one shot does not last that long or it's not very strong 12 or 15 years later. I do not think she was given a booster shot later on . My son was born four years earlier and never received the vaccine at birth nor later as he grew up.