Brian,
No the quarters aren't exactly all 63 because the holidays aren't distributed evenly. Maybe look at https://en.wikipedia.org/wiki/Trading_day. That said, a bigger problem with comparing fundamental data is that it's reported by a company up to 45 days after a quarter ends. So, for instance, if one were to look at data on Jan 10, 2017 it may not be for the quarter ending Dec 31 (because that data hadn't been updated yet). Moreover, some of the companies will have filed already and some won't. So some companies will have current data and others not. You may be comparing apples to oranges.
One way to mitigate this is to time your algorithm to not look at fundamental data before 45 days after the end of each quarter (so a blackout period). In the long run it may not impact your algorithm if you don't do this but it's something to think about. A more 'precise' method would be to check the filing dates in the fields below.
There are two interesting fields in the morningstar dataset financial_statement_filing.file_date
and financial_statement_filing.period_ending_date
. Add those as columns to some fundamental pipeline output in a notebook. Run the notebook for a single stock over a years time. You can get a feel for when and how the data is updated.
One curiosity is that sometimes the data changes a few days after the 'filing_date'. This implies that Morningstar took a day or two to update their data and get it posted. The implication however, is that the 'street' knew this data on the filing date (or the following trading day), but we had to wait a day or two before our algorithm could act on it. Another curiosity is sometimes the 'filing_date' is BEFORE the 'period_ending_date". Maybe someone can explain that to me?
Anyway, hope that helps.