To get an accurate aggregation we must start at `{20120101}`: data = {{{20120101}, Missing[]}, {{20120802}, 193.9}, {{20120912}, 493.9}, {{20130412}, 33.9}, {{20130502}, 193.9}, {{20130802}, 193.9}, {{20130822}, 193.9}, {{20131002}, 193.9}, {{20131022}, 193.9}}; Then we must transform the dates in a Mathematica-like form: dates = ToExpression[{StringTake[#, 4], StringTake[#, {5, 6}], StringTake[#, -2]}] & /@ (ToString /@ Flatten@data[[All, 1]]); Now we use `TimeseriesAggregate` to count the frequency per quarter DateListPlot[ TimeSeriesAggregate[Transpose[{dates, data[[All, 2]]}], "Quarter", Length], DateTicksFormat -> {"Year", "/", "QuarterNameShort"}, GridLines -> Automatic, PlotRange -> {{{2012, 8, 1}, {2013, 12, 31}}, Automatic}, Mesh -> Full] [![enter image description here][1]][1] And here are the monthly figures DateListPlot[ TimeSeriesAggregate[Transpose[{dates, data[[All, 2]]}], "Month", Length], DateTicksFormat -> {"Year", "/", "Month"}, GridLines -> Automatic, PlotRange -> {{{2012, 8, 1}, {2013, 10, 31}}, Automatic}, Mesh -> Full] [![enter image description here][2]][2] [1]: https://i.sstatic.net/d7geR.jpg [2]: https://i.sstatic.net/ewzTQ.jpg