Introduction

How many tools must a man pick up
without casting away after weeks?
How many times must a record be moved
before it reaches a land it seeks?
How many frictions have we goes through
choosing reading when the mind sneaks?
The answer, my friend, is why we guys meet.
The answer is why we guys meet.

RewardBank is a tool to assist you on

  • balancing your work and entertainment,
  • reduce procrastination,
  • enhancing your long-term planning ability.

This tool is perfect for

  • professionals with variable working hours,
  • freelancers seeking adaptive flexibility,
  • remote workers needing effortless self-management,
  • and more.

The Quick Start would guide you through RewardBank and start your journey.

Installation

Quick Start

  1. Install this tool.

Read this page for details.

  1. Set up the expected Project-Entertainment Ratio(PER).

A project is a planned, time-constraint event, usually linked to a note to record related information, for instance, write a program, write a paper, etc.

Entertainment time is freer and easier in comparison with a project. What you can do at entertainment involves reading novels, going to a concert, traveling for a week, etc.

Your eating time, sleep time and those that you must do to support your life are not implicated in your PER's consideration(but they are recorded in your time log)

How much time you would like to spend on things that require long-term persistence and efforts is up to you. And this tool is going to make an initial setup based on your answer.

Suppose you sleep for 8 hours every day. Different PERs are listed below for reference.

PERProjectEntertainment
1:18h8h
2:110.7h5.3h
3:112h4h
7:114h2h
15:115h1h
  1. Add some events to log your time.

Add two new types "Productivity" and "Improvement" to your time logger. You are expected to change/rename/subdivide these types to customize them for you. Then start with "Productivity" which is what you are doing right now.

  1. Add your projects.

We suggest every project has a deadline if possible, to fight against procrastination. In the project, you need to set how much time you are going to devote into it every week and every day.

Then you are required to set milestones(for example 3 milestones) in the project note. A project note is a note dedicated to record everything concerning this project. You can utilize the link and backlink functionality in Obsidian to associate more notes to it. These milestones also have their own deadlines. But it is not necessarily to set all the deadlines at once because the deadline of the next milestone may depend on your previous one.

  1. Add your tasks.

After your project is added, try to create a task associated with this project/milestone.

  1. Log your "improvement".

Switch your time record from "Productivity" to "Improvement".

  1. Start a pomodoro.

Start a pomodoro and associate it with the project/milestone you added. Write down what you expect at the end of this pomodoro in the dialog box and start focusing on this task. Please avoid any interruption during this period. If something comes across your mind, just scribble it down in the draft box or add a new task in the quick add pane. Let's continue this process by clicking the "fast forward" button. At the end of the pomodoro, you are required to evaluate yourself giving a score between 0 to 100%. Then you will earn some random coins based on the algorithm.

Our system would recommend another task based on your energy and the interest score of all your tasks today. This is the only task you have added to the system, so you have finished all your tasks today. You will get a bonus for this.

  1. Add entertainments.

strategy 1.

After working for a long time, you need some time to relax yourself. Based on the types of different activities, you ought to play different prices for them. Now it's time to add your first entertainment item. Fill in the blank and we would calculate a recommended reward for you. For now, add an entertainment named "read novels" with initial interest value 5 and set the price as 0 just for demonstration. Add another entertainment named "go to cinema" with the initial interest value 4 and set the price as 0 also for demonstration. You are expected to create your customized project/entertainment economy under the guidance of our algorithm.

Start your first entertainment "read novels" and click the "fast forward" button to end it. Start your second entertainment "go to cinema" and and end it again. A dialog box would pop up to prompt you to enter whether you prefer "read novels" or "go to cinema". Choose "go to cinema" which contradicts with your initially given interest values. Our algorithm would recommend another price for your entertainment and it is up to you to accept or not.

Stategy 2.

