Apr 26, 2026
BioSignal: Wastewater Anomaly Contextualization for Pandemic Early Warning
Jack Lakkapragada
The CDC's National Wastewater Surveillance System already detects anomalies in viral signal. The gap is what happens after the alert fires — public health officials receive a percentile number with no context for what's driving it, no assessment of which populations are at risk, and no specific recommended actions.
BioSignal addresses this data-action gap with a three-layer pipeline built on top of existing CDC infrastructure. A data cleaning layer removes undocumented sentinel values from the raw NWSS dataset — including a 32-bit integer overflow artifact in the ptc_15d field that would otherwise generate false URGENT alerts from database errors rather than biological signal. A scoring layer ranks sites by population-weighted priority using a formula that combines site-normalized percentile (primary signal) with log-scale population as a tiebreaker. An LLM intelligence layer — activated only after the statistics confirm an anomaly — generates structured situational reports (SITREPs) covering catchment profile, signal drivers, and jurisdiction-specific recommended actions, with a priority tier of URGENT, HIGH, or ELEVATED.
The core design principle is strict separation between statistical detection and LLM contextualization. The model does not decide whether an anomaly exists. The statistics do. This prevents the circularity failure mode where an AI both detects and explains a spurious signal.
Validated against the December 2023 JN.1 variant surge, BioSignal correctly surfaced New Jersey, Las Vegas, and Boston as the top three priority sites 1-2 weeks before national hospitalization peaks. The system is fully open-source, runs on public CDC data, and requires no specialized biosecurity infrastructure to deploy.
GitHub: github.com/lvjr3383/AI_Safety/tree/main/biosignal
First off, I appreciate the attention to data cleaning, the clear separation between the statistical signal and the LLM's contextualization of that signal, and the clarity of the presentation!
My main critiques are as follows:
On the score formula:
I'm not sure what motivates this formula, and it seems like it'd be better to just use the percentile directly and rank by that or come up with a more principled way to incorporate population. The log population term currently does not serve as a tiebreaker for sites with the same percentile (as described); it's just added to the percentile. It also seems like you'd use population density, rather than population, if you were trying to account for the increased transmission potential in urban areas. There's no explanation for why those particular coefficients were chosen and no normalization, so I suspect it would be easy to plug in numbers and get results that contradict what the score is trying to track (e.g. a high population but low percentile can give you a higher score than a low population with a high percentile, and this is irrespective of how spread out that population is)
On the LLM interpretation of the anomaly:
I suspect this is mostly the LLM recapitulating is training data. In the examples, it doesn't really get enough context (from what I can tell) to provide reliable information, and a lot of this is probably hallucination. Also, even if it is correct, it doesn't validate the approach, as you'd need to use surges that are after the training cutoff to see if it generates useful summaries.
On validation:
Besides the training cutoff issue, the score will obviously give similar results for many historical cases as the percentile CDC already uses, seeing as it is just the percentile * some number + some function of population. Really validating this would require a much larger set of cases, and I think you'd see more failures at the extremes from issues I outlined above.
On impact:
My guess is that public health officials whose job is to respond to these incoming percentiles already have the context they need to interpret them, or at least more context than the LLM can provide from its training data + the same number the officials get. Most of the issues here would probably stem from institutional access to data and cross-communication between institutions, rather than an inability for the employees to know what the number means and what to do about it. If anything, the score formula and LLM layer on top of the percentile are clouding the important, interpretable variables that ought to drive action, and it seems more efficient for them to review percentiles and population densities themselves than to read the LLM's recommendation report. Another small note is that the CDC's wastewater monitoring is not pathogen-agnostic, so amplifiers on that system are not very impactful for addressing emerging threats.
The most useful version of this kind of thing would need to be co-designed with the public officials themselves, and would probably requiring doing something like RAG with documents and data sources from multiple institutions to provide and summarize context that they do not already have access to, and which is not already part of their daily workflow.
I think using LLMs to explain statistical signals does seem interesting to me. There is lots of work (and domain expertise) that goes into understanding and explaining changes in CDC data streams. I can imagine a benefit of an approach like this would be that it would be able to take in signals of different kinds (from different data sets) and synthesise them. That would be beyond the current wastewater data stream. Of course LLMs are not the most explainable of all methods though. One way to make the current project stronger would be to validate it more systematically (it's not that convincing currently, but understandable given the timeframe).
Clear, useful, tested on real CDC NWSS data, strong data-cleaning work, excellent presentation. Need to validate against clinical outcomes data before any operational use.
Cite this work
@misc {
title={
(HckPrj) BioSignal: Wastewater Anomaly Contextualization for Pandemic Early Warning
},
author={
Jack Lakkapragada
},
date={
4/26/26
},
organization={Apart Research},
note={Research submission to the research sprint hosted by Apart.},
howpublished={https://apartresearch.com}
}


