It's an estimate based off a "normal" winter (-75% catnip production). The script calculates the current catnip production and tells you if you will last winter with it. I say "estimate" because the math assumes winter just started.
Also note that for the calculation, it is multiplied by 10. While there is no publicly stated reason that I can find for this, I would presume it is to ensure there is a sufficient "buffer" availble.
The game operates in ticks. There are 10 ticks in one day, so it woild be 10 * catnipPerTick per one day, 0-100 days per winter.
For reference, here is the related source code:
updateAdvisors: function(){
if (this.bld.get("field").val == 0){
return;
}
var advDiv = dojo.byId("advisorsContainer");
dojo.empty(advDiv);
var winterDays = 100;
if (this.calendar.season == "winter"){
winterDays = 100 - this.calendar.day;
}
var catnipPerTick = this.getResourcePerTick("catnip", false, { modifiers:{
"catnip" : 0.25
}}); //calculate estimate winter per tick for catnip;
if (this.resPool.get("catnip").value + ( winterDays * catnipPerTick * 10 ) <= 0 ){
advDiv.innerHTML = "<span>Food advisor: 'Your catnip supply is too low!'<span>"
}
}