The standard recommendation for the price is 1 coin for 1 hour. And you may fluctuate it around 0.8-1.2 based on you preference. For example, surfing the addictive social network is more stimulative to our neural systems compared to read The Old Man and the Sea by Ernest Hemingway. But after scrolling the smart phone screen for an hour, it only leaves us nihility and the impulse to watch more memes, while what the novel that seems boring at the first glance leaves us is a long-lasting spirit -- "a man can be destroyed but not defeated". In such cases, assign a higher price for social networking and a lower for novels might be a better choice.

Quick Add

Clock in

This is the easiest way to get coins. While you cannot get a coin every day when you clock in, there is still a probability that you get some coins. Moreover, the achievement system guarentees that you can definitely get some coins after unremitting clocking in for a period of time.

Piggy Banks

Piggy banks serve as designated repositories for saving coins with the purpose of funding specific expenditures, such as a seven-day tour or an expensive concert. By utilizing a piggy bank, individuals can earmark their coins for a particular use, thereby minimizing the temptation to spend the saved money on minor, trivial purchases. This approach helps ensure that sufficient funds are accumulated for significant events or experiences.

Tips

We display random tips backed by solid experiments to improvement your mental health and efficiency. Relevant papers or websites are attached for further information.

Concepts

There are many concepts in RewardBank and this page would walk you through them quickly.

Project Entertainment Ratio(PER)

This ratio is set by yourself. It is a measure of the work/day balance. You can get coins from finishing your project and use your coins to buy some entertainment. We add some randomness to the process to achieve the intermittent random reward.

Task Management

Project

A project is a long-term event, possibly last for months. We recommend to set a deadline for every project to resist procrastination. A ideal period for a project is 12-week time, roughly a quarter.

Milestone

Milestones are used as subgoals in your project to track your rate of process. Milestones should preferably be quantitative, at least qualitative, to guarentee a definite measurability. Milestones not only provide you the track of your project, but also give you an impulse to continue and the observable hope to finish a seemingly unattainable project.

Action

Actions are what you actually do every day. They are the most fine-grained schedule for your project. You add actions to your daily schedule and finish them. A action is not necessarily associated with a milestone or a project. For example, take the trash can be a action but it is not categorized in any projects in common cases.

Every action has a value, interest, indicating how interesting you find this action is. This value is used in our task scheduling.

Time management

Time Record

Your time records track every moment of your day, including your sleep. It is not necessarily to be tied with a specific project. For example, you never expect your sleep as a project.😂

Pomodoro

The Pomodoro technique enjoys a good reputation for its effectiveness of narrowing your focus on a concrete task in a given time period. During this period, you should be 100% focused on the task on your hand. Nothing can interrupt you or you cannot harvest a tomato at the end of this pomodoro. We have a quick add for you to add a task or something else that just comes across your mind. Write it down and go back to your original task. Everytime you finish focusing for a time interval, you ought to evaluate your performance during this period to assist you to have a better control of yourself.

A pomodoro must be associated with a corresponding task (and a corresponding time log because the logger is always tracking your time).

Reward Bank

Coin

Coins are "fiat currency" in the reward bank system. Based on coins, we implement the random intermittent reward system to enhance your urge to pursuit your goal and maintain a balance between projects and entertainment.

Income

There are multiple ways you can earn coins.

Expenditure

You can exchange coins for the opportunities to get entertainment.

Entertainment

Everything that is not in the list of projects and makes you happy is an entertainment. It can be playing the piano, read novels. Every entertainment is like a commodity in a shopping mall. The price is determined by yourself but we have a recommendation system to assist you to set and adjust the value.

Bonus

We have a list of bonus for you to reduce your work friction -- for example, to get into the state focusing on your work with less pain after a vacation or a period when you have a low mood.

"The only thing we have to fear is fear itself." -- Franklin D. Roosevelt

When you embark on the task itself, you would say, "well, it's easier than expected". And bonuses are used to promote things like this stuff. The first task you do every day would reward you a bonus.

Achievement

Our system would reward your persistence. For example, clocking in for 100 days would unlock an achievement named "100-day Legend" and give you a reward.

Lucky Chest

This is a random reward that would appear occasionally anytime you are using this plugin . You can disable this functionality or restrict when it can occur if you do not want to be disrupted during a pomodoro.

Algorithms

Goal

  • Make the ratio of the time spent on projects and entertainment fluctuated around your set PER.
  • Make the interest value reflects your preference accurately.
  • Keep the user as motivated as possible.

Reward

After harvesting a tomato, you are required to self-evaluate yourself between 0% to 100% according to your performance in this pomodoro period. If you are not sure how to conduct the evaluation, here are some beneficial questions that might enlight you.

  • Is the outcome up to your expectation when you start this pomodoro?
  • Are you fully immersed into this task?
  • What about your performance compared to the last time you did similar tasks?

The coins you get from this pomodoro are calculated as

coins = (10 * period_h * (1 + (self_eval - 0.7) * 0.5 + epsilon * 0.1)) / PER;

where period_h represents how long this pomodoro is in unit of hours, self_eval represents your self-evaluation score, epsilon is a random variable of a truncated normal distribution between -2 and 2.

Price

One coin corresponds to one hour of entertainment on average. But we have multiple algorithms to adjust the price with the following thoughts.

  • The price is based on how much time this event costs. (Standard unit price)
  • If an entertainment is more appealing to you, it has a higher price. (Interest)
  • If an entertainment is recommended, it has a higher price. (Recommendation)

You can switch to a different strategy but sometimes additional information are required in another strategy. So you have to fill in some information collection forms.

Fixed

The edition of the price is all in your hand. We will not change it or give any recommendations.

Zen Master

This strategy is suitable for those freelances who have no holiday or, in other words, have holidays everyday -- what day it is today is not in their mind.

If the recent frequency of your entertainment is higher than before, it would be assigned a higher score. This strategy encourages you to have a stable entertainment schedule.

price = clamp(avg_interval / last_time_till_now, 0.6, 1.5)

Gradient Descent

The initial price is set by the user. This strategy would reevaluate the price of entertainments based on your interest and their value.

Suppose we have \(m\) types of entertainments with prices \(p_1, p_2, \cdots, p_m\) , durations \(h_1, h_2, \cdots, h_m\), and normal frequencies \(f_1, f_2, \cdots, f_m\). The normal frequency represents how often you buy this entertainment in common cases. For instance, it can be \(1/1, 1/7, 1/30, 1/365\), representing daily, weekly, monthly and yearly respectively. The real frequency is different from normal frequency, it is \(s_i f_i\) where \(s_i\) is a ratio like \(0, 1.2, 1.5\). It is recommended that the ratio is less than \(2\) so that our algorithm could work the best.

We connect \(s_i\) and \(p_i\) by the following formula:

\[s_ i = A(h_i/p_i + \mu_i - \sigma_i)\]

where the activation function \(A(x) = \text{max}\{ 0, \text{log}(1+x) \}\) and \(\mu_i\) represents the interest value \(\sigma_i\) represents the recommendation value. Using this relation and historical data, we can calculated the \(\mu_i\). This interest value can be used to predict the change on \(s_ i\) in the next period when the price varies.

\[s'_ i = A(h_i/p'_ i + \mu_i - \sigma_i)\]

where \(s'_ i\) are predicted ratios in the next period based on historical data and \(p'_ i\) are the price in the next period.

We are going to optimize the following cost using gradient descent with a small learning rate:

\[ \left(\sum_i s'_ i f_i p'_ i - \text{Income}\right)^2 + \left(\sum_i s'_ i f_i h_i-\text{WorkingHour / PER}\right)^2 \]

Task Scheduling

Contributors

Big thanks for all the following contributors. If you are among one of the contributors, feel free to make a PR.