I feel like whatever `days` is should end up being the number of days in the range regardless of whether it's inclusive. Is that what this does?

On closer inspection, passing `self` as the first param of the `default_since` classmethod is a super opaque way of doing this. If the util function depends on `self.inclusive` and `self.someotherthing`, then that function should require those params. You have to figure out what the right way to pull the repetitive code out, but I think the way you did it wasn't quite right—for example this awkward `... - 1 if self.inclusive...` makes it pretty confusing what the contract of the function is