This makes no sense. You are allocated data every 30 days for 12 months: 30x12=360 days of data. Assuming your last bundle is allocated on the 1st of a month and the following month has 31 days, your total (maximum) data validity would be (30x12+31) = 391 days. I'm too lazy to work out the minimum now, but it could be 387 as you claim.
The rollover data is used concurrently with the new allocation, so it does not come into effect until the last bundle gets allocated. There is no way you can get 699 days worth of data on a 12x30 day recurring data package.
If I am wrong, then please elaborate on how you calculated this, as it is not clear in the article.