Custom goals

Custom goals let you create your own goal type by adjusting many of the back-end goal settings. All of the default goal types are just specific combinations of the settings. So if you've always wanted an Odometer goal that makes you stay below it rather than above it, a custom goal is the right answer!

When should I use a custom goal?

Use a custom goal when none of the other types quite fit what you're looking for. You can also use custom goals to use autodata sources differently than the default goal types you get when creating them.

For example, you might create a weight goal that automatically sources data from your Fitbit Aria scale, then turn it custom to enable more settings. If you change the settings appropriately, you can make it so instead of beeminding your weight, you're actually beeminding whether or not you used the scale today. Really useful for avoiding the very common "avoiding the scale" problem, and it takes just a couple minutes to set up with a Beeminder custom goal!

(To create that goal, set up the integrated weight goal as usual. Flip it custom and change settings to good side: above, road direction: up, odometer: off, cumulative: on, aggday: binary, noisy: off. Use lane width = 0 and rate = 7/wk for the most hardcore commitment!)

How should I enter data for a custom goal?

It depends on the settings you enable — mostly on whether the goal's data is auto-summing or not. Auto-summing data is like a Do More or Do Less, while not auto-summing covers the rest of the goal types.

How do I make a custom goal?

If you're a Bee Plus or Beemium subscriber, click the Convert to Custom goal button at the bottom of the Settings tab below the graph.

Important note: change settings with caution if the goal you're converting already has data and road history. Because the goal settings are applied to the entire graph, if you do something like change the good side of the road, your old extra-safe days will turn into way-off-the-road days and you can instantly derail your goal! Of course, this is not legit and we'll undo it when you email us in support, but it's always nicer to avoid it in the first place, right?

It's simpler to start custom goals from scratch when you can. You can immediately delete them to "undo" any derailment that may occur, and because there's no history, it's a lot less likely to happen in the first place!

What do all the settings mean?

  • Good side of the road: whether you want to be above or below the yellow brick road. Above is generally for things you want to do more frequently or increase over time, and below is for things to do less frequently or decrease.
  • Direction of road: whether the road should be going up or going down. Going up means you should have a positive goal rate, and going down means you should have a negative goal rate.
  • Cumulative: whether your datapoints should be added together each day or not. Do More and Do Less are cumulative; the other goal types are not.
  • Resettable odometer: whether a 0 datapoint resets your rolling total. See the Odometer page for more information.
  • Integery: whether datapoints should be integers or not. More info and an example below!
  • Aggregation: how Beeminder plots your datapoints every day. More info and a list below!
  • Plotall: whether Beeminder plots all your datapoints, or just the result of the goal's aggregation method.
  • Absolute lane width: how wide your yellow brick road is.

You can also find a more in-depth explanation (with even more hidden settings explained!) in the Beeminder API docs.

I changed a setting and my goal instantly derailed! Help!!

Contact support and we'll fix it up. Reverting your change beforehand is very helpful but not required.

What does "integery" mean?

Enabling the integery option tells Beeminder that fractional data doesn't make sense for this goal. We'll conservatively round your reminders so that we only ask you to do your goal in whole number increments.

For example, let's say I have a goal to wake up before 9am five times per week. Beeminder works on a daily basis, so by default, it'll tell me to do 0.71 wakeups to avoid derailment. In this case, I can't actually do 0.71 wakeups; it's either 1 or 0. Enabling integery will make Beeminder tell me to do 1 wakeup instead, so my goal and reminders make a little more sense.

What do each of the aggregation options do?

The aggday setting controls how Beeminder interprets all your data on each day, according to the chart below.

Option Name Daily Aggregation Calculation
last Only most recent datapoint counts
first Only first datapoint counts
min Smallest datapoint counts
max Largest datapoint counts
truemean Mean of all datapoints
mean or uniqmean Mean of all unique datapoints
median Median of all datapoints
mode Mode of all datapoints
trimmean Mean of all datapoints excluding the top & bottom 10% of values
sum Sum of all datapoints
binary Plots a 1 if any datapoints have been entered, otherwise 0
nonzero Plots a 1 if any nonzero datapoints have been entered, otherwise 0
triangle (sum of datapoints * (sum of datapoints + 1)) / 2
square Sum of datapoints squared
clocky Sum of differences of pairs
(so-called because you can use this method to simulate
a timer, by entering start time & finish time as consecutive datapoints)
count Number of datapoints entered
skatesum Sum of all datapoints, capped at the daily min that the road requires
cap1 Sum of all datapoints, capped at 1

Why does my graph look weird after I change the aggday setting?

Try turning off plotall (if it is enabled) and see if that solves the problem.

With plotall on, Beeminder shows both the datapoint values and the aggregated value that actually "counts" toward the goal for the day. If your datapoint values are very different than than the aggregated value that counts for the goal, the graph scale might end up out of whack as Beeminder shows you both data values. A common example is plotting your scale usage with binary aggday (values 1 or 0) while using your weight (values much higher than 1 or 0!) as datapoints.
If your rate is set correctly, the goal will still work perfectly and show the right countdown to derailment, regardless of whether plotall is enabled or disabled. The graph, however, might look much nicer one way or the other!

Still need help? Contact Us Contact Us