I would create groups that are based on dates
zeroth group would be the id (yeah, I added it later)
first group all dates
second group this year and last
third group just this year
suppress all sections except third group header or footer (the aggregates work in either)
then create a formula like:
local numbervar yrCount;
local stringvar lbl;
if distintcount({table.id}, {group 3}) = 1 then( //it is in this year
yrCount:=count({table.id}, {group 3})) //how many times it occurred this year....just in case
lbl:="new";
if count({table.id},{group 2}) > yrCount then(
lbl:="renewed";
yrCount = count({table.id},{group 2}) ;
);
if count({table.id},{group 1}) > yrCount then
lbl:="repeat";
);
lbl
hopefully that works, or at least points to a solution that does