Mortarboard Challenge
JS ES6, 360 bytes

f=(i,p=1,d=[])=&gt;fetch(`https://api.stackexchange.com/2.2/users/${i}/reputation?site=codegolf&amp;pagesize=100&amp;page=${p}`).then(x=&gt;x.json()).then(j=&gt;(q=d.concat(j.items),j.has_more?f(i,p+1,q):(r=[],q.map(s=&gt;(r[d=new Date(s.on_date*1000),i=d.getDate()+d.getMonth()*32+d.getYear()*365]?r[i]+=s.reputation_change:r[i]=s.reputation_change)),r.filter(x=&gt;x&gt;200).length)))


Call it like f(user id). Returns a promise that resolves with the number of days that rep was lost.



Ungolfed:

f=(i,p=1,d=[])=&gt;fetch(`https://api.stackexchange.com/2.2/users/${i}/reputation?site=codegolf&amp;pagesize=100&amp;page=${p}&amp;key=kAc8QIHB*IqJDUFcjEF1KA((`).then(x=&gt;x.json()).then(j=&gt;{
    return (q=d.concat(j.items),
    j.has_more?
        f(i,p+1,q)

        :(r=[],
            q.map(s=&gt;(r[d=new Date(s.on_date*1000),
                i=d.getDate()+d.getMonth()*32+d.getYear()*365]?
                    r[i]+=s.reputation_change

                    :r[i]=s.reputation_change)),
            r.filter(x=&gt;x&gt;200).length
        )
    )
});