I like the idea of beeminding a “lights out” time, and I’ve been toying with doing that again, actually (and definitely a “screens off” time again).
As far as what time you get up when you need to get up at a particular, but variable time, if it were me, I’d do something overly complex for nothing, cause that’s how I roll… So here’s what I’d do:
I’d set up a custom goal that wasn’t cumulative and that—Actually, here, let me do this:
And I’d give it a rate of 0 and a goal value of zero so that it’s just flat every day.
Then I’d give it a deadline in the afternoon, at a time before which I’m unlikely to need to think about tomorrow’s bedtime.
Then, as soon as I realize what time I need to get up tomorrow, I’d send a negative datapoint to the goal for that time. Do I need to get up at 6? I’d send a -6 datapoint (and, since the goal’s deadline time was set to earlier, it’s already counting that as a datapoint for tomorrow). If I need to get up at 8:30, I’d send one for -8.5.
Then when I get up, I’d send a (positive) datapoint of the current time (I’d probably use an IFTTT button or iOS Shortcut or something for this).
That way, I have to get up and trigger the morning datapoint at a time near enough to my planned wake up time for that positive number to not be larger than the negative number I entered the day before. (Well, given that in my example I set it up with a lane width of 0.25, I’d have a 15-minute grace period.) And the graph would be showing meaningful data, cause it would be showing the portion of an hour before your set wake up time (or after, if you’re derailing) you got up each day you set it. So the time of day wouldn’t show on your graph, only how close to your time you were, which seems like maybe what you’re looking to measure, from your description.
If the next day were a day I didn’t have to get up at a particular time, I’d send a 0 datapoint for the coming day, or maybe even just send the absolute latest time I could possibly get up and still have my day be fine, so that I’d stay in the habit of sending a datapoint the day before and trigger when I got up.
Anyway, that’s what I think I’d do!