Widgets

Our app is currently in beta and may contain bugs or incomplete features. We are continuously working to improve the product, and some aspects may change over time. We appreciate your patience and feedback as we improve the experience.

Coding Time

By collating timestamps of user events, such as keystrokes, opening files, and more, we build a timeline of when you code. This widget calculates the total time spent coding during the selected period. The selected period can be modified via the top right date selector found on the dashboard.

Limitation: Coding Time records, as the name suggests, only the time a person has spent physically coding. Unfortunately, a large amount of your time as a programmer is spent outside of the IDE. This metric does not capture your time spent thinking about a problem nor researching an implementation.

Top Project

This names the project you have spent the most time working on during the selected period.

Average Session

After sixty seconds of inactivity, the session timer stops. The time displayed represents the average time of each session today.

We take your activity as a series of ‘user events’, like key-presses or opening files. Grouping these events together, we can create a Session. We then prune Sessions too small to be relevant, for example we found a large number of Sessions tend to be one off user events without any follow-up actions - these, in our opinion, dilute the Session pool resulting in a less useful metric. Once pruned, we add all the cumulative Session time since midnight last night, local time, and divide by the total quantity of Sessions.

Limitation: Averages can be deceptive. You may work in a series of short sharp bursts during the morning followed by one long session all afternoon, and the widget will report you had an average session time of slightly larger burst.

Most Utilized Hour

Most Utilized Hour measures your most active hour today, and displays the percentage of this hour which you spent coding.

We break down your daily activity into hourly segments. These segments are then ranked based on the amount of activity. For example, if you work continuously from 10:20 am to 12:20 pm, your activity over that time would be split into: 10 am, 11 am, and 12 pm.

  • The 10 am segment shows 40 minutes of activity out of 60, or 66%.
  • The 11 am segment shows 100% activity.
  • The 12 pm segment shows 33%, as you take a break after 20 minutes.

Therefore, your most utilized hour today will have been 11am, at a perfect 100%. Well Done!

Limitation: Naturally, because nobody works on a perfect clockwork schedule, you will have periods of activity which fall between hours, i.e. 10:30 am to 11:30 am will result in this widget only giving a 50% utilization of either hour. Unfortunately, this is an underrepresentation of your actual work, so you should take care to only interpret this as a measure of focused and concentrated effort.

Deep Coding

Deep Coding measures your highest periods of engagement by identifying when your coding activity ranks in the upper quartile of your recent activity, indicating a state of deep concentration.

When you are in a flow state, fully immersed in your code, you type faster and more consistently than you would during a distracted, busy morning. The depth of a coding session is calculated by equally weighting activity and output, where a deeper session will have higher activity and more consistent output. We calculate all the coding sessions in the selected period and rank them from deepest to most shallow. The upper quartile (top 25%) of results returned in the selected period will be considered deep and graphed accordingly.

Limitation: This widget will only compare sessions found within the selected date range. It will ignore data outside this range and therefore cannot be used to draw conclusions about how you compare to your average level of deep coding.

Limitation: Exactly 25% of the sessions graphed will be classified as deep coding, regardless of actual output or your level of focus compared to normal. An off-week where nothing really gets done will have the same proportion of deep coding as a week of intensively productive, focused work.

Code Time Rolling Average

Code Time Rolling Average measures your average coding time over the selected period, including days off, to give a more comprehensive view of your coding habits.

Code Time Cumulative Moving Average

Code Time Cumulative Moving Average (CMA) measures your average coding time over the selected period, including days off, to give a more comprehensive view of your coding habits.

A cumulative moving average continuously updates the average of a data set to include all the data in the set until that point. Each point in the average includes all previous data points up to that point. As more data points come in, they are all included in the calculation. This means the average becomes more stable and less sensitive to recent changes as time goes on, illustrating the typical amount of time spent working each day.

Limitation: This widget will only compare coding time found within the selected date range. It will ignore data outside this range and therefore cannot be used to draw conclusions about averages outside of the date range.

Languages

Breaks down coding time by language, displaying the languages you use the most during the selected period.

Projects

Breaks down coding time by project, displaying the projects you worked with the most during the selected period.

Productivity per Project

Productivity per Project measures your coding output by calculating the average number of lines written per hour in a project. Note, this metric reflects quantity of code, not quality.