1. An apparatus comprising: a processor; and a memory to store computer program instructions for calculating a time-decayed aggregate from a data stream comprising a sequence of tuples, each tuple comprising an item identifier and an associated timestamp, the computer program instructions when executed on the processor cause the processor to perform operations comprising: receiving the data stream comprising the sequence of tuples; generating a smooth decay function wherein the smooth decay function is a function of the difference between a current time and the timestamps; generating a set of linear data summaries, based at least in part on a first set of timestamps; generating a set of boundaries, based at least in part on the smooth decay function and on a second set of timestamps; adding each tuple to a specific linear data summary based at least in part on the timestamp associated with the tuple; merging two linear data summaries based at least in part on the set of boundaries to generate merged linear data; calculating the aggregate from the set of linear data summaries; receiving a query; answering the query by probing the merged linear data.