<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/assets/atom.xsl" type="text/xsl"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	><title>Sacha Chua - category - quantified</title>
	<subtitle>Emacs, sketches, and life</subtitle>
	<link rel="self" type="application/atom+xml" href="https://sachachua.com/blog/category/quantified/feed/atom/index.xml" />
  <link rel="alternate" type="text/html" href="https://sachachua.com/blog/category/quantified" />
  <id>https://sachachua.com/blog/category/quantified/feed/atom/index.xml</id>
  <generator uri="https://11ty.dev">11ty</generator>
	<updated>2026-06-24T14:55:30Z</updated>
<entry>
		<title type="html">Considering my time balance this schoolyear, and getting ready for summer</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-06-24T14:55:30Z</updated>
    <published>2026-06-24T14:55:30Z</published>
    <category term="time" />
<category term="quantified" />
<category term="parenting" />
<category term="life" />
		<id>https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/</id>
		<content type="html"><![CDATA[<p>
It's <abbr title="our 10-year-old" tabindex="0">A+'s</abbr> last week of virtual Grade 4 before summer vacation.
This time of the year, when the teachers turn to filler activities
like games and movies, she tends to find the pace excruciatingly slow
and of little interest to her. There was a substitute teacher on
Monday. She's not keen on having a substitute teacher since they tend
to run into technical issues or go at a much slower pace. She already
finds the regular class pace agonizingly slow. Her classmates goof off
a bit more around a sub, too. But I needed some time for paperwork, so
she begrudgingly signed into class. She reported that, as predicted,
they got absolutely nothing done. The students played games and
watched a movie. On Tuesday, there was another substitute. I'd done my
paperwork for now, so I called the school to let them know she'd be
absent. We were about to head out for some ice cream after breakfast,
but she got upset about something and decided to stay in her room for
a bit. I finished putting together Emacs News and played a bit of
<a href="https://www.stardewvalley.net/">Stardew Valley</a> with the <a href="https://www.nexusmods.com/stardewvalley/mods/41830">Tileman Reworked</a> mod to destress after the
last few days of paperwork, and then I started on this reflection.
</p>

<p>
(Wednesday update: Back to the regular teacher, but now there's a Zoom
update that's making it hard for the students to connect to class, so
the teacher is switching back to Google Meet for a bit. It sounds like
A+ managed to make it back on. This afternoon, they're going to play
some more games and watch a movie, so I think I'll take A+ out if she
wants to do some math or go shop for earbuds to replace the one she
lost.)
</p>

<p>
The change of routines to summer is a bit challenging for us. Well, the schoolyear is challenging for us too. I suppose summer is challenging in a different way. The playgrounds are busier and louder. The sun is brighter and hotter. The usual rhythms of playdates with her friends changes as they go to sumgmer camps or other activities. I move from having medium-sized chunks of fairly predictable focus time to playing everything by ear.
</p>
<div id="outline-container-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis" class="outline-3">
<h3 id="considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis"><a href="https://sachachua.com/blog/feed/atom/index.xml#considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis">Time analysis</a></h3>
<div class="outline-text-3" id="text-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis">
<p>
Before we officially head into summer, I want to think about how I used my time this schoolyear, and how I can prepare for summer and next schoolyear. How to read this graph: gray is sleep, pink is childcare, blue is more focused time, orange is consulting. If you click on the image, it opens an SVG with tooltips.
</p>


<figure id="org8d3cab6">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2024-2025.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2024-2025.png" alt="2024-2025.png"></a>

<figcaption><span class="figure-number">Figure 1: </span>2024-2025 (grade 3)</figcaption>
</figure>


<figure id="org764fc92">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-2026.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-2026.png" alt="2025-2026.png"></a>

<figcaption><span class="figure-number">Figure 2: </span>2025-2026 (grade 4)</figcaption>
</figure>

<p>
The biggest difference was that A+ wanted to exert more independence and autonomy when it came to school. In Grade 3, she wanted me to stay in her room so that she could ask me for help or hang out with me when she was bored. In grade 4, she preferred to have her room all to herself. <abbr title="my husband" tabindex="0">W-</abbr> helped me set up a little desk in the corner of another room on the same floor, so I could still be close by, but A+ mostly did things independently. Or didn't do things, as the case may be; I learned not to push her on schoolwork, since the only thing that accomplished was grumpiness all around. I've been practising stepping back. It's her experiment, after all, and the teachers can give her feedback on school things. I can keep myself busy with my own focused-time stuff so that I don't fret at her. After I got through my initial anxieties, I settled into doing more of my stuff during the schoolday.
</p>

<table>


<colgroup>
<col class="org-left">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">2024-2025 %</th>
<th scope="col" class="org-right">2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Personal</td>
<td class="org-right">9.2</td>
<td class="org-right">13.8</td>
<td class="org-right">4.6</td>
<td class="org-right">23.2</td>
<td class="org-right">7.7</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">13.9</td>
<td class="org-right">18.4</td>
<td class="org-right">4.6</td>
<td class="org-right">30.9</td>
<td class="org-right">7.6</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.1</td>
<td class="org-right">4.6</td>
<td class="org-right">0.5</td>
<td class="org-right">7.7</td>
<td class="org-right">0.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.3</td>
<td class="org-right">0.7</td>
<td class="org-right">0.4</td>
<td class="org-right">1.1</td>
<td class="org-right">0.6</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">1.9</td>
<td class="org-right">1.1</td>
<td class="org-right">-0.8</td>
<td class="org-right">1.9</td>
<td class="org-right">-1.3</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">2.1</td>
<td class="org-right">1.1</td>
<td class="org-right">-1.0</td>
<td class="org-right">1.8</td>
<td class="org-right">-1.7</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">33.4</td>
<td class="org-right">32.2</td>
<td class="org-right">-1.1</td>
<td class="org-right">54.2</td>
<td class="org-right">-1.9</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">35.1</td>
<td class="org-right">28.1</td>
<td class="org-right">-7.1</td>
<td class="org-right">47.1</td>
<td class="org-right">-11.9</td>
</tr>
</tbody>
</table>

<p>
In grade 4, A+ started learning French. I started learning French too so that I could help her. I practised pronounciation with a virtual tutor once or twice a week, and I wrote journal entries in French too. (These images are just screenshots.) There were other discretionary activities, of course.
</p>

<table>


<colgroup>
<col class="org-left">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">2024-2025 %</th>
<th scope="col" class="org-right">2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive - French</td>
<td class="org-right">0.0</td>
<td class="org-right">5.2</td>
<td class="org-right">5.2</td>
<td class="org-right">8.8</td>
<td class="org-right">8.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive - Emacs</td>
<td class="org-right">4.5</td>
<td class="org-right">7.3</td>
<td class="org-right">2.8</td>
<td class="org-right">12.2</td>
<td class="org-right">4.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play - Stardew Valley</td>
<td class="org-right">1.2</td>
<td class="org-right">0.7</td>
<td class="org-right">-0.5</td>
<td class="org-right">1.2</td>
<td class="org-right">-0.8</td>
</tr>

<tr>
<td class="org-left">Business - Earn - Consulting</td>
<td class="org-right">2.0</td>
<td class="org-right">0.8</td>
<td class="org-right">-1.1</td>
<td class="org-right">1.4</td>
<td class="org-right">-1.9</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive - Writing</td>
<td class="org-right">2.9</td>
<td class="org-right">1.3</td>
<td class="org-right">-1.6</td>
<td class="org-right">2.2</td>
<td class="org-right">-2.6</td>
</tr>
</tbody>
</table>


<figure id="org8a7effe">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_12-35-42.png"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_12-35-42.png" alt="2026-06-23_12-35-42.png"></a>

<figcaption><span class="figure-number">Figure 3: </span>Heatmap of time I spent on French (370 hours since Oct 23, 2025)</figcaption>
</figure>

<p>
I tended to turn to Stardew Valley for de-stressing or <a href="https://en.wikipedia.org/wiki/Bedtime_procrastination">revenge bedtime procrastination</a>. Interestingly, my nascent fixation on French pretty much replaced Stardew Valley until it got slowed down by other things happening in my life starting April, which also coincided with my time on Stardew Valley picking up again in April in order to unwind.
</p>


<figure id="org090dfd0">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_21-33-10.png"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_21-33-10.png" alt="2026-06-23_21-33-10.png"></a>

<figcaption><span class="figure-number">Figure 4: </span>Heatmap of the time I spent on Stardew Valley (175 hours since June 23, 2025)</figcaption>
</figure>

<p>
Emacs continued to be another good way to unwind. I gave myself permission to spend more time just having fun with Emacs. Following up on my reflection for <a href="https://sachachua.com/blog/2026/03/emacs-carnival-march-2026-mistakes-and-learning-to-reach-out/">Emacs Carnival March 2026: Mistakes and learning to reach out</a>, I started scheduling conversations during A+'s schoolday. I did some <a href="https://sachachua.com/topic/live">Yay Emacs livestreams</a> and <a href="https://sachachua.com/blog/category/emacs-chat-podcast/all/">Emacs Chat</a> interviews as an experiment. I think it was a good way to get lots of tips out of people's heads and into videos/transcripts/screenshots, and I also improved my workflow for editing transcripts and extracting images.
Not counting <a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a>, I wrote 47 Emacs-related posts during the previous schoolyear and 65 posts during the current schoolyear.
</p>

<p>
Other changes this schoolyear:
</p>

<ul class="org-ul">
<li><b>Pre-adolescence:</b> A+'s been having a harder time with her feelings. I think this might be related to pre-adolescence. Totally normal. One of my goals is to keep myself calm and regulated, and another one is to help her connect with more people she likes so that she can feel supported even when she's grumpy with me. She can chat with her aunts and cousins via Stars Messenger without needing to go through me, so that's good.</li>
<li><b>Gymnastics:</b> We figured out how to get one-on-one gymnastics classes going, and A+ has been enjoying them.</li>
<li><b>Pokemon:</b> A+ and I started playing Pokemon Go. We play it pretty casually, and we've joined a couple of the meetups. It's been a good excuse to go for the occasional walk, and it's also a good way to take advantage of a bike ride. She's also gone deep into the lore (so many books!) and has watched more than a dozen seasons of the Pokemon TV series. She occasionally plays Pokemon on W-'s old Game Boy Advance.</li>
<li><b>Dungeons &amp; Dragons:</b> We've also been playing D&amp;D. We started playing in virtual sessions with my sisters and nieces. A+'s really taken to it, including experimenting with DMing. We've gone through much of the <a href="https://geektogeekmedia.com/geekery/reviews/dnd-5e-heroes-of-the-borderlands-starter-set-review/">Keep on the Borderlands Starter Set</a> (thanks to my sister) as a duet adventure, except for a number of the Caves of Chaos which were too scary for A+ even though I tried to balance things differently. She's more into roleplaying than combat, so we mostly improvise our own adventures. I keep a d20 and a d6 in my vest, and my phone has virtual dice too for when we're walking around.</li>
<li><b>W-:</b> W- retired, yay! He's been enjoying biking and working on personal projects. A+ still hangs out with me more than with him, but that's fine.</li>
</ul>

<p>
Thoughts for next year:
</p>

<ul class="org-ul">
<li><b>Neurodivergence:</b> A+ and I find it a little challenging to adapt to changes in routine
and also to handle boredom. I think I'll talk to our doctor about
considering a neuropsych assessment in case knowing more about our
brains can help make things a little bit easier for us. I think
she'll still have a bit of leeway at school for the next few years,
so it's a good time to experiment and figure out things that work
better for us. We've been talking about neurodivergent strategies, too.</li>
<li><b>Pre-adolescence:</b> It's probably going to be a little tougher next year
(pre-adolescence, extended family challenges, etc.), but this is
fine. We signed up for all of this, and this is where we get to see
how our preparations work out. It's also good equanimity practice.
The turbulence is natural. I want to stay loving, patient, and
supportive.</li>
<li><b>Emacs:</b> For now, Emacs Chats (and the transcription thereof) might actually
be more useful to the wider Emacs community than my hacking around
with idiosyncratic Emacs Lisp code, especially since I still have a
hard time getting my brain to cooperate with the extra bit of polish
needed to finish an idea and/or properly contribute things upstream.
Livestreaming while I'm tweaking Emacs is an interesting trade-off
which I think ends up being mostly positive: I'm slightly distracted
because I have to talk out loud, but on the plus side, people's
suggestions and questions (and the feeling that other people are
watching) also help me focus on the current task instead of going
down a different rabbit-hole. Or at least it encourages me to either
capture the TODO for the next idea or leave myself some breadcrumbs
if I really do want to go down that other rabbit-hole on stream.
I'll pause these for summer. I'm looking forward to experimenting
with them more next schoolyear, especially if I can balance it with
the work I put into organizing EmacsConf.</li>
<li><b>Virtual school:</b> Virtual school continues to feel like the right
choice for us both in terms of health and the ability to manage
stimulation levels. When she finds her classmates too noisy, she can
lower the volume. When she needs a break, she can sign out and we
can work independently. We hope next year will be a good fit too.
This year, the Toronto District School Board consolidated all its
virtual students into one virtual elementary school, which was nice
because they didn't feel left out of hybrid activities. We still had
the usual transition pains this schoolyear, but maybe next year will
be smoother.</li>
</ul>
</div>
</div>
<div id="outline-container-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer" class="outline-3">
<h3 id="considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer"><a href="https://sachachua.com/blog/feed/atom/index.xml#considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer">Getting ready for summer</a></h3>
<div class="outline-text-3" id="text-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer">
<p>
Here's what my time looked like last summer:
</p>


<figure id="org3a3448c">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-summer.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-summer.png" alt="2025-summer.png"></a>

<figcaption><span class="figure-number">Figure 5: </span>Summer 2025</figcaption>
</figure>

<p>
Unsurprisingly, it's mostly childcare. A+ had a series of private
swimming lessons (too short to do much during) and one afternoon
summer camp (during which I did a lot of consulting). Aside from that,
we basically hung out with each other unless she was grumpy with me or
one of us was in the bathroom. She tended to wake up early, so I
didn't usually get focus time during the morning. Or any time during
the day, really. But now I can practise French in my head, so that's
good. A+ is thinking of getting her own Bluetooth earbuds since
they're helpful for managing overstimulation at the playground, so
I'll be able to get mine back and maybe even listen to comprehensible
input podcasts when she's not directly interacting with me.
</p>

<p>
Comparing summer 2025 with schoolyear 2025-2026:
</p>

<table>


<colgroup>
<col class="org-left">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">Summer 2025 %</th>
<th scope="col" class="org-right">SY 2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">10.5</td>
<td class="org-right">18.4</td>
<td class="org-right">7.9</td>
<td class="org-right">30.9</td>
<td class="org-right">13.2</td>
</tr>

<tr>
<td class="org-left">Personal</td>
<td class="org-right">9.8</td>
<td class="org-right">13.8</td>
<td class="org-right">4.0</td>
<td class="org-right">23.2</td>
<td class="org-right">6.7</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">30.7</td>
<td class="org-right">32.2</td>
<td class="org-right">1.6</td>
<td class="org-right">54.2</td>
<td class="org-right">2.6</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.1</td>
<td class="org-right">0.7</td>
<td class="org-right">0.6</td>
<td class="org-right">1.1</td>
<td class="org-right">1.0</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.3</td>
<td class="org-right">4.6</td>
<td class="org-right">0.2</td>
<td class="org-right">7.7</td>
<td class="org-right">0.4</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">1.5</td>
<td class="org-right">1.1</td>
<td class="org-right">-0.4</td>
<td class="org-right">1.8</td>
<td class="org-right">-0.7</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">6.2</td>
<td class="org-right">1.1</td>
<td class="org-right">-5.1</td>
<td class="org-right">1.9</td>
<td class="org-right">-8.5</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">36.8</td>
<td class="org-right">28.1</td>
<td class="org-right">-8.8</td>
<td class="org-right">47.1</td>
<td class="org-right">-14.8</td>
</tr>
</tbody>
</table>

<p>
As expected, the schoolyear means less time with A+ compared to summer (-14h / week), which mostly gets shifted to productive time (+13h/week). I actually get a little more time to sleep during the schoolyear, too.
So, preparing for this upcoming summer, I can anticipate less sleep and more time with a possibly tetchy kiddo, but if I can take advantage of little moments here and there (like when she's in the bathroom for an unpredictable length of time, or when she needs space for me), then I can take care of whatever I need to stay sane.
</p>

<p>
I'd like to continue with my sessions with French tutors, although I might have to experiment with the timing to see what works. Shortly after lunch might still be nice, since it's probably going to be too bright and hot to enjoy being at the playground. If I keep improving, then I can use little snippets of idle time (like when she's playing with her friends) to rehearse sentences, listen to comprehensible input, or write my journal entries.
</p>

<p>
Let's compare summer 2024 with summer 2025:
</p>

<table>


<colgroup>
<col class="org-left">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">Summer 2024 %</th>
<th scope="col" class="org-right">Summer 2025 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">2.5</td>
<td class="org-right">10.5</td>
<td class="org-right">8.0</td>
<td class="org-right">17.7</td>
<td class="org-right">13.5</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">1.6</td>
<td class="org-right">6.2</td>
<td class="org-right">4.6</td>
<td class="org-right">10.4</td>
<td class="org-right">7.7</td>
</tr>

<tr>
<td class="org-left">Personal</td>
<td class="org-right">7.5</td>
<td class="org-right">9.8</td>
<td class="org-right">2.3</td>
<td class="org-right">16.5</td>
<td class="org-right">3.9</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.1</td>
<td class="org-right">4.3</td>
<td class="org-right">0.2</td>
<td class="org-right">7.3</td>
<td class="org-right">0.4</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.6</td>
<td class="org-right">0.1</td>
<td class="org-right">-0.5</td>
<td class="org-right">0.1</td>
<td class="org-right">-0.9</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">4.5</td>
<td class="org-right">1.5</td>
<td class="org-right">-3.0</td>
<td class="org-right">2.5</td>
<td class="org-right">-5.1</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">42.5</td>
<td class="org-right">36.8</td>
<td class="org-right">-5.6</td>
<td class="org-right">61.9</td>
<td class="org-right">-9.5</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">36.6</td>
<td class="org-right">30.7</td>
<td class="org-right">-6.0</td>
<td class="org-right">51.5</td>
<td class="org-right">-10.0</td>
</tr>
</tbody>
</table>

<p>
Some thoughts for this upcoming summer:
</p>

<ul class="org-ul">
<li><b>Sleep:</b> I probably want to get back to about 8 hours of sleep a day (33%),
which is totally doable if I resist the temptation to squeeze in
gaming or coding. This probably means I need to take better care of
myself during the day so that I don't feel the urge to indulge in
revenge bedtime procrastination, which probably means (1) finding
ways to spend time with A+ that I enjoy more, like D&amp;D, biking, or
swimming, and (2) using French or other portable
pick-up-and-put-down activities to take advantage of little snippets
of free time.</li>
<li><b>Childcare:</b> A+ might want to spend lots of time with me, but less than the
previous year as she becomes more independent, and the sharp drop in
the time kids want to spend with their parents is coming inexorably.
I can probably keep the discretionary stuff to just whatever keeps
me sane, and focus on enjoying time with A+. Maybe more D&amp;D,
especially since we're figuring out ways to improvise on the go.
Swimming is nice, too.</li>
</ul>

<p>
FAQ:
</p>

<ul class="org-ul">
<li>How much time does it take to track and analyze your time?
<ul class="org-ul">
<li>Hardly any time to track it, maybe a couple of seconds between
activities. I made a home-made web-based system for tracking my
time, and I can easily update it by tapping buttons on my
smartphone or specifying a less common category. It doesn't have
to be super precise. Most of the analysis reuses code from
previous years, including the web-based graphs. I generate the
tables with Emacs Lisp in an Org Mode Babel block. Thinking about
how I've been using the time takes time and reflection, but it's
good for me.</li>
</ul></li>
<li>Can you share your tracking system?
<ul class="org-ul">
<li>I used to let other people use it, but bots kept hammering it, so
now it's just for me. Here's the <a href="https://github.com/sachac/quantified">source code</a> just in case you want
to try self-hosting.</li>
</ul></li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F06%2Fconsidering-my-time-balance-this-schoolyear-and-getting-ready-for-summer%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Looking at my time data from 2012 to 2025</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2025-04-30T15:17:27Z</updated>
    <published>2025-04-30T15:17:27Z</published>
    <category term="quantified" />
<category term="time" />
<category term="life" />
		<id>https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/</id>
		<content type="html"><![CDATA[<div class="assumed_audience" id="org508f93c">
<p>
Assumed audience:
</p>
<ul class="org-ul">
<li><a href="https://mastodon.social/@tagomago/114320780639275725">@tagomago</a>, who was curious about what a typical weekday looked like before I became a parent, following up <a href="https://sachachua.com/blog/2025/04/a-typical-weekday/">on my post</a></li>
<li>people who track time, especially my fellow <a href="https://quantifiedawesome.com">Quantified Self</a> geeks</li>
<li>my future self, looking back even further on time and change</li>
</ul>

<p>
This is a long post without any particularly
ground-breaking insights; more along the lines of
"water is wet" (taking care of a kid reduces free time,
to no one's surprise). I suppose not a lot of people
have 13+ years of time data to analyze, though, so
there's some coolness in that. Also, I'm a little
proud of the fact that I got the graphs to show up
nicely even under <a href="https://en.wikipedia.org/wiki/Eww_(web_browser)">EWW</a>, so they work without
Javascript. If you view this post on my blog with
Javascript enabled, there should be user-interface
niceties like being able to switch between years.
</p>

</div>

<div class="sticky-toc" id="orga4a43ed">
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2012">2012</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2013">2013</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2014">2014</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2015">2015</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2016">2016</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2017">2017</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2018">2018</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2019">2019</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2020">2020</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2021">2021</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2022">2022</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2023">2023</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2024">2024</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-2025">2025</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-how-has-my-time-changed-over-the-years">How has my time changed over the years?</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-fragmentation">Fragmentation</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-sleep">Sleep</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-overall">Other thoughts</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-do-i-want-to-find-time-for-the-activities-i-used-to-spend-time-on-before">Do I want to find time for the activities I used to spend time on before?</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-how-much-time-does-it-take-to-track-and-analyze-time">How much time does it take to track and analyze time?</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-can-i-share-my-data">Can I share my data?</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-next-steps">Other resources</a></li>
<li><a href="https://sachachua.com/blog/feed/atom/index.xml#looking-at-my-time-data-from-2012-to-2025-looking-forward">Looking forward to the next few years</a></li>
</ul>
</div>

</div>

<p>
I wrote a <a href="https://github.com/sachac/quantified">web-based time tracker</a> back in late 2011
because I was curious about how I was actually
using my time. I'd already started planning my
<a href="https://sachachua.com/blog/category/experiment/">5-year experiment with semi-retirement</a>. I knew
that time-tracking was going to be useful for
that, especially since I figured consulting was
going to be part of it. I had been tracking my
time with Tap Log for Android, but writing my own
system allowed me to fit it to the way I wanted it
to work. 2012 was my first full year of data with
it. My time data includes a little bit of my work
at IBM, all of my experiment with semi-retirement,
and my time as a parent. Time-tracking was
something that a number of people in the
<a href="https://quantifiedself.com/">Quantified Self</a> community were also exploring, so
I had fun bouncing ideas and visualizations off
other people. At some point, I nudged my
categories a little closer to the time use studies
I read. (Ooh, I should revisit these&#x2026;)
</p>

<p>
I use a hierarchy of categories. Each time segment
can have only one category, even if I might
combine something like childcare and biking. The
hierarchy lets me report at the high level while
also letting me break things down further. I can
add a note to a segment in order to capture even
more detail, like the way that <a href="https://sachachua.com/dotemacs#clock-in">clocking in from my
Org Mode tasks</a> automatically fills in the time
tracker's note with the task name. It takes me
just a few taps to record my data most of the
time. If I need to backdate something, I can use a
couple more taps to select common time offsets
(say, around 5 minutes ago). I can also type in
some text to select an uncommon category or
specify a different offset.
</p>

<p>
The data isn't 100% perfect, of course. Sometimes
I created an entry a few minutes late or guessed
when something started. Sometimes I forgot to
track when I went to sleep or when I woke up.
Despite the occasionally messy data, it gives me a
pretty good idea of the rough categories of my
day.
</p>

<p>
For the time graphs below, each column is one day,
starting at midnight. All times are displayed in
the America/Toronto time zone, with the occasional
indent or outdent because of daylight savings
time. Legend:
</p>

<table><tr><td style="background: #fdcce5"><span>pink</span></td><td>A+ (childcare)</td></tr>
<tr><td style="background: #ffee65"><span>yellow</span></td><td>Business - Connect</td></tr>
<tr><td style="background: #fd7f6f"><span>red</span></td><td>Business / Work</td></tr>
<tr><td style="background: #b2e061"><span>green</span></td><td>Discretionary - Play</td></tr>
<tr><td style="background: #7eb0d5"><span>blue</span></td><td>Discretionary - Productive</td></tr>
<tr><td style="background: #648caa"><span>dark blue</span></td><td>Discretionary - Productive - Emacs</td></tr>
<tr><td style="background: #ffee65"><span>yellow</span></td><td>Discretionary - Social</td></tr>
<tr><td style="background: #beb9db"><span>purple</span></td><td>Personal</td></tr>
<tr><td style="background: #ccc"><span>gray</span></td><td>Sleep</td></tr>
<tr><td style="background: #ffb55a"><span>orange</span></td><td>Unpaid work</td></tr></table>

<p>
If you click on the graph images, you should be
able to get the SVG for each year, which will let
you hover over segments for more details in the
tooltips. Each SVG is about 1-4 MB, so I didn't
want to include them all inline.
</p>

<p>
Here are some overall graphs of each year, as a
sample weekday, and some notes on what was going
on in my life then.
</p>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2012" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2012">2012</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2012">

<figure id="org9d09200">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2012-trimmed.svg" data-link="true" alt="2012"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2012.png" alt="2012" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2012-04-25
</p>

<figure id="orgd2b7dac">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="7.899%" height="100%" x="92.101%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>22:06 - 06:32: Sleep</title></rect><rect width="2.262%" height="100%" x="89.839%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>21:33 - 22:06: Discretionary - Productive - Latin</title></rect><rect width="2.111%" height="100%" x="87.728%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>21:03 - 21:33: Unpaid work - Cook</title></rect><rect width="4.152%" height="100%" x="83.576%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:03 - 21:03: Personal - Walk - Other</title></rect><rect width="1.269%" height="100%" x="82.308%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>19:45 - 20:03: Discretionary - Social</title></rect><rect width="1.840%" height="100%" x="80.468%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>19:18 - 19:45: Personal - Routines</title></rect><rect width="0.001%" height="100%" x="80.466%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>19:18 - 19:18: Personal - Routines</title></rect><rect width="3.310%" height="100%" x="77.156%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>18:31 - 19:18: Unpaid work - Tidy up</title></rect><rect width="5.760%" height="100%" x="71.396%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>17:08 - 18:31: Personal - Bike</title></rect><rect width="34.243%" height="100%" x="37.153%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>08:55 - 17:08: Business - Earn - Consulting - E1 - General</title></rect><rect width="2.500%" height="100%" x="34.653%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>08:19 - 08:55: Personal - Bike</title></rect><rect width="5.388%" height="100%" x="29.265%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>07:01 - 08:19: Personal - Routines</title></rect><rect width="29.265%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>22:23 - 07:01: Sleep</title></rect></svg>

</figure>

<p>
In February 2012, I started my experiment with
semi-retirement, shifting from working for IBM to
consulting for a couple of clients. My week was
still fairly typical, since I planned for 4-5 days
of consulting each week. I usually biked or took
the subway to the office, where I did some coding
or consulting around enterprise social computing.
</p>

<p>
I wanted to experiment with different business
models, so I also started doing some professional
sketchnoting and illustration. I guess people
liked stick figures. I did a few events here and
there, but the semi- part of my semi-retirement
was mostly consulting around enterprise social
computing, collaboration and technology adoption,
Javascript prototyping, and SQL queries.
</p>

<p>
<a href="https://sachachua.com/blog/2012/12/year-in-review-2012/">2012 yearly review</a>
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2013" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2013">2013</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2013">

<figure id="org6214553">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2013-trimmed.svg" data-link="true" alt="2013"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2013.png" alt="2013" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2013-04-26
</p>

<figure id="orgd411663">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="1.530%" height="100%" x="98.470%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:37 - 10:17: Sleep</title></rect><rect width="1.756%" height="100%" x="96.714%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>23:12 - 23:37: Discretionary - Play - Read - Fiction</title></rect><rect width="1.550%" height="100%" x="95.164%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>22:50 - 23:12: Personal - Routines</title></rect><rect width="8.347%" height="100%" x="86.817%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>20:50 - 22:50: Discretionary - Family</title></rect><rect width="1.169%" height="100%" x="85.648%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:33 - 20:50: Personal - Eat - Dinner</title></rect><rect width="1.519%" height="100%" x="84.130%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>20:11 - 20:33: Discretionary - Family</title></rect><rect width="4.444%" height="100%" x="79.685%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>19:07 - 20:11: Discretionary - Productive - Writing</title></rect><rect width="0.691%" height="100%" x="78.994%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>18:57 - 19:07: Unpaid work - Cook</title></rect><rect width="2.022%" height="100%" x="76.972%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>18:28 - 18:57: Personal - Walk - Other</title></rect><rect width="1.903%" height="100%" x="75.069%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>18:01 - 18:28: Discretionary - Productive - Writing</title></rect><rect width="4.209%" height="100%" x="70.860%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>17:00 - 18:01: Business - Build - Paperwork</title></rect><rect width="5.096%" height="100%" x="65.764%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>15:47 - 17:00: Business - Connect - Connecting</title></rect><rect width="15.764%" height="100%" x="50.000%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>12:00 - 15:47: Business - Earn - Consulting - E1 - General</title></rect><rect width="2.737%" height="100%" x="47.263%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>11:20 - 12:00: Unpaid work - Groceries</title></rect><rect width="9.304%" height="100%" x="37.958%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>09:06 - 11:20: Business - Earn - Consulting - E1 - General</title></rect><rect width="1.858%" height="100%" x="36.101%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>08:39 - 09:06: Personal - Routines</title></rect><rect width="36.101%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:52 - 08:39: Sleep</title></rect></svg>

</figure>

<p>
I continued to do a lot of consulting, but I
started letting myself do some more fun stuff like
Emacs and hanging out. The offset part towards the
end of the year is when we went to the Philippines
to visit family and attend a friend's wedding.
</p>

<p>
<a href="https://sachachua.com/blog/2014/01/year-in-review-2013/">2013 yearly review</a>
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2014" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2014">2014</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2014">

<figure id="orgc4b15ce">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2014-trimmed.svg" data-link="true" alt="2014"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2014.png" alt="2014" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2014-04-21
</p>

<figure id="org75cf949">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="1.484%" height="100%" x="98.516%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:38 - 00:18: Personal - Routines</title></rect><rect width="1.392%" height="100%" x="97.124%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>23:18 - 23:38: Discretionary - Play - Read - Blogs</title></rect><rect width="0.424%" height="100%" x="96.700%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:12 - 23:18: Personal - Routines</title></rect><rect width="14.444%" height="100%" x="82.256%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>19:44 - 23:12: Discretionary - Play - LEGO Marvel</title></rect><rect width="1.700%" height="100%" x="80.556%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>19:20 - 19:44: Discretionary - Productive - Gardening</title></rect><rect width="1.389%" height="100%" x="79.167%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>19:00 - 19:20: Personal - Eat - Dinner</title></rect><rect width="2.280%" height="100%" x="76.887%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>18:27 - 19:00: Discretionary - Play - LEGO Marvel</title></rect><rect width="0.111%" height="100%" x="76.775%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>18:25 - 18:27: Discretionary - Productive - Emacs</title></rect><rect width="0.178%" height="100%" x="76.597%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>18:23 - 18:25: Discretionary - Play - LEGO Marvel</title></rect><rect width="1.597%" height="100%" x="75.000%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>18:00 - 18:23: Unpaid work - Cook</title></rect><rect width="0.963%" height="100%" x="74.037%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>17:46 - 18:00: Unpaid work - Cook</title></rect><rect width="3.736%" height="100%" x="70.301%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>16:52 - 17:46: Discretionary - Productive - Emacs</title></rect><rect width="0.185%" height="100%" x="70.116%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>16:49 - 16:52: Discretionary - Productive - Emacs</title></rect><rect width="0.087%" height="100%" x="70.029%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:48 - 16:49: Unpaid work - Cook</title></rect><rect width="2.454%" height="100%" x="67.575%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>16:13 - 16:48: Discretionary - Productive - Emacs</title></rect><rect width="2.851%" height="100%" x="64.725%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>15:32 - 16:13: Discretionary - Productive - Emacs</title></rect><rect width="4.733%" height="100%" x="59.992%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>14:23 - 15:32: Business - Build - Delegation</title></rect><rect width="1.836%" height="100%" x="58.156%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>13:57 - 14:23: Business - Connect - Connecting</title></rect><rect width="2.513%" height="100%" x="55.644%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>13:21 - 13:57: Personal - Eat - Lunch</title></rect><rect width="0.306%" height="100%" x="55.338%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>13:16 - 13:21: Discretionary - Productive - Latin</title></rect><rect width="2.376%" height="100%" x="52.962%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>12:42 - 13:16: Business - Build - Delegation</title></rect><rect width="1.929%" height="100%" x="51.032%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>12:14 - 12:42: Discretionary - Productive - Writing</title></rect><rect width="9.760%" height="100%" x="41.272%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>09:54 - 12:14: Business - Build - Quantified Awesome</title></rect><rect width="2.301%" height="100%" x="38.971%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>09:21 - 09:54: Personal - Routines</title></rect><rect width="34.439%" height="100%" x="4.532%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>01:05 - 09:21: Sleep</title></rect><rect width="1.554%" height="100%" x="2.978%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>00:42 - 01:05: Personal - Routines</title></rect><rect width="2.978%" height="100%" x="0.000%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>23:37 - 00:42: Business - Build - Quantified Awesome</title></rect></svg>

</figure>

<p>
I ratcheted consulting down further and I gave
myself permission to work on more of my own
things. I enjoyed hanging out at <a href="https://hacklab.to/">Hacklab.to</a>.
</p>

<p>
<a href="https://sachachua.com/blog/2015/01/2014-review/">2014 yearly review</a>
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2015" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2015">2015</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2015">

<figure id="orgead2db6">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2015-trimmed.svg" data-link="true" alt="2015"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2015.png" alt="2015" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2015-05-27
</p>

<figure id="org642dc12">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="0.755%" height="100%" x="99.245%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:49 - 07:55: Sleep</title></rect><rect width="1.267%" height="100%" x="97.978%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:30 - 23:49: Personal - Routines</title></rect><rect width="5.668%" height="100%" x="92.310%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>22:09 - 23:30: Discretionary - Play - Relax</title></rect><rect width="3.106%" height="100%" x="89.204%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>21:24 - 22:09: Discretionary - Productive - Drawing</title></rect><rect width="4.211%" height="100%" x="84.993%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>20:23 - 21:24: Discretionary - Play - Relax</title></rect><rect width="1.067%" height="100%" x="83.926%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:08 - 20:23: Personal - Routines</title></rect><rect width="4.626%" height="100%" x="79.300%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>19:01 - 20:08: Unpaid work - Clean the kitchen</title></rect><rect width="1.027%" height="100%" x="78.273%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>18:47 - 19:01: Personal - Eat - Dinner</title></rect><rect width="2.693%" height="100%" x="75.580%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>18:08 - 18:47: Unpaid work - Cook</title></rect><rect width="8.488%" height="100%" x="67.091%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>16:06 - 18:08: Business - Build - Quantified Awesome</title></rect><rect width="6.826%" height="100%" x="60.265%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>14:27 - 16:06: Business - Build - Quantified Awesome</title></rect><rect width="10.074%" height="100%" x="50.191%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>12:02 - 14:27: Discretionary - Play - Ni no Kuni</title></rect><rect width="1.777%" height="100%" x="48.414%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>11:37 - 12:02: Personal - Eat - Lunch</title></rect><rect width="4.834%" height="100%" x="43.580%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>10:27 - 11:37: Business - Build - Quantified Awesome</title></rect><rect width="6.113%" height="100%" x="37.466%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>08:59 - 10:27: Business - Build - Quantified Awesome</title></rect><rect width="6.588%" height="100%" x="30.878%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>07:24 - 08:59: Personal - Routines</title></rect><rect width="28.347%" height="100%" x="2.531%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>00:36 - 07:24: Sleep</title></rect><rect width="2.531%" height="100%" x="0.000%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:11 - 00:36: Personal - Routines</title></rect></svg>

</figure>

<p>
I continued to hang out at Hacklab and work
on my own stuff, with a little bit of consulting.
Towards the latter part of 2015 and the early part
of 2016, I felt quite tired because of pregnancy,
so I spent a lot more time relaxing.
</p>

<p>
<a href="https://sachachua.com/blog/2016/01/2015-in-review/">2015 yearly review</a>
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2016" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2016">2016</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2016">

<figure id="orgd645f8c">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2016-trimmed.svg" data-link="true" alt="2016"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2016.png" alt="2016" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2016-04-21
</p>

<figure id="org77c3e66">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="0.972%" height="100%" x="99.028%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>23:46 - 00:15: A+ - Childcare</title></rect><rect width="3.786%" height="100%" x="95.242%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>22:51 - 23:46: Sleep</title></rect><rect width="2.603%" height="100%" x="92.639%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>22:14 - 22:51: A+ - Childcare</title></rect><rect width="3.113%" height="100%" x="89.525%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>21:29 - 22:14: Personal - Routines</title></rect><rect width="0.152%" height="100%" x="89.374%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>21:26 - 21:29: Sleep</title></rect><rect width="0.902%" height="100%" x="88.472%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>21:14 - 21:26: A+ - Childcare</title></rect><rect width="0.189%" height="100%" x="88.284%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>21:11 - 21:14: Personal - Routines</title></rect><rect width="0.707%" height="100%" x="87.576%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>21:01 - 21:11: Unpaid work - Clean the kitchen</title></rect><rect width="1.465%" height="100%" x="86.111%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>20:40 - 21:01: A+ - Childcare</title></rect><rect width="1.325%" height="100%" x="84.786%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:20 - 20:40: Personal - Eat - Dinner</title></rect><rect width="1.719%" height="100%" x="83.067%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>19:56 - 20:20: Discretionary - Productive - Coding</title></rect><rect width="2.095%" height="100%" x="80.972%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>19:26 - 19:56: A+ - Childcare</title></rect><rect width="1.465%" height="100%" x="79.507%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>19:04 - 19:26: Discretionary - Productive - Drawing</title></rect><rect width="2.866%" height="100%" x="76.641%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:23 - 19:04: A+ - Childcare</title></rect><rect width="1.850%" height="100%" x="74.792%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:57 - 18:23: A+ - Childcare</title></rect><rect width="2.076%" height="100%" x="72.715%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>17:27 - 17:57: Business - Build - Paperwork</title></rect><rect width="2.025%" height="100%" x="70.690%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>16:57 - 17:27: Discretionary - Social</title></rect><rect width="2.211%" height="100%" x="68.479%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>16:26 - 16:57: Personal - Routines</title></rect><rect width="1.032%" height="100%" x="67.447%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>16:11 - 16:26: A+ - Childcare</title></rect><rect width="1.604%" height="100%" x="65.843%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>15:48 - 16:11: Discretionary - Productive - Tracking</title></rect><rect width="3.544%" height="100%" x="62.299%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>14:57 - 15:48: Personal - Walk - Other</title></rect><rect width="1.877%" height="100%" x="60.421%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>14:30 - 14:57: A+ - Childcare</title></rect><rect width="2.903%" height="100%" x="57.519%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>13:48 - 14:30: Discretionary - Productive - Coding</title></rect><rect width="3.351%" height="100%" x="54.168%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>13:00 - 13:48: Discretionary - Productive - Coding</title></rect><rect width="0.329%" height="100%" x="53.839%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>12:55 - 13:00: Discretionary - Productive - Coding</title></rect><rect width="0.543%" height="100%" x="53.296%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>12:47 - 12:55: Discretionary - Productive - Coding</title></rect><rect width="1.382%" height="100%" x="51.914%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>12:27 - 12:47: A+ - Childcare</title></rect><rect width="0.030%" height="100%" x="51.884%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>12:27 - 12:27: Discretionary - Productive - Coding</title></rect><rect width="1.068%" height="100%" x="50.816%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>12:11 - 12:27: Business - Connect - Connecting</title></rect><rect width="3.132%" height="100%" x="47.684%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>11:26 - 12:11: Unpaid work - Laundry</title></rect><rect width="0.310%" height="100%" x="47.374%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>11:22 - 11:26: Sleep</title></rect><rect width="0.013%" height="100%" x="47.361%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>11:22 - 11:22: Unpaid work - Clean the kitchen</title></rect><rect width="0.116%" height="100%" x="47.245%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>11:20 - 11:22: A+ - Childcare</title></rect><rect width="1.149%" height="100%" x="46.096%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>11:03 - 11:20: A+ - Childcare</title></rect><rect width="0.031%" height="100%" x="46.065%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>11:03 - 11:03: Personal - Plan</title></rect><rect width="3.443%" height="100%" x="42.622%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>10:13 - 11:03: Personal - Routines</title></rect><rect width="1.169%" height="100%" x="41.453%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:56 - 10:13: A+ - Childcare</title></rect><rect width="18.536%" height="100%" x="22.917%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>05:30 - 09:56: Sleep</title></rect><rect width="1.883%" height="100%" x="21.034%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>05:02 - 05:30: A+ - Childcare</title></rect><rect width="9.575%" height="100%" x="11.458%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>02:45 - 05:02: Sleep</title></rect><rect width="0.443%" height="100%" x="11.015%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>02:38 - 02:45: A+ - Childcare</title></rect><rect width="0.008%" height="100%" x="11.007%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>02:38 - 02:38: A+ - Childcare</title></rect><rect width="0.693%" height="100%" x="10.314%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>02:28 - 02:38: A+ - Childcare</title></rect><rect width="9.603%" height="100%" x="0.711%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>00:10 - 02:28: Sleep</title></rect><rect width="0.711%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:49 - 00:10: Sleep</title></rect></svg>

</figure>

<p>
In February, <abbr title="A+ is our daughter, who is 9 years old as of 2025" tabindex="0">A+</abbr> was born. Here's the
obligatory visualization of how my sleep shattered
into a million pieces and childcare took over my
days and nights. If you have ever been the primary
caregiver of an infant, you'll know what this is
like.
</p>

<table>


<colgroup>
<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Year</th>
<th scope="col" class="org-right">Sleep %</th>
<th scope="col" class="org-right">Avg hours / day</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">2012</td>
<td class="org-right">34.6</td>
<td class="org-right">8.3</td>
</tr>

<tr>
<td class="org-right">2013</td>
<td class="org-right">36.7</td>
<td class="org-right">8.8</td>
</tr>

<tr>
<td class="org-right">2014</td>
<td class="org-right">36.9</td>
<td class="org-right">8.9</td>
</tr>

<tr>
<td class="org-right">2015</td>
<td class="org-right">38.1</td>
<td class="org-right">9.1</td>
</tr>

<tr>
<td class="org-right"><b>2016</b></td>
<td class="org-right">34.9</td>
<td class="org-right">8.4</td>
</tr>

<tr>
<td class="org-right">2017</td>
<td class="org-right">32.5</td>
<td class="org-right">7.8</td>
</tr>
</tbody>
</table>

<p>
&#x2026; Sure didn't <i>feel</i> like 8.4 hours a day. Not
enough continuous sleep, definitely foggy-brained.
Although to be fair, babies also sleep a lot, and
I tried to sleep during that time too.
</p>

<p>
Towards the end of the year, we took A+ to the
Philippines to see family. We tried to do the
usual short layover and that was miserable because
of sleep deprivation, so our other flights
included an overnight layover.
</p>

<p>
I decided that doing my yearly review twice a year
was a bit excessive, so I moved to doing it in
August for my birthday. This year was split
between <a href="https://sachachua.com/blog/2016/08/life-33-year-old/">life as a 32-year-old</a> and <a href="https://sachachua.com/blog/2017/10/turning-34-life-as-a-33-year-old/">a 33-year-old</a>.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2017" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2017">2017</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2017">

<figure id="org1977768">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2017-trimmed.svg" data-link="true" alt="2017"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2017.png" alt="2017" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2017-04-25
</p>

<figure id="org1e5314c">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="0.764%" height="100%" x="99.236%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>23:49 - 01:03: A+ - Childcare</title></rect><rect width="3.124%" height="100%" x="96.112%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>23:04 - 23:49: A+ - Childcare</title></rect><rect width="1.049%" height="100%" x="95.064%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>22:48 - 23:04: Personal - Eat - Dinner</title></rect><rect width="1.175%" height="100%" x="93.889%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>22:32 - 22:48: A+ - Childcare</title></rect><rect width="0.851%" height="100%" x="93.038%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>22:19 - 22:32: Personal - Routines</title></rect><rect width="8.926%" height="100%" x="84.112%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>20:11 - 22:19: Sleep</title></rect><rect width="2.237%" height="100%" x="81.875%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>19:39 - 20:11: A+ - Childcare</title></rect><rect width="2.014%" height="100%" x="79.861%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>19:10 - 19:39: A+ - Childcare</title></rect><rect width="1.206%" height="100%" x="78.655%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>18:52 - 19:10: Personal - Routines</title></rect><rect width="0.322%" height="100%" x="78.333%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:48 - 18:52: A+ - Childcare</title></rect><rect width="2.457%" height="100%" x="75.876%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:12 - 18:48: A+ - Childcare</title></rect><rect width="6.110%" height="100%" x="69.766%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:44 - 18:12: Unpaid work - Subway</title></rect><rect width="7.515%" height="100%" x="62.251%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>14:56 - 16:44: Personal - Walk - Other</title></rect><rect width="4.390%" height="100%" x="57.861%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>13:53 - 14:56: Unpaid work - Subway</title></rect><rect width="5.361%" height="100%" x="52.500%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>12:36 - 13:53: A+ - Childcare</title></rect><rect width="0.625%" height="100%" x="51.875%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>12:27 - 12:36: A+ - Childcare</title></rect><rect width="1.667%" height="100%" x="50.208%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>12:03 - 12:27: Personal - Walk - Other</title></rect><rect width="2.002%" height="100%" x="48.206%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>11:34 - 12:03: A+ - Childcare</title></rect><rect width="0.822%" height="100%" x="47.384%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>11:22 - 11:34: Personal - Routines</title></rect><rect width="1.892%" height="100%" x="45.492%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>10:55 - 11:22: Unpaid work - Clean the kitchen</title></rect><rect width="1.701%" height="100%" x="43.791%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>10:30 - 10:55: Personal - Eat - Breakfast</title></rect><rect width="3.988%" height="100%" x="39.802%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>09:33 - 10:30: Unpaid work - Cook</title></rect><rect width="0.312%" height="100%" x="39.490%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:28 - 09:33: A+ - Childcare</title></rect><rect width="28.973%" height="100%" x="10.516%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>02:31 - 09:28: Sleep</title></rect><rect width="4.939%" height="100%" x="5.578%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>01:20 - 02:31: Discretionary - Play - Relax</title></rect><rect width="1.502%" height="100%" x="4.075%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>00:58 - 01:20: Discretionary - Productive - Tracking</title></rect><rect width="1.083%" height="100%" x="2.992%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>00:43 - 00:58: Personal - Plan</title></rect><rect width="0.353%" height="100%" x="2.639%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>00:38 - 00:43: A+ - Childcare</title></rect><rect width="0.903%" height="100%" x="1.736%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>00:25 - 00:38: A+ - Childcare</title></rect><rect width="0.079%" height="100%" x="1.657%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>00:23 - 00:25: Personal - Plan</title></rect><rect width="1.102%" height="100%" x="0.556%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>00:08 - 00:23: A+ - Childcare</title></rect><rect width="0.556%" height="100%" x="0.000%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:38 - 00:08: Personal - Plan</title></rect></svg>

</figure>

<p>
More childcare. We often went to playgrounds,
libraries, EarlyON early childhood centres,
museums, and the Ontario Science Centre. I often
needed a nap in the evenings.
</p>

<p>
Another trip to the Philippines. The very regular
section was probably when I didn't have a reliable
way of updating my time tracker. (Yearly review
split between <a href="https://sachachua.com/blog/2016/08/life-33-year-old/">life as a 33-year-old</a> and <a href="https://sachachua.com/blog/2018/08/turning-35-life-as-a-34-year-old/">a
34-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2018" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2018">2018</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2018">

<figure id="org680a4e1">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2018-trimmed.svg" data-link="true" alt="2018"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2018.png" alt="2018" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2018-05-08
</p>

<figure id="orge53baac">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="2.361%" height="100%" x="97.639%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>23:26 - 00:35: A+ - Childcare</title></rect><rect width="3.529%" height="100%" x="94.110%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>22:35 - 23:26: A+ - Childcare</title></rect><rect width="0.227%" height="100%" x="93.883%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>22:31 - 22:35: Personal - Routines</title></rect><rect width="2.078%" height="100%" x="91.806%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>22:02 - 22:31: Unpaid work - Clean the kitchen</title></rect><rect width="15.069%" height="100%" x="76.736%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:25 - 22:02: A+ - Childcare</title></rect><rect width="1.042%" height="100%" x="75.694%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:10 - 18:25: A+ - Childcare</title></rect><rect width="2.144%" height="100%" x="73.551%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:39 - 18:10: A+ - Childcare</title></rect><rect width="0.512%" height="100%" x="73.039%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>17:31 - 17:39: Personal - Routines</title></rect><rect width="0.609%" height="100%" x="72.431%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:23 - 17:31: A+ - Childcare</title></rect><rect width="0.764%" height="100%" x="71.667%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:12 - 17:23: A+ - Childcare</title></rect><rect width="0.507%" height="100%" x="71.160%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:04 - 17:12: A+ - Childcare</title></rect><rect width="2.309%" height="100%" x="68.851%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:31 - 17:04: Unpaid work - Tidy up</title></rect><rect width="5.596%" height="100%" x="63.255%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>15:10 - 16:31: Business - Earn - Consulting - E1 - General</title></rect><rect width="2.355%" height="100%" x="60.899%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>14:36 - 15:10: A+ - Childcare</title></rect><rect width="5.392%" height="100%" x="55.507%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>13:19 - 14:36: Business - Earn - Consulting - E1 - General</title></rect><rect width="17.799%" height="100%" x="37.708%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:03 - 13:19: A+ - Childcare</title></rect><rect width="35.090%" height="100%" x="2.618%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>00:37 - 09:03: Sleep</title></rect><rect width="1.299%" height="100%" x="1.319%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>00:19 - 00:37: A+ - Childcare</title></rect><rect width="1.319%" height="100%" x="0.000%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>21:24 - 00:19: A+ - Childcare</title></rect></svg>

</figure>

<p>
We went on two trips to the Philippines. My
dad died during the first one, and the second one
was to keep my mom company. (Yearly review split
between <a href="https://sachachua.com/blog/2018/08/turning-35-life-as-a-34-year-old/">life as a 34-year-old</a> and <a href="https://sachachua.com/blog/2019/08/turning-36-life-as-a-35-year-old/">a 35-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2019" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2019">2019</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2019">

<figure id="orgd496723">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2019-trimmed.svg" data-link="true" alt="2019"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2019.png" alt="2019" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2019-04-25
</p>

<figure id="orgf7c2074">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="0.441%" height="100%" x="99.559%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:53 - 08:34: Sleep</title></rect><rect width="0.718%" height="100%" x="98.841%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:43 - 23:53: Sleep</title></rect><rect width="7.531%" height="100%" x="91.310%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>21:54 - 23:43: Discretionary - Family</title></rect><rect width="0.637%" height="100%" x="90.674%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>21:45 - 21:54: Personal - Routines</title></rect><rect width="4.539%" height="100%" x="86.134%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>20:40 - 21:45: A+ - Childcare</title></rect><rect width="1.206%" height="100%" x="84.928%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:22 - 20:40: Personal - Routines</title></rect><rect width="48.470%" height="100%" x="36.458%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>08:45 - 20:22: A+ - Childcare</title></rect><rect width="2.215%" height="100%" x="34.243%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>08:13 - 08:45: Personal - Routines</title></rect><rect width="34.243%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:19 - 08:13: Sleep</title></rect></svg>

</figure>

<p>
Sometimes I paid a babysitter so I could do some
consulting, but A+ usually didn't like being away
from me, so I just didn't do that much. This year
was also our last trip to the Philippines before
COVID changed the world. (Yearly review split
between <a href="https://sachachua.com/blog/2019/08/turning-36-life-as-a-35-year-old/">life as a 35-year-old</a> and <a href="https://sachachua.com/blog/2020/08/turning-37-life-as-a-36-year-old/">a 36-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2020" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2020">2020</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2020">

<figure id="org70b7bf4">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2020-trimmed.svg" data-link="true" alt="2020"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2020.png" alt="2020" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2020-04-28
</p>

<figure id="orgdcb7bf1">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="1.951%" height="100%" x="98.049%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:31 - 00:15: Sleep</title></rect><rect width="0.117%" height="100%" x="97.932%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:30 - 23:31: Personal - Routines</title></rect><rect width="1.851%" height="100%" x="96.081%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>23:03 - 23:30: Discretionary - Play - Read - Fiction</title></rect><rect width="0.475%" height="100%" x="95.606%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>22:56 - 23:03: Discretionary - Productive - Writing</title></rect><rect width="4.428%" height="100%" x="91.178%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>21:52 - 22:56: Discretionary - Play - Read - Fiction</title></rect><rect width="4.669%" height="100%" x="86.509%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>20:45 - 21:52: A+ - Childcare</title></rect><rect width="1.400%" height="100%" x="85.109%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>20:25 - 20:45: Discretionary - Productive - Coding</title></rect><rect width="0.571%" height="100%" x="84.538%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>20:17 - 20:25: Discretionary - Family</title></rect><rect width="2.080%" height="100%" x="82.458%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>19:47 - 20:17: Personal - Routines</title></rect><rect width="7.718%" height="100%" x="74.741%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>17:56 - 19:47: A+ - Childcare</title></rect><rect width="6.243%" height="100%" x="68.498%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:26 - 17:56: Unpaid work - Cook</title></rect><rect width="30.926%" height="100%" x="37.572%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:01 - 16:26: A+ - Childcare</title></rect><rect width="8.260%" height="100%" x="29.311%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>07:02 - 09:01: A+ - Childcare</title></rect><rect width="0.065%" height="100%" x="29.247%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>07:01 - 07:02: Sleep</title></rect><rect width="23.363%" height="100%" x="5.883%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>01:24 - 07:01: Sleep</title></rect><rect width="4.491%" height="100%" x="1.392%" y="0" fill="#ffee65" stroke="#ffee65" stroke-opacity="0.3"><title>00:20 - 01:24: Discretionary - Social</title></rect><rect width="1.392%" height="100%" x="0.000%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>23:50 - 00:20: Discretionary - Productive - Coding</title></rect></svg>

</figure>

<p>
I started staying up to try to get stuff
done. This was sometimes tricky to get right. If I
stayed up too late and then A+ woke up early, I
got cranky. I did much less consulting. The two
dark blue lines towards the later part of the year
represent EmacsConf.  (Yearly review split between <a href="https://sachachua.com/blog/2020/08/turning-37-life-as-a-36-year-old/">life as a 36-year-old</a> and <a href="https://sachachua.com/blog/2021/08/turning-38-life-as-a-37-year-old/">a 37-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2021" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2021">2021</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2021">

<figure id="orge022545">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2021-trimmed.svg" data-link="true" alt="2021"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2021.png" alt="2021" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2021-04-29
</p>

<figure id="org37f05f5">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="1.579%" height="100%" x="98.421%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>23:37 - 00:01: Discretionary - Productive - Gardening</title></rect><rect width="0.971%" height="100%" x="97.450%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>23:23 - 23:37: Discretionary - Productive - Coding</title></rect><rect width="0.850%" height="100%" x="96.601%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>23:11 - 23:23: Personal - Routines</title></rect><rect width="6.976%" height="100%" x="89.625%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>21:30 - 23:11: A+ - Childcare</title></rect><rect width="4.163%" height="100%" x="85.462%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:30 - 21:30: Personal - Routines</title></rect><rect width="3.190%" height="100%" x="82.272%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>19:44 - 20:30: Discretionary - Productive - Emacs</title></rect><rect width="4.957%" height="100%" x="77.315%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:33 - 19:44: A+ - Childcare</title></rect><rect width="0.553%" height="100%" x="76.762%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>18:25 - 18:33: Personal - Routines</title></rect><rect width="0.141%" height="100%" x="76.620%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:23 - 18:25: A+ - Childcare</title></rect><rect width="4.172%" height="100%" x="72.448%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>17:23 - 18:23: Personal - Routines</title></rect><rect width="2.157%" height="100%" x="70.291%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:52 - 17:23: Unpaid work - Clean the kitchen</title></rect><rect width="1.390%" height="100%" x="68.900%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>16:32 - 16:52: Unpaid work - Cook</title></rect><rect width="27.830%" height="100%" x="41.071%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:51 - 16:32: A+ - Childcare</title></rect><rect width="4.417%" height="100%" x="36.654%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>08:47 - 09:51: Personal - Routines</title></rect><rect width="30.316%" height="100%" x="6.338%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>01:31 - 08:47: Sleep</title></rect><rect width="1.339%" height="100%" x="4.999%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>01:11 - 01:31: Personal - Routines</title></rect><rect width="4.999%" height="100%" x="0.000%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>23:42 - 01:11: Discretionary - Productive - Emacs</title></rect></svg>

</figure>

<p>
Still staying up to try to have some me-time. The dark blue boxes in the second half of the year
show that I started taking a more active role in
organizing EmacsConf, mostly by coding stuff late
at night. (Yearly review split between <a href="https://sachachua.com/blog/2021/08/turning-38-life-as-a-37-year-old/">life as a
37-year-old</a> and <a href="https://sachachua.com/blog/2022/08/turning-39-life-as-a-38-year-old/">a 38-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2022" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2022">2022</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2022">

<figure id="orgeddf912">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2022-trimmed.svg" data-link="true" alt="2022"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2022.png" alt="2022" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2022-04-25
</p>

<figure id="org50fdaa0">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="2.668%" height="100%" x="97.332%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>23:21 - 00:15: Discretionary - Productive - Writing</title></rect><rect width="2.141%" height="100%" x="95.191%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>22:50 - 23:21: Discretionary - Productive - Emacs</title></rect><rect width="9.308%" height="100%" x="85.883%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>20:36 - 22:50: A+ - Childcare</title></rect><rect width="1.865%" height="100%" x="84.019%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:09 - 20:36: Personal - Routines</title></rect><rect width="40.928%" height="100%" x="43.090%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>10:20 - 20:09: A+ - Childcare</title></rect><rect width="41.244%" height="100%" x="1.846%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>00:26 - 10:20: Sleep</title></rect><rect width="0.124%" height="100%" x="1.722%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>00:24 - 00:26: Personal - Routines</title></rect><rect width="1.722%" height="100%" x="0.000%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>21:24 - 00:24: A+ - Childcare</title></rect></svg>

</figure>

<p>
A+ shifted to staying up late too, so I adapted by
doing less. Trying to get her to go to bed earlier
just resulted in grumpiness and crying. (Sometimes
I was the one crying.)
</p>

<p>
I did a lot more automation for EmacsConf.
Sometimes it was because she was attending virtual
grade 1 during the daytime, and sometimes it was
because she was just chilling out watching videos
in the evening. (Yearly review split between <a href="https://sachachua.com/blog/2022/08/turning-39-life-as-a-38-year-old/">life
as a 38-year-old</a> and <a href="https://sachachua.com/blog/2023/08/turning-40-life-as-a-39-year-old/">a 39-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2023" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2023">2023</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2023">

<figure id="org7318e19">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2023-trimmed.svg" data-link="true" alt="2023"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2023.png" alt="2023" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2023-04-25
</p>

<figure id="org2f157fd">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="2.529%" height="100%" x="97.471%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:23 - 08:05: Sleep</title></rect><rect width="7.105%" height="100%" x="90.366%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>21:41 - 23:23: A+ - Childcare</title></rect><rect width="2.083%" height="100%" x="88.282%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>21:11 - 21:41: Personal - Routines</title></rect><rect width="31.037%" height="100%" x="57.245%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>13:44 - 21:11: A+ - Childcare</title></rect><rect width="1.042%" height="100%" x="56.204%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>13:29 - 13:44: Discretionary - Productive - Emacs</title></rect><rect width="0.913%" height="100%" x="55.291%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>13:16 - 13:29: Personal - Plan</title></rect><rect width="0.927%" height="100%" x="54.363%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>13:02 - 13:16: A+ - Childcare</title></rect><rect width="1.074%" height="100%" x="53.289%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>12:47 - 13:02: Business - Earn - Consulting - E1 - General</title></rect><rect width="0.110%" height="100%" x="53.179%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>12:45 - 12:47: A+ - Childcare</title></rect><rect width="0.769%" height="100%" x="52.411%" y="0" fill="#fd7f6f" stroke="#fd7f6f" stroke-opacity="0.3"><title>12:34 - 12:45: Business - Earn - Consulting - E1 - General</title></rect><rect width="16.662%" height="100%" x="35.749%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>08:34 - 12:34: A+ - Childcare</title></rect><rect width="4.633%" height="100%" x="31.116%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>07:28 - 08:34: Personal - Routines</title></rect><rect width="31.116%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:22 - 07:28: Sleep</title></rect></svg>

</figure>

<p>
A+ started grade 2. We had to wait a little while to get our
exemption from synchronous learning approved, so
we made an effort to attend school in the
beginning. We eventually got the exemption,
though. (Yearly review split between <a href="https://sachachua.com/blog/2023/08/turning-40-life-as-a-39-year-old/">life as a 39-year-old</a> and <a href="https://sachachua.com/blog/2024/08/turning-41-life-as-a-40-year-old/">a 40-year-old</a>)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2024" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2024">2024</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2024">

<figure id="org40be48a">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2024-trimmed.svg" data-link="true" alt="2024"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2024.png" alt="2024" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2024-04-25
</p>

<figure id="org8c44357">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="3.691%" height="100%" x="96.309%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:06 - 00:36: Sleep</title></rect><rect width="10.321%" height="100%" x="85.988%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>20:38 - 23:06: A+ - Childcare</title></rect><rect width="2.083%" height="100%" x="83.905%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>20:08 - 20:38: Personal - Routines</title></rect><rect width="2.083%" height="100%" x="81.822%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>19:38 - 20:08: Unpaid work - Clean the kitchen</title></rect><rect width="45.711%" height="100%" x="36.111%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>08:40 - 19:38: A+ - Childcare</title></rect><rect width="2.778%" height="100%" x="33.333%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>08:00 - 08:40: Personal - Routines</title></rect><rect width="29.520%" height="100%" x="3.814%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>00:54 - 08:00: Sleep</title></rect><rect width="3.814%" height="100%" x="0.000%" y="0" fill="#b2e061" stroke="#b2e061" stroke-opacity="0.3"><title>23:15 - 00:54: Discretionary - Play - Read - Fiction</title></rect></svg>

</figure>

<p>
A+ started grade 3. Our application for an
exemption from synchronous learning wasn't
approved, so A+'s schedule (and mine) tended to
follow the school schedule except for the days
when I say, hey, let's just go on an informal
field trip. I'm glad A+ decided to get on board
with waking up at around 7 AM fairly consistently
instead of sleeping in. The graph also shows the
steadiness of the pink Childcare segments during
the 11AM-12PM lunch breaks. Knowing when I'm
likely to be interrupted by an armful of kiddo
does help me use the morning and afternoon breaks
a little more efficiently, although having 1-1.5
hours to think can still feel a little short if
I'm trying to do some programming.
</p>

<p>
Part of this year was covered by my <a href="https://sachachua.com/blog/2024/08/turning-41-life-as-a-40-year-old/">life as a
40-year-old</a> yearly review. I'll write my "life as
a 41-year-old" post in August this year.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-2025" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-2025">2025</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-2025">

<figure id="orge55b0d2">
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2025-trimmed.svg" data-link="true" alt="2025"><img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/time-2025.png" alt="2025" data-link="true"></a>

</figure>

<p style="margin-top: 0; margin-bottom: 0">
Sample weekday: 2025-04-10
</p>

<figure id="org6c07242">
<svg style="width:100%; height: 20px" preserveAspectRatio="none" viewBox="0 0 500 20" width="500" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="2.985%" height="100%" x="97.015%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:17 - 06:55: Sleep</title></rect><rect width="3.991%" height="100%" x="93.024%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>22:19 - 23:17: Personal - Routines</title></rect><rect width="16.491%" height="100%" x="76.534%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>18:22 - 22:19: A+ - Childcare</title></rect><rect width="2.083%" height="100%" x="74.450%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>17:52 - 18:22: Personal - Routines</title></rect><rect width="1.478%" height="100%" x="72.972%" y="0" fill="#ffb55a" stroke="#ffb55a" stroke-opacity="0.3"><title>17:30 - 17:52: Unpaid work - Clean the kitchen</title></rect><rect width="11.528%" height="100%" x="61.444%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>14:44 - 17:30: A+ - Childcare</title></rect><rect width="0.484%" height="100%" x="60.961%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>14:37 - 14:44: Personal - Routines</title></rect><rect width="3.023%" height="100%" x="57.938%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>13:54 - 14:37: Discretionary - Productive - Coding</title></rect><rect width="4.956%" height="100%" x="52.981%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>12:42 - 13:54: Discretionary - Productive - Emacs</title></rect><rect width="2.255%" height="100%" x="50.727%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>12:10 - 12:42: Discretionary - Productive - Writing</title></rect><rect width="0.425%" height="100%" x="50.302%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>12:04 - 12:10: Discretionary - Productive - Emacs</title></rect><rect width="4.350%" height="100%" x="45.953%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>11:01 - 12:04: A+ - Childcare</title></rect><rect width="0.212%" height="100%" x="45.741%" y="0" fill="#648caa" stroke="#648caa" stroke-opacity="0.3"><title>10:58 - 11:01: Discretionary - Productive - Emacs</title></rect><rect width="0.677%" height="100%" x="45.064%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>10:48 - 10:58: Personal - Routines</title></rect><rect width="3.792%" height="100%" x="41.272%" y="0" fill="#beb9db" stroke="#beb9db" stroke-opacity="0.3"><title>09:54 - 10:48: Personal - Walk - Other</title></rect><rect width="1.199%" height="100%" x="40.073%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>09:37 - 09:54: A+ - Childcare</title></rect><rect width="4.822%" height="100%" x="35.251%" y="0" fill="#7eb0d5" stroke="#7eb0d5" stroke-opacity="0.3"><title>08:27 - 09:37: Discretionary - Productive - Music</title></rect><rect width="6.235%" height="100%" x="29.016%" y="0" fill="#fdcce5" stroke="#fdcce5" stroke-opacity="0.3"><title>06:57 - 08:27: A+ - Childcare</title></rect><rect width="29.016%" height="100%" x="0.000%" y="0" fill="#ccc" stroke="#ccc" stroke-opacity="0.3"><title>23:32 - 06:57: Sleep</title></rect></svg>

</figure>

<p>
I started prioritizing practising piano and going
for a good long walk at some point in the day,
both of which feel very nice. I still usually
handle A+'s recess and lunch breaks, but <abbr title="W- is my husband" tabindex="0">W-</abbr>'s
retired now, so sometimes he handles A+'s lunch
while I do things.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-how-has-my-time-changed-over-the-years" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-how-has-my-time-changed-over-the-years">How has my time changed over the years?</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-how-has-my-time-changed-over-the-years">
<p>
I usually do a quick check of my time by looking
at the category totals and percentages during my
<a href="https://sachachua.com/blog/category/monthly">monthly</a> and <a href="https://sachachua.com/blog/category/yearly">yearly</a> reviews, but seeing it as a
day-by-day view like this makes it easier to feel
the flow of things, including when I tend to stay
up late. (<a href="https://en.wikipedia.org/wiki/Bedtime_procrastination">Revenge bedtime procrastination</a> strikes
again.)
</p>

<p>
Still, category totals make it easier to see
high-level changes over time. Here's a graph of
<a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/hours-per-day.csv">average hours per day per high-level category per
year</a>.
</p>

<style>

</style>

<div id="fig_el457072133361286903664697233049"></div>
<script>
function mpld3_load_lib(url, callback){
  var s = document.createElement('script');
  s.src = url;
  s.async = true;
  s.onreadystatechange = s.onload = callback;
  s.onerror = function(){console.warn("failed to load library " + url);};
  document.getElementsByTagName("head")[0].appendChild(s);
}

if(typeof(mpld3) !== "undefined" && mpld3._mpld3IsLoaded){
   // already loaded: just create the figure
   !function(mpld3){
       
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("setviewbox", SetViewbox);
    SetViewbox.prototype = Object.create(mpld3.Plugin.prototype);
    SetViewbox.prototype.constructor = SetViewbox;
    function SetViewbox(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    SetViewbox.prototype.draw = function(){
        this.fig.canvas.attr("viewBox", "0 0 " + this.fig.width + " " + this.fig.height)
    }
    
       mpld3.draw_figure("fig_el457072133361286903664697233049", {"width": 1400.0, "height": 800.0, "axes": [{"bbox": [0.044216269841269834, 0.07284722222222229, 0.9450694444444445, 0.8804861111111111], "xlim": [2011.35, 2025.65], "ylim": [-0.5750000000000001, 12.075], "xdomain": [2011.35, 2025.65], "ydomain": [-0.5750000000000001, 12.075], "xscale": "linear", "yscale": "linear", "axes": [{"position": "bottom", "nticks": 9, "tickvalues": null, "tickformat_formatter": "str_method", "tickformat": {"format_string": ".0f", "prefix": "", "suffix": ""}, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}, {"position": "left", "nticks": 9, "tickvalues": null, "tickformat_formatter": "", "tickformat": null, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}], "axesbg": "#FFFFFF", "axesbgalpha": null, "zoomable": true, "id": "el457072133361210031712", "lines": [{"data": "data01", "xindex": 0, "yindex": 1, "coordinates": "data", "id": "el457072133361210092736", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 7, "coordinates": "data", "id": "el457072133361210183264", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 12, "coordinates": "data", "id": "el457072133361210187152", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}], "paths": [{"data": "data03", "xindex": 0, "yindex": 1, "coordinates": "axes", "pathcodes": ["M", "L", "S", "L", "S", "L", "S", "L", "S", "Z"], "id": "el457072133361282409456", "dasharray": "none", "alpha": 0.8, "facecolor": "rgba(255, 255, 255, 0.8)", "edgecolor": "rgba(204, 204, 204, 0.8)", "edgewidth": 1.0, "zorder": 1000000.0}], "markers": [{"data": "data01", "xindex": 0, "yindex": 2, "coordinates": "data", "id": "el457072133361210092736pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 8, "coordinates": "data", "id": "el457072133361210183264pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 13, "coordinates": "data", "id": "el457072133361210187152pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}], "texts": [{"text": "Year", "position": [0.5, -0.041564792176039124], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "hanging", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210082848"}, {"text": "Average hours per day", "position": [-0.02486799701877959, 0.5], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -90.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210083712"}, {"text": "Average hours per day by category over time", "position": [0.5, 1.0118305860083603], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -0.0, "fontsize": 12.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210086448"}, {"text": "A+", "position": [0.8099157070426085, 0.6429923495543812], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210188832"}, {"text": "Personal", "position": [0.8099157070426085, 0.6132581433867024], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210189744"}, {"text": "Discretionary - Productive - Emacs", "position": [0.8099157070426085, 0.5835239372190236], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210191088"}, {"text": "Discretionary - Productive", "position": [0.8099157070426085, 0.5537897310513448], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210192192"}, {"text": "Discretionary - Play", "position": [0.8099157070426085, 0.5240555248836659], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210193584"}, {"text": "Discretionary - Social", "position": [0.8099157070426085, 0.49432131871598706], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210194976"}, {"text": "Discretionary - Family", "position": [0.8099157070426085, 0.4645871125483082], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210261968"}, {"text": "Unpaid work", "position": [0.8099157070426085, 0.43485290638062946], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210263360"}, {"text": "Business", "position": [0.8099157070426085, 0.40511870021295054], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210264752"}, {"text": "Work", "position": [0.8099157070426085, 0.37538449404527174], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210266144"}, {"text": "Sleep", "position": [0.8099157070426085, 0.3456502878775929], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210262832"}], "collections": [], "images": [], "sharex": [], "sharey": []}], "data": {"data01": [[2012.0, NaN, NaN, 3.3, 0.1, 1.7, 0.7, 1.9, 1.9, 0.1, 1.7, 5.2, 0.7, 0.7, 8.3], [2013.0, NaN, NaN, 3.0, 0.3, 2.2, 1.2, 0.5, 0.5, 1.3, 1.9, 4.2, 0.0, 0.0, 8.8], [2014.0, NaN, NaN, 3.5, 0.4, 2.4, 1.2, 0.3, 0.3, 0.9, 1.7, 4.7, NaN, NaN, 8.9], [2015.0, NaN, NaN, 4.0, 0.4, 2.7, 2.2, 0.2, 0.2, 1.0, 1.8, 2.5, NaN, NaN, 9.1], [2016.0, 7.2, 7.2, 3.0, 0.1, 1.3, 0.5, 0.4, 0.4, 0.6, 1.8, 0.6, NaN, NaN, 8.4], [2017.0, 10.4, 10.4, 2.2, 0.1, 0.6, 0.3, 0.1, 0.1, 0.4, 1.5, 0.4, NaN, NaN, 7.8], [2018.0, 10.7, 10.7, 1.5, 0.1, 0.8, 0.3, 0.3, 0.3, 0.7, 1.4, 0.2, NaN, NaN, 8.0], [2019.0, 10.5, 10.5, 1.2, 0.3, 0.8, 0.6, 0.2, 0.2, 0.5, 1.2, 0.5, NaN, NaN, 8.2], [2020.0, 11.5, 11.5, 1.1, 0.5, 1.3, 0.2, 0.0, 0.0, 0.2, 1.0, 0.4, NaN, NaN, 7.9], [2021.0, 10.0, 10.0, 1.6, 1.4, 1.2, 0.2, 0.0, 0.0, 0.1, 1.3, 0.5, NaN, NaN, 7.9], [2022.0, 9.7, 9.7, 1.8, 1.4, 0.7, 0.2, 0.0, 0.0, 0.1, 1.1, 0.4, NaN, NaN, 8.6], [2023.0, 9.5, 9.5, 2.4, 1.2, 0.7, 0.1, 0.0, 0.0, 0.3, 0.9, 0.8, NaN, NaN, 8.2], [2024.0, 9.9, 9.9, 2.0, 0.9, 0.9, 0.2, 0.0, 0.0, 0.1, 0.9, 0.7, NaN, NaN, 8.5], [2025.0, 8.4, 8.4, 2.3, 0.8, 2.6, 0.2, NaN, NaN, 0.0, 1.1, 0.5, NaN, NaN, 8.1]], "data02": [[0.7805233931326959, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.7910206481005219, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.8015179030683477, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637]], "data03": [[0.7784239421391308, 0.33350421957567633], [0.9926519215225219, 0.33350421957567633], [0.9947513725160871, 0.33350421957567633], [0.9947513725160871, 0.33744774824512974], [0.9947513725160871, 0.6625522517548702], [0.9947513725160871, 0.6664957804243238], [0.9926519215225219, 0.6664957804243238], [0.7784239421391308, 0.6664957804243238], [0.7763244911455656, 0.6664957804243238], [0.7763244911455656, 0.6625522517548702], [0.7763244911455656, 0.33744774824512974], [0.7763244911455656, 0.33350421957567633], [0.7784239421391308, 0.33350421957567633]]}, "id": "el457072133361286903664", "plugins": [{"type": "reset"}, {"type": "zoom", "button": true, "enabled": false}, {"type": "boxzoom", "button": true, "enabled": false}, {"type": "htmltooltip", "id": "el457072133361210092736pts", "labels": ["A+ (2016): avg 7.2 hours/day", "A+ (2017): avg 10.4 hours/day", "A+ (2018): avg 10.7 hours/day", "A+ (2019): avg 10.5 hours/day", "A+ (2020): avg 11.5 hours/day", "A+ (2021): avg 10.0 hours/day", "A+ (2022): avg 9.7 hours/day", "A+ (2023): avg 9.5 hours/day", "A+ (2024): avg 9.9 hours/day", "A+ (2025): avg 8.4 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210179664pts", "labels": ["Personal (2012): avg 3.3 hours/day", "Personal (2013): avg 3.0 hours/day", "Personal (2014): avg 3.5 hours/day", "Personal (2015): avg 4.0 hours/day", "Personal (2016): avg 3.0 hours/day", "Personal (2017): avg 2.2 hours/day", "Personal (2018): avg 1.5 hours/day", "Personal (2019): avg 1.2 hours/day", "Personal (2020): avg 1.1 hours/day", "Personal (2021): avg 1.6 hours/day", "Personal (2022): avg 1.8 hours/day", "Personal (2023): avg 2.4 hours/day", "Personal (2024): avg 2.0 hours/day", "Personal (2025): avg 2.3 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210180480pts", "labels": ["Discretionary - Productive - Emacs (2012): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2013): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2014): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2015): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2016): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2017): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2018): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2019): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2020): avg 0.5 hours/day", "Discretionary - Productive - Emacs (2021): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2022): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2023): avg 1.2 hours/day", "Discretionary - Productive - Emacs (2024): avg 0.9 hours/day", "Discretionary - Productive - Emacs (2025): avg 0.8 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210181440pts", "labels": ["Discretionary - Productive (2012): avg 1.7 hours/day", "Discretionary - Productive (2013): avg 2.2 hours/day", "Discretionary - Productive (2014): avg 2.4 hours/day", "Discretionary - Productive (2015): avg 2.7 hours/day", "Discretionary - Productive (2016): avg 1.3 hours/day", "Discretionary - Productive (2017): avg 0.6 hours/day", "Discretionary - Productive (2018): avg 0.8 hours/day", "Discretionary - Productive (2019): avg 0.8 hours/day", "Discretionary - Productive (2020): avg 1.3 hours/day", "Discretionary - Productive (2021): avg 1.2 hours/day", "Discretionary - Productive (2022): avg 0.7 hours/day", "Discretionary - Productive (2023): avg 0.7 hours/day", "Discretionary - Productive (2024): avg 0.9 hours/day", "Discretionary - Productive (2025): avg 2.6 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210182304pts", "labels": ["Discretionary - Play (2012): avg 0.7 hours/day", "Discretionary - Play (2013): avg 1.2 hours/day", "Discretionary - Play (2014): avg 1.2 hours/day", "Discretionary - Play (2015): avg 2.2 hours/day", "Discretionary - Play (2016): avg 0.5 hours/day", "Discretionary - Play (2017): avg 0.3 hours/day", "Discretionary - Play (2018): avg 0.3 hours/day", "Discretionary - Play (2019): avg 0.6 hours/day", "Discretionary - Play (2020): avg 0.2 hours/day", "Discretionary - Play (2021): avg 0.2 hours/day", "Discretionary - Play (2022): avg 0.2 hours/day", "Discretionary - Play (2023): avg 0.1 hours/day", "Discretionary - Play (2024): avg 0.2 hours/day", "Discretionary - Play (2025): avg 0.2 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210183264pts", "labels": ["Discretionary - Social (2012): avg 1.9 hours/day", "Discretionary - Social (2013): avg 0.5 hours/day", "Discretionary - Social (2014): avg 0.3 hours/day", "Discretionary - Social (2015): avg 0.2 hours/day", "Discretionary - Social (2016): avg 0.4 hours/day", "Discretionary - Social (2017): avg 0.1 hours/day", "Discretionary - Social (2018): avg 0.3 hours/day", "Discretionary - Social (2019): avg 0.2 hours/day", "Discretionary - Social (2020): avg 0.0 hours/day", "Discretionary - Social (2021): avg 0.0 hours/day", "Discretionary - Social (2022): avg 0.0 hours/day", "Discretionary - Social (2023): avg 0.0 hours/day", "Discretionary - Social (2024): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210184272pts", "labels": ["Discretionary - Family (2012): avg 0.1 hours/day", "Discretionary - Family (2013): avg 1.3 hours/day", "Discretionary - Family (2014): avg 0.9 hours/day", "Discretionary - Family (2015): avg 1.0 hours/day", "Discretionary - Family (2016): avg 0.6 hours/day", "Discretionary - Family (2017): avg 0.4 hours/day", "Discretionary - Family (2018): avg 0.7 hours/day", "Discretionary - Family (2019): avg 0.5 hours/day", "Discretionary - Family (2020): avg 0.2 hours/day", "Discretionary - Family (2021): avg 0.1 hours/day", "Discretionary - Family (2022): avg 0.1 hours/day", "Discretionary - Family (2023): avg 0.3 hours/day", "Discretionary - Family (2024): avg 0.1 hours/day", "Discretionary - Family (2025): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210185184pts", "labels": ["Unpaid work (2012): avg 1.7 hours/day", "Unpaid work (2013): avg 1.9 hours/day", "Unpaid work (2014): avg 1.7 hours/day", "Unpaid work (2015): avg 1.8 hours/day", "Unpaid work (2016): avg 1.8 hours/day", "Unpaid work (2017): avg 1.5 hours/day", "Unpaid work (2018): avg 1.4 hours/day", "Unpaid work (2019): avg 1.2 hours/day", "Unpaid work (2020): avg 1.0 hours/day", "Unpaid work (2021): avg 1.3 hours/day", "Unpaid work (2022): avg 1.1 hours/day", "Unpaid work (2023): avg 0.9 hours/day", "Unpaid work (2024): avg 0.9 hours/day", "Unpaid work (2025): avg 1.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210186144pts", "labels": ["Business (2012): avg 5.2 hours/day", "Business (2013): avg 4.2 hours/day", "Business (2014): avg 4.7 hours/day", "Business (2015): avg 2.5 hours/day", "Business (2016): avg 0.6 hours/day", "Business (2017): avg 0.4 hours/day", "Business (2018): avg 0.2 hours/day", "Business (2019): avg 0.5 hours/day", "Business (2020): avg 0.4 hours/day", "Business (2021): avg 0.5 hours/day", "Business (2022): avg 0.4 hours/day", "Business (2023): avg 0.8 hours/day", "Business (2024): avg 0.7 hours/day", "Business (2025): avg 0.5 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210187152pts", "labels": ["Work (2012): avg 0.7 hours/day", "Work (2013): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210188112pts", "labels": ["Sleep (2012): avg 8.3 hours/day", "Sleep (2013): avg 8.8 hours/day", "Sleep (2014): avg 8.9 hours/day", "Sleep (2015): avg 9.1 hours/day", "Sleep (2016): avg 8.4 hours/day", "Sleep (2017): avg 7.8 hours/day", "Sleep (2018): avg 8.0 hours/day", "Sleep (2019): avg 8.2 hours/day", "Sleep (2020): avg 7.9 hours/day", "Sleep (2021): avg 7.9 hours/day", "Sleep (2022): avg 8.6 hours/day", "Sleep (2023): avg 8.2 hours/day", "Sleep (2024): avg 8.5 hours/day", "Sleep (2025): avg 8.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "setviewbox"}]});
   }(mpld3);
}else if(typeof define === "function" && define.amd){
   // require.js is available: use it to load d3/mpld3
   require.config({paths: {d3: "https://d3js.org/d3.v5"}});
   require(["d3"], function(d3){
      window.d3 = d3;
      mpld3_load_lib("https://mpld3.github.io/js/mpld3.v0.5.10.js", function(){
         
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("setviewbox", SetViewbox);
    SetViewbox.prototype = Object.create(mpld3.Plugin.prototype);
    SetViewbox.prototype.constructor = SetViewbox;
    function SetViewbox(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    SetViewbox.prototype.draw = function(){
        this.fig.canvas.attr("viewBox", "0 0 " + this.fig.width + " " + this.fig.height)
    }
    
         mpld3.draw_figure("fig_el457072133361286903664697233049", {"width": 1400.0, "height": 800.0, "axes": [{"bbox": [0.044216269841269834, 0.07284722222222229, 0.9450694444444445, 0.8804861111111111], "xlim": [2011.35, 2025.65], "ylim": [-0.5750000000000001, 12.075], "xdomain": [2011.35, 2025.65], "ydomain": [-0.5750000000000001, 12.075], "xscale": "linear", "yscale": "linear", "axes": [{"position": "bottom", "nticks": 9, "tickvalues": null, "tickformat_formatter": "str_method", "tickformat": {"format_string": ".0f", "prefix": "", "suffix": ""}, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}, {"position": "left", "nticks": 9, "tickvalues": null, "tickformat_formatter": "", "tickformat": null, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}], "axesbg": "#FFFFFF", "axesbgalpha": null, "zoomable": true, "id": "el457072133361210031712", "lines": [{"data": "data01", "xindex": 0, "yindex": 1, "coordinates": "data", "id": "el457072133361210092736", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 7, "coordinates": "data", "id": "el457072133361210183264", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 12, "coordinates": "data", "id": "el457072133361210187152", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}], "paths": [{"data": "data03", "xindex": 0, "yindex": 1, "coordinates": "axes", "pathcodes": ["M", "L", "S", "L", "S", "L", "S", "L", "S", "Z"], "id": "el457072133361282409456", "dasharray": "none", "alpha": 0.8, "facecolor": "rgba(255, 255, 255, 0.8)", "edgecolor": "rgba(204, 204, 204, 0.8)", "edgewidth": 1.0, "zorder": 1000000.0}], "markers": [{"data": "data01", "xindex": 0, "yindex": 2, "coordinates": "data", "id": "el457072133361210092736pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 8, "coordinates": "data", "id": "el457072133361210183264pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 13, "coordinates": "data", "id": "el457072133361210187152pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}], "texts": [{"text": "Year", "position": [0.5, -0.041564792176039124], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "hanging", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210082848"}, {"text": "Average hours per day", "position": [-0.02486799701877959, 0.5], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -90.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210083712"}, {"text": "Average hours per day by category over time", "position": [0.5, 1.0118305860083603], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -0.0, "fontsize": 12.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210086448"}, {"text": "A+", "position": [0.8099157070426085, 0.6429923495543812], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210188832"}, {"text": "Personal", "position": [0.8099157070426085, 0.6132581433867024], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210189744"}, {"text": "Discretionary - Productive - Emacs", "position": [0.8099157070426085, 0.5835239372190236], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210191088"}, {"text": "Discretionary - Productive", "position": [0.8099157070426085, 0.5537897310513448], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210192192"}, {"text": "Discretionary - Play", "position": [0.8099157070426085, 0.5240555248836659], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210193584"}, {"text": "Discretionary - Social", "position": [0.8099157070426085, 0.49432131871598706], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210194976"}, {"text": "Discretionary - Family", "position": [0.8099157070426085, 0.4645871125483082], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210261968"}, {"text": "Unpaid work", "position": [0.8099157070426085, 0.43485290638062946], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210263360"}, {"text": "Business", "position": [0.8099157070426085, 0.40511870021295054], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210264752"}, {"text": "Work", "position": [0.8099157070426085, 0.37538449404527174], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210266144"}, {"text": "Sleep", "position": [0.8099157070426085, 0.3456502878775929], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210262832"}], "collections": [], "images": [], "sharex": [], "sharey": []}], "data": {"data01": [[2012.0, NaN, NaN, 3.3, 0.1, 1.7, 0.7, 1.9, 1.9, 0.1, 1.7, 5.2, 0.7, 0.7, 8.3], [2013.0, NaN, NaN, 3.0, 0.3, 2.2, 1.2, 0.5, 0.5, 1.3, 1.9, 4.2, 0.0, 0.0, 8.8], [2014.0, NaN, NaN, 3.5, 0.4, 2.4, 1.2, 0.3, 0.3, 0.9, 1.7, 4.7, NaN, NaN, 8.9], [2015.0, NaN, NaN, 4.0, 0.4, 2.7, 2.2, 0.2, 0.2, 1.0, 1.8, 2.5, NaN, NaN, 9.1], [2016.0, 7.2, 7.2, 3.0, 0.1, 1.3, 0.5, 0.4, 0.4, 0.6, 1.8, 0.6, NaN, NaN, 8.4], [2017.0, 10.4, 10.4, 2.2, 0.1, 0.6, 0.3, 0.1, 0.1, 0.4, 1.5, 0.4, NaN, NaN, 7.8], [2018.0, 10.7, 10.7, 1.5, 0.1, 0.8, 0.3, 0.3, 0.3, 0.7, 1.4, 0.2, NaN, NaN, 8.0], [2019.0, 10.5, 10.5, 1.2, 0.3, 0.8, 0.6, 0.2, 0.2, 0.5, 1.2, 0.5, NaN, NaN, 8.2], [2020.0, 11.5, 11.5, 1.1, 0.5, 1.3, 0.2, 0.0, 0.0, 0.2, 1.0, 0.4, NaN, NaN, 7.9], [2021.0, 10.0, 10.0, 1.6, 1.4, 1.2, 0.2, 0.0, 0.0, 0.1, 1.3, 0.5, NaN, NaN, 7.9], [2022.0, 9.7, 9.7, 1.8, 1.4, 0.7, 0.2, 0.0, 0.0, 0.1, 1.1, 0.4, NaN, NaN, 8.6], [2023.0, 9.5, 9.5, 2.4, 1.2, 0.7, 0.1, 0.0, 0.0, 0.3, 0.9, 0.8, NaN, NaN, 8.2], [2024.0, 9.9, 9.9, 2.0, 0.9, 0.9, 0.2, 0.0, 0.0, 0.1, 0.9, 0.7, NaN, NaN, 8.5], [2025.0, 8.4, 8.4, 2.3, 0.8, 2.6, 0.2, NaN, NaN, 0.0, 1.1, 0.5, NaN, NaN, 8.1]], "data02": [[0.7805233931326959, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.7910206481005219, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.8015179030683477, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637]], "data03": [[0.7784239421391308, 0.33350421957567633], [0.9926519215225219, 0.33350421957567633], [0.9947513725160871, 0.33350421957567633], [0.9947513725160871, 0.33744774824512974], [0.9947513725160871, 0.6625522517548702], [0.9947513725160871, 0.6664957804243238], [0.9926519215225219, 0.6664957804243238], [0.7784239421391308, 0.6664957804243238], [0.7763244911455656, 0.6664957804243238], [0.7763244911455656, 0.6625522517548702], [0.7763244911455656, 0.33744774824512974], [0.7763244911455656, 0.33350421957567633], [0.7784239421391308, 0.33350421957567633]]}, "id": "el457072133361286903664", "plugins": [{"type": "reset"}, {"type": "zoom", "button": true, "enabled": false}, {"type": "boxzoom", "button": true, "enabled": false}, {"type": "htmltooltip", "id": "el457072133361210092736pts", "labels": ["A+ (2016): avg 7.2 hours/day", "A+ (2017): avg 10.4 hours/day", "A+ (2018): avg 10.7 hours/day", "A+ (2019): avg 10.5 hours/day", "A+ (2020): avg 11.5 hours/day", "A+ (2021): avg 10.0 hours/day", "A+ (2022): avg 9.7 hours/day", "A+ (2023): avg 9.5 hours/day", "A+ (2024): avg 9.9 hours/day", "A+ (2025): avg 8.4 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210179664pts", "labels": ["Personal (2012): avg 3.3 hours/day", "Personal (2013): avg 3.0 hours/day", "Personal (2014): avg 3.5 hours/day", "Personal (2015): avg 4.0 hours/day", "Personal (2016): avg 3.0 hours/day", "Personal (2017): avg 2.2 hours/day", "Personal (2018): avg 1.5 hours/day", "Personal (2019): avg 1.2 hours/day", "Personal (2020): avg 1.1 hours/day", "Personal (2021): avg 1.6 hours/day", "Personal (2022): avg 1.8 hours/day", "Personal (2023): avg 2.4 hours/day", "Personal (2024): avg 2.0 hours/day", "Personal (2025): avg 2.3 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210180480pts", "labels": ["Discretionary - Productive - Emacs (2012): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2013): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2014): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2015): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2016): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2017): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2018): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2019): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2020): avg 0.5 hours/day", "Discretionary - Productive - Emacs (2021): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2022): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2023): avg 1.2 hours/day", "Discretionary - Productive - Emacs (2024): avg 0.9 hours/day", "Discretionary - Productive - Emacs (2025): avg 0.8 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210181440pts", "labels": ["Discretionary - Productive (2012): avg 1.7 hours/day", "Discretionary - Productive (2013): avg 2.2 hours/day", "Discretionary - Productive (2014): avg 2.4 hours/day", "Discretionary - Productive (2015): avg 2.7 hours/day", "Discretionary - Productive (2016): avg 1.3 hours/day", "Discretionary - Productive (2017): avg 0.6 hours/day", "Discretionary - Productive (2018): avg 0.8 hours/day", "Discretionary - Productive (2019): avg 0.8 hours/day", "Discretionary - Productive (2020): avg 1.3 hours/day", "Discretionary - Productive (2021): avg 1.2 hours/day", "Discretionary - Productive (2022): avg 0.7 hours/day", "Discretionary - Productive (2023): avg 0.7 hours/day", "Discretionary - Productive (2024): avg 0.9 hours/day", "Discretionary - Productive (2025): avg 2.6 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210182304pts", "labels": ["Discretionary - Play (2012): avg 0.7 hours/day", "Discretionary - Play (2013): avg 1.2 hours/day", "Discretionary - Play (2014): avg 1.2 hours/day", "Discretionary - Play (2015): avg 2.2 hours/day", "Discretionary - Play (2016): avg 0.5 hours/day", "Discretionary - Play (2017): avg 0.3 hours/day", "Discretionary - Play (2018): avg 0.3 hours/day", "Discretionary - Play (2019): avg 0.6 hours/day", "Discretionary - Play (2020): avg 0.2 hours/day", "Discretionary - Play (2021): avg 0.2 hours/day", "Discretionary - Play (2022): avg 0.2 hours/day", "Discretionary - Play (2023): avg 0.1 hours/day", "Discretionary - Play (2024): avg 0.2 hours/day", "Discretionary - Play (2025): avg 0.2 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210183264pts", "labels": ["Discretionary - Social (2012): avg 1.9 hours/day", "Discretionary - Social (2013): avg 0.5 hours/day", "Discretionary - Social (2014): avg 0.3 hours/day", "Discretionary - Social (2015): avg 0.2 hours/day", "Discretionary - Social (2016): avg 0.4 hours/day", "Discretionary - Social (2017): avg 0.1 hours/day", "Discretionary - Social (2018): avg 0.3 hours/day", "Discretionary - Social (2019): avg 0.2 hours/day", "Discretionary - Social (2020): avg 0.0 hours/day", "Discretionary - Social (2021): avg 0.0 hours/day", "Discretionary - Social (2022): avg 0.0 hours/day", "Discretionary - Social (2023): avg 0.0 hours/day", "Discretionary - Social (2024): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210184272pts", "labels": ["Discretionary - Family (2012): avg 0.1 hours/day", "Discretionary - Family (2013): avg 1.3 hours/day", "Discretionary - Family (2014): avg 0.9 hours/day", "Discretionary - Family (2015): avg 1.0 hours/day", "Discretionary - Family (2016): avg 0.6 hours/day", "Discretionary - Family (2017): avg 0.4 hours/day", "Discretionary - Family (2018): avg 0.7 hours/day", "Discretionary - Family (2019): avg 0.5 hours/day", "Discretionary - Family (2020): avg 0.2 hours/day", "Discretionary - Family (2021): avg 0.1 hours/day", "Discretionary - Family (2022): avg 0.1 hours/day", "Discretionary - Family (2023): avg 0.3 hours/day", "Discretionary - Family (2024): avg 0.1 hours/day", "Discretionary - Family (2025): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210185184pts", "labels": ["Unpaid work (2012): avg 1.7 hours/day", "Unpaid work (2013): avg 1.9 hours/day", "Unpaid work (2014): avg 1.7 hours/day", "Unpaid work (2015): avg 1.8 hours/day", "Unpaid work (2016): avg 1.8 hours/day", "Unpaid work (2017): avg 1.5 hours/day", "Unpaid work (2018): avg 1.4 hours/day", "Unpaid work (2019): avg 1.2 hours/day", "Unpaid work (2020): avg 1.0 hours/day", "Unpaid work (2021): avg 1.3 hours/day", "Unpaid work (2022): avg 1.1 hours/day", "Unpaid work (2023): avg 0.9 hours/day", "Unpaid work (2024): avg 0.9 hours/day", "Unpaid work (2025): avg 1.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210186144pts", "labels": ["Business (2012): avg 5.2 hours/day", "Business (2013): avg 4.2 hours/day", "Business (2014): avg 4.7 hours/day", "Business (2015): avg 2.5 hours/day", "Business (2016): avg 0.6 hours/day", "Business (2017): avg 0.4 hours/day", "Business (2018): avg 0.2 hours/day", "Business (2019): avg 0.5 hours/day", "Business (2020): avg 0.4 hours/day", "Business (2021): avg 0.5 hours/day", "Business (2022): avg 0.4 hours/day", "Business (2023): avg 0.8 hours/day", "Business (2024): avg 0.7 hours/day", "Business (2025): avg 0.5 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210187152pts", "labels": ["Work (2012): avg 0.7 hours/day", "Work (2013): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210188112pts", "labels": ["Sleep (2012): avg 8.3 hours/day", "Sleep (2013): avg 8.8 hours/day", "Sleep (2014): avg 8.9 hours/day", "Sleep (2015): avg 9.1 hours/day", "Sleep (2016): avg 8.4 hours/day", "Sleep (2017): avg 7.8 hours/day", "Sleep (2018): avg 8.0 hours/day", "Sleep (2019): avg 8.2 hours/day", "Sleep (2020): avg 7.9 hours/day", "Sleep (2021): avg 7.9 hours/day", "Sleep (2022): avg 8.6 hours/day", "Sleep (2023): avg 8.2 hours/day", "Sleep (2024): avg 8.5 hours/day", "Sleep (2025): avg 8.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "setviewbox"}]});
      });
    });
}else{
    // require.js not available: dynamically load d3 & mpld3
    mpld3_load_lib("https://d3js.org/d3.v5.js", function(){
         mpld3_load_lib("https://mpld3.github.io/js/mpld3.v0.5.10.js", function(){
                 
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("htmltooltip", HtmlTooltipPlugin);
    HtmlTooltipPlugin.prototype = Object.create(mpld3.Plugin.prototype);
    HtmlTooltipPlugin.prototype.constructor = HtmlTooltipPlugin;
    HtmlTooltipPlugin.prototype.requiredProps = ["id"];
    HtmlTooltipPlugin.prototype.defaultProps = {labels:null,
                                                target:null,
                                                hoffset:0,
                                                voffset:10,
                                                targets:null};
    function HtmlTooltipPlugin(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    HtmlTooltipPlugin.prototype.draw = function(){
        var obj = mpld3.get_element(this.props.id);
        var labels = this.props.labels;
        var targets = this.props.targets;
        var tooltip = d3.select("body").append("div")
            .attr("class", "mpld3-tooltip")
            .style("position", "absolute")
            .style("z-index", "10")
            .style("visibility", "hidden");

        obj.elements()
            .on("mouseover", function(d, i){
                tooltip.html(labels[i])
                    .style("visibility", "visible");
            })
            .on("mousemove", function(d, i){
                tooltip
                .style("top", d3.event.pageY + this.props.voffset + "px")
                .style("left",d3.event.pageX + this.props.hoffset + "px");
            }.bind(this))
            .on("mousedown.callout", function(d, i){
                window.open(targets[i],"_blank");
            })
            .on("mouseout", function(d, i){
                tooltip.style("visibility", "hidden");
            });
    };
    
    mpld3.register_plugin("setviewbox", SetViewbox);
    SetViewbox.prototype = Object.create(mpld3.Plugin.prototype);
    SetViewbox.prototype.constructor = SetViewbox;
    function SetViewbox(fig, props){
        mpld3.Plugin.call(this, fig, props);
    };

    SetViewbox.prototype.draw = function(){
        this.fig.canvas.attr("viewBox", "0 0 " + this.fig.width + " " + this.fig.height)
    }
    
                 mpld3.draw_figure("fig_el457072133361286903664697233049", {"width": 1400.0, "height": 800.0, "axes": [{"bbox": [0.044216269841269834, 0.07284722222222229, 0.9450694444444445, 0.8804861111111111], "xlim": [2011.35, 2025.65], "ylim": [-0.5750000000000001, 12.075], "xdomain": [2011.35, 2025.65], "ydomain": [-0.5750000000000001, 12.075], "xscale": "linear", "yscale": "linear", "axes": [{"position": "bottom", "nticks": 9, "tickvalues": null, "tickformat_formatter": "str_method", "tickformat": {"format_string": ".0f", "prefix": "", "suffix": ""}, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}, {"position": "left", "nticks": 9, "tickvalues": null, "tickformat_formatter": "", "tickformat": null, "scale": "linear", "fontsize": 10.0, "grid": {"gridOn": true, "color": "#CCCCCC", "dasharray": "none", "alpha": 1.0}, "visible": true}], "axesbg": "#FFFFFF", "axesbgalpha": null, "zoomable": true, "id": "el457072133361210031712", "lines": [{"data": "data01", "xindex": 0, "yindex": 1, "coordinates": "data", "id": "el457072133361210092736", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 7, "coordinates": "data", "id": "el457072133361210183264", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 12, "coordinates": "data", "id": "el457072133361210187152", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 2, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312", "color": "#FDCCE5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416", "color": "#BEB9DB", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472", "color": "#648CAA", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864", "color": "#7EB0D5", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256", "color": "#B2E061", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648", "color": "#FFEE65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640", "color": "#EEDD65", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032", "color": "#FFB55A", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760", "color": "#FD7F6F", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912", "color": "#CCCCCC", "linewidth": 2.0, "dasharray": "none", "alpha": 1, "zorder": 1000002.0, "drawstyle": "default"}], "paths": [{"data": "data03", "xindex": 0, "yindex": 1, "coordinates": "axes", "pathcodes": ["M", "L", "S", "L", "S", "L", "S", "L", "S", "Z"], "id": "el457072133361282409456", "dasharray": "none", "alpha": 0.8, "facecolor": "rgba(255, 255, 255, 0.8)", "edgecolor": "rgba(204, 204, 204, 0.8)", "edgewidth": 1.0, "zorder": 1000000.0}], "markers": [{"data": "data01", "xindex": 0, "yindex": 2, "coordinates": "data", "id": "el457072133361210092736pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 3, "coordinates": "data", "id": "el457072133361210179664pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 4, "coordinates": "data", "id": "el457072133361210180480pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 5, "coordinates": "data", "id": "el457072133361210181440pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 6, "coordinates": "data", "id": "el457072133361210182304pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 8, "coordinates": "data", "id": "el457072133361210183264pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 9, "coordinates": "data", "id": "el457072133361210184272pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 10, "coordinates": "data", "id": "el457072133361210185184pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 11, "coordinates": "data", "id": "el457072133361210186144pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 13, "coordinates": "data", "id": "el457072133361210187152pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data01", "xindex": 0, "yindex": 14, "coordinates": "data", "id": "el457072133361210188112pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 2, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 1, "coordinates": "axes", "id": "el457072133361210189312pts", "facecolor": "#FDCCE5", "edgecolor": "#FDCCE5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 2, "coordinates": "axes", "id": "el457072133361210190416pts", "facecolor": "#BEB9DB", "edgecolor": "#BEB9DB", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 3, "coordinates": "axes", "id": "el457072133361210191472pts", "facecolor": "#648CAA", "edgecolor": "#648CAA", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 4, "coordinates": "axes", "id": "el457072133361210192864pts", "facecolor": "#7EB0D5", "edgecolor": "#7EB0D5", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 5, "coordinates": "axes", "id": "el457072133361210194256pts", "facecolor": "#B2E061", "edgecolor": "#B2E061", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 6, "coordinates": "axes", "id": "el457072133361210195648pts", "facecolor": "#FFEE65", "edgecolor": "#FFEE65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 7, "coordinates": "axes", "id": "el457072133361210262640pts", "facecolor": "#EEDD65", "edgecolor": "#EEDD65", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 8, "coordinates": "axes", "id": "el457072133361210264032pts", "facecolor": "#FFB55A", "edgecolor": "#FFB55A", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 9, "coordinates": "axes", "id": "el457072133361210265424pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 10, "coordinates": "axes", "id": "el457072133361210191760pts", "facecolor": "#FD7F6F", "edgecolor": "#FD7F6F", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}, {"data": "data02", "xindex": 0, "yindex": 11, "coordinates": "axes", "id": "el457072133361210266912pts", "facecolor": "#CCCCCC", "edgecolor": "#CCCCCC", "edgewidth": 1.0, "alpha": 1, "zorder": 1000002.0, "markerpath": [[[0.0, 3.0], [0.7956093000000001, 3.0], [1.5587396123545605, 2.683901074764725], [2.121320343559643, 2.121320343559643], [2.683901074764725, 1.5587396123545605], [3.0, 0.7956093000000001], [3.0, 0.0], [3.0, -0.7956093000000001], [2.683901074764725, -1.5587396123545605], [2.121320343559643, -2.121320343559643], [1.5587396123545605, -2.683901074764725], [0.7956093000000001, -3.0], [0.0, -3.0], [-0.7956093000000001, -3.0], [-1.5587396123545605, -2.683901074764725], [-2.121320343559643, -2.121320343559643], [-2.683901074764725, -1.5587396123545605], [-3.0, -0.7956093000000001], [-3.0, 0.0], [-3.0, 0.7956093000000001], [-2.683901074764725, 1.5587396123545605], [-2.121320343559643, 2.121320343559643], [-1.5587396123545605, 2.683901074764725], [-0.7956093000000001, 3.0], [0.0, 3.0]], ["M", "C", "C", "C", "C", "C", "C", "C", "C", "Z"]]}], "texts": [{"text": "Year", "position": [0.5, -0.041564792176039124], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "hanging", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210082848"}, {"text": "Average hours per day", "position": [-0.02486799701877959, 0.5], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -90.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210083712"}, {"text": "Average hours per day by category over time", "position": [0.5, 1.0118305860083603], "coordinates": "axes", "h_anchor": "middle", "v_baseline": "auto", "rotation": -0.0, "fontsize": 12.0, "color": "#262626", "alpha": 1, "zorder": 3, "id": "el457072133361210086448"}, {"text": "A+", "position": [0.8099157070426085, 0.6429923495543812], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210188832"}, {"text": "Personal", "position": [0.8099157070426085, 0.6132581433867024], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210189744"}, {"text": "Discretionary - Productive - Emacs", "position": [0.8099157070426085, 0.5835239372190236], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210191088"}, {"text": "Discretionary - Productive", "position": [0.8099157070426085, 0.5537897310513448], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210192192"}, {"text": "Discretionary - Play", "position": [0.8099157070426085, 0.5240555248836659], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210193584"}, {"text": "Discretionary - Social", "position": [0.8099157070426085, 0.49432131871598706], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210194976"}, {"text": "Discretionary - Family", "position": [0.8099157070426085, 0.4645871125483082], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210261968"}, {"text": "Unpaid work", "position": [0.8099157070426085, 0.43485290638062946], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210263360"}, {"text": "Business", "position": [0.8099157070426085, 0.40511870021295054], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210264752"}, {"text": "Work", "position": [0.8099157070426085, 0.37538449404527174], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210266144"}, {"text": "Sleep", "position": [0.8099157070426085, 0.3456502878775929], "coordinates": "axes", "h_anchor": "start", "v_baseline": "auto", "rotation": -0.0, "fontsize": 10.0, "color": "#262626", "alpha": 1, "zorder": 1000003.0, "id": "el457072133361210262832"}], "collections": [], "images": [], "sharex": [], "sharey": []}], "data": {"data01": [[2012.0, NaN, NaN, 3.3, 0.1, 1.7, 0.7, 1.9, 1.9, 0.1, 1.7, 5.2, 0.7, 0.7, 8.3], [2013.0, NaN, NaN, 3.0, 0.3, 2.2, 1.2, 0.5, 0.5, 1.3, 1.9, 4.2, 0.0, 0.0, 8.8], [2014.0, NaN, NaN, 3.5, 0.4, 2.4, 1.2, 0.3, 0.3, 0.9, 1.7, 4.7, NaN, NaN, 8.9], [2015.0, NaN, NaN, 4.0, 0.4, 2.7, 2.2, 0.2, 0.2, 1.0, 1.8, 2.5, NaN, NaN, 9.1], [2016.0, 7.2, 7.2, 3.0, 0.1, 1.3, 0.5, 0.4, 0.4, 0.6, 1.8, 0.6, NaN, NaN, 8.4], [2017.0, 10.4, 10.4, 2.2, 0.1, 0.6, 0.3, 0.1, 0.1, 0.4, 1.5, 0.4, NaN, NaN, 7.8], [2018.0, 10.7, 10.7, 1.5, 0.1, 0.8, 0.3, 0.3, 0.3, 0.7, 1.4, 0.2, NaN, NaN, 8.0], [2019.0, 10.5, 10.5, 1.2, 0.3, 0.8, 0.6, 0.2, 0.2, 0.5, 1.2, 0.5, NaN, NaN, 8.2], [2020.0, 11.5, 11.5, 1.1, 0.5, 1.3, 0.2, 0.0, 0.0, 0.2, 1.0, 0.4, NaN, NaN, 7.9], [2021.0, 10.0, 10.0, 1.6, 1.4, 1.2, 0.2, 0.0, 0.0, 0.1, 1.3, 0.5, NaN, NaN, 7.9], [2022.0, 9.7, 9.7, 1.8, 1.4, 0.7, 0.2, 0.0, 0.0, 0.1, 1.1, 0.4, NaN, NaN, 8.6], [2023.0, 9.5, 9.5, 2.4, 1.2, 0.7, 0.1, 0.0, 0.0, 0.3, 0.9, 0.8, NaN, NaN, 8.2], [2024.0, 9.9, 9.9, 2.0, 0.9, 0.9, 0.2, 0.0, 0.0, 0.1, 0.9, 0.7, NaN, NaN, 8.5], [2025.0, 8.4, 8.4, 2.3, 0.8, 2.6, 0.2, NaN, NaN, 0.0, 1.1, 0.5, NaN, NaN, 8.1]], "data02": [[0.7805233931326959, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.7910206481005219, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637], [0.8015179030683477, 0.6498935247259248, 0.6201593185582459, 0.5904251123905672, 0.5606909062228883, 0.5309567000552095, 0.5012224938875306, 0.4714882877198517, 0.44175408155217294, 0.412019875384494, 0.3822856692168152, 0.35255146304913637]], "data03": [[0.7784239421391308, 0.33350421957567633], [0.9926519215225219, 0.33350421957567633], [0.9947513725160871, 0.33350421957567633], [0.9947513725160871, 0.33744774824512974], [0.9947513725160871, 0.6625522517548702], [0.9947513725160871, 0.6664957804243238], [0.9926519215225219, 0.6664957804243238], [0.7784239421391308, 0.6664957804243238], [0.7763244911455656, 0.6664957804243238], [0.7763244911455656, 0.6625522517548702], [0.7763244911455656, 0.33744774824512974], [0.7763244911455656, 0.33350421957567633], [0.7784239421391308, 0.33350421957567633]]}, "id": "el457072133361286903664", "plugins": [{"type": "reset"}, {"type": "zoom", "button": true, "enabled": false}, {"type": "boxzoom", "button": true, "enabled": false}, {"type": "htmltooltip", "id": "el457072133361210092736pts", "labels": ["A+ (2016): avg 7.2 hours/day", "A+ (2017): avg 10.4 hours/day", "A+ (2018): avg 10.7 hours/day", "A+ (2019): avg 10.5 hours/day", "A+ (2020): avg 11.5 hours/day", "A+ (2021): avg 10.0 hours/day", "A+ (2022): avg 9.7 hours/day", "A+ (2023): avg 9.5 hours/day", "A+ (2024): avg 9.9 hours/day", "A+ (2025): avg 8.4 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210179664pts", "labels": ["Personal (2012): avg 3.3 hours/day", "Personal (2013): avg 3.0 hours/day", "Personal (2014): avg 3.5 hours/day", "Personal (2015): avg 4.0 hours/day", "Personal (2016): avg 3.0 hours/day", "Personal (2017): avg 2.2 hours/day", "Personal (2018): avg 1.5 hours/day", "Personal (2019): avg 1.2 hours/day", "Personal (2020): avg 1.1 hours/day", "Personal (2021): avg 1.6 hours/day", "Personal (2022): avg 1.8 hours/day", "Personal (2023): avg 2.4 hours/day", "Personal (2024): avg 2.0 hours/day", "Personal (2025): avg 2.3 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210180480pts", "labels": ["Discretionary - Productive - Emacs (2012): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2013): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2014): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2015): avg 0.4 hours/day", "Discretionary - Productive - Emacs (2016): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2017): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2018): avg 0.1 hours/day", "Discretionary - Productive - Emacs (2019): avg 0.3 hours/day", "Discretionary - Productive - Emacs (2020): avg 0.5 hours/day", "Discretionary - Productive - Emacs (2021): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2022): avg 1.4 hours/day", "Discretionary - Productive - Emacs (2023): avg 1.2 hours/day", "Discretionary - Productive - Emacs (2024): avg 0.9 hours/day", "Discretionary - Productive - Emacs (2025): avg 0.8 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210181440pts", "labels": ["Discretionary - Productive (2012): avg 1.7 hours/day", "Discretionary - Productive (2013): avg 2.2 hours/day", "Discretionary - Productive (2014): avg 2.4 hours/day", "Discretionary - Productive (2015): avg 2.7 hours/day", "Discretionary - Productive (2016): avg 1.3 hours/day", "Discretionary - Productive (2017): avg 0.6 hours/day", "Discretionary - Productive (2018): avg 0.8 hours/day", "Discretionary - Productive (2019): avg 0.8 hours/day", "Discretionary - Productive (2020): avg 1.3 hours/day", "Discretionary - Productive (2021): avg 1.2 hours/day", "Discretionary - Productive (2022): avg 0.7 hours/day", "Discretionary - Productive (2023): avg 0.7 hours/day", "Discretionary - Productive (2024): avg 0.9 hours/day", "Discretionary - Productive (2025): avg 2.6 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210182304pts", "labels": ["Discretionary - Play (2012): avg 0.7 hours/day", "Discretionary - Play (2013): avg 1.2 hours/day", "Discretionary - Play (2014): avg 1.2 hours/day", "Discretionary - Play (2015): avg 2.2 hours/day", "Discretionary - Play (2016): avg 0.5 hours/day", "Discretionary - Play (2017): avg 0.3 hours/day", "Discretionary - Play (2018): avg 0.3 hours/day", "Discretionary - Play (2019): avg 0.6 hours/day", "Discretionary - Play (2020): avg 0.2 hours/day", "Discretionary - Play (2021): avg 0.2 hours/day", "Discretionary - Play (2022): avg 0.2 hours/day", "Discretionary - Play (2023): avg 0.1 hours/day", "Discretionary - Play (2024): avg 0.2 hours/day", "Discretionary - Play (2025): avg 0.2 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210183264pts", "labels": ["Discretionary - Social (2012): avg 1.9 hours/day", "Discretionary - Social (2013): avg 0.5 hours/day", "Discretionary - Social (2014): avg 0.3 hours/day", "Discretionary - Social (2015): avg 0.2 hours/day", "Discretionary - Social (2016): avg 0.4 hours/day", "Discretionary - Social (2017): avg 0.1 hours/day", "Discretionary - Social (2018): avg 0.3 hours/day", "Discretionary - Social (2019): avg 0.2 hours/day", "Discretionary - Social (2020): avg 0.0 hours/day", "Discretionary - Social (2021): avg 0.0 hours/day", "Discretionary - Social (2022): avg 0.0 hours/day", "Discretionary - Social (2023): avg 0.0 hours/day", "Discretionary - Social (2024): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210184272pts", "labels": ["Discretionary - Family (2012): avg 0.1 hours/day", "Discretionary - Family (2013): avg 1.3 hours/day", "Discretionary - Family (2014): avg 0.9 hours/day", "Discretionary - Family (2015): avg 1.0 hours/day", "Discretionary - Family (2016): avg 0.6 hours/day", "Discretionary - Family (2017): avg 0.4 hours/day", "Discretionary - Family (2018): avg 0.7 hours/day", "Discretionary - Family (2019): avg 0.5 hours/day", "Discretionary - Family (2020): avg 0.2 hours/day", "Discretionary - Family (2021): avg 0.1 hours/day", "Discretionary - Family (2022): avg 0.1 hours/day", "Discretionary - Family (2023): avg 0.3 hours/day", "Discretionary - Family (2024): avg 0.1 hours/day", "Discretionary - Family (2025): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210185184pts", "labels": ["Unpaid work (2012): avg 1.7 hours/day", "Unpaid work (2013): avg 1.9 hours/day", "Unpaid work (2014): avg 1.7 hours/day", "Unpaid work (2015): avg 1.8 hours/day", "Unpaid work (2016): avg 1.8 hours/day", "Unpaid work (2017): avg 1.5 hours/day", "Unpaid work (2018): avg 1.4 hours/day", "Unpaid work (2019): avg 1.2 hours/day", "Unpaid work (2020): avg 1.0 hours/day", "Unpaid work (2021): avg 1.3 hours/day", "Unpaid work (2022): avg 1.1 hours/day", "Unpaid work (2023): avg 0.9 hours/day", "Unpaid work (2024): avg 0.9 hours/day", "Unpaid work (2025): avg 1.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210186144pts", "labels": ["Business (2012): avg 5.2 hours/day", "Business (2013): avg 4.2 hours/day", "Business (2014): avg 4.7 hours/day", "Business (2015): avg 2.5 hours/day", "Business (2016): avg 0.6 hours/day", "Business (2017): avg 0.4 hours/day", "Business (2018): avg 0.2 hours/day", "Business (2019): avg 0.5 hours/day", "Business (2020): avg 0.4 hours/day", "Business (2021): avg 0.5 hours/day", "Business (2022): avg 0.4 hours/day", "Business (2023): avg 0.8 hours/day", "Business (2024): avg 0.7 hours/day", "Business (2025): avg 0.5 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210187152pts", "labels": ["Work (2012): avg 0.7 hours/day", "Work (2013): avg 0.0 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "htmltooltip", "id": "el457072133361210188112pts", "labels": ["Sleep (2012): avg 8.3 hours/day", "Sleep (2013): avg 8.8 hours/day", "Sleep (2014): avg 8.9 hours/day", "Sleep (2015): avg 9.1 hours/day", "Sleep (2016): avg 8.4 hours/day", "Sleep (2017): avg 7.8 hours/day", "Sleep (2018): avg 8.0 hours/day", "Sleep (2019): avg 8.2 hours/day", "Sleep (2020): avg 7.9 hours/day", "Sleep (2021): avg 7.9 hours/day", "Sleep (2022): avg 8.6 hours/day", "Sleep (2023): avg 8.2 hours/day", "Sleep (2024): avg 8.5 hours/day", "Sleep (2025): avg 8.1 hours/day"], "targets": null, "hoffset": 0, "voffset": 10}, {"type": "setviewbox"}]});
            })
         });
}
</script>
<noscript>
<img src="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/hours-per-day.svg" alt="Average hours per day per category per year">
</noscript>
<style>
.mpld3-tooltip { background: var(&#45;&#45;modus-bg-main); color: }
</style>

<p>
I can see that:
</p>

<ul class="org-ul">
<li>childcare mostly came out of my consulting, personal, and play time</li>
<li>I've managed to get back to doing more productive stuff and Emacs stuff</li>
</ul>

<p>
Here's the <a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/hours-per-day.py">hours-per-day.py</a> script I used to
analyze it, using Pandas to sum it up, Matplot to
graph it, and <a href="https://mpld3.github.io/">mpld3</a> to add some Javascript
interaction so we can hover over points to get the
label and value. I wrote a little SetViewbox
plugin so that the graph could be more responsive.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-fragmentation" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-fragmentation">Fragmentation</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-fragmentation">
<p>
My life is still fragmented, but I'm slowly
becoming more okay with this. The general advice
is, of course, to try to consolidate some focus
time, but my life doesn't work that way. Besides,
it's fragmented <i>because</i> the kiddo likes to spend
time with me, which is wonderful.
</p>

<p>
I liked this quote from Eleanor Coppola from this <a href="https://murielmurch.com/2024/05/19/eleanor-coppola/">Living with Literature interview</a>:<sup><a id="fnr.eleanor-coppola" class="footref" href="https://sachachua.com/blog/feed/atom/index.xml#fn.eleanor-coppola" role="doc-backlink">1</a></sup>
</p>

<blockquote>
<p>
The men artists I knew had a studio, and they went out to their studio, and they spent the day, and worked, and then they came back. I once read a book by Judy Chicago, who interviewed all these women artists, and they made their art on the back porch, they made it on top of the washing machine, they made it next to the kitchen sink, and they made it anywhere they could, for the hour and a half while their kid was taking a nap, and for the two hours while they were at the play group. They made it in between. It wasn’t, like, you get to make art for eight hours. You make art in 20-minute snatches, and you don’t, like, fiddle around. I know one time I went to see Francis in his working room, and he had his pencils all laid out, and his espresso there, and there was this whole little ritual of getting into yourself and into your work. There was no time [for women] for the ritual of getting into your work! You just snapped into that taking 10 minutes and making 3 lines on your drawing or whatever was possible. It wasn’t the same as the way men worked. And that’s how women got their work done.
</p>
</blockquote>

<p>
This reminds me of the reflections on
interruptibility in <a href="https://www.oliverburkeman.com/meditationsformortals"><i>Meditations for Mortals</i></a>
(Oliver Burkeman, 2024): yes, try to ringfence
three to four hours of your day for focused time,
but don't try to control too much of your life;
stay distractible, don't fight life, give your
full attention once your focus has already been
diverted. It also reminds me of <a href="https://www.goodreads.com/en/book/show/59486007-good-mom-on-paper"><i>Good Mom on
Paper</i></a> (edited by Stacey May Fowles and Jen
Sookfong Lee, 2022); there are lots of other
people who are finding their way through the "Mom!
Mom! Mom!" phase. (A+ still has a finely-tuned
attention detector. She can sense the moment I
begin to think about something and interrupt it
with "Mom, look at this!" even when W- is right
there beside her.)
</p>

<p>
A+ grows more independent every year. It's like
life is slowly easing me into this independence
too. <a href="https://sachachua.com/blog/2022/08/making-better-use-of-time-as-we-grow-more-independent-together/">2022</a> looked different from 2025, and 2028
will be different too. I used to have 5-10 minute
snippets of time (still do). Now I occasionally
get 1-hour chunks. Eventually I'll have 3-hour
chunks again. I know from my experiment with
semi-retirement that time isn't the thing holding
me back from making a useful website or writing a
book or saving the world, so that's actually kind
of liberating. It can just be about trying things
out and seeing where I want to go with that.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-sleep" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-sleep">Sleep</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-sleep">
<p>
One of the things I've learned is how much of my
day depends on feeling well-rested. When I've
slept well, I can parent better and I can take
advantage of little pockets of me-time better.
</p>

<p>
It's surprisingly tricky to get my sleep sorted
out. My sleep isn't as fragmented as it used to be
in the early days of parenting A+, but it's still
a little challenging. These days, I usually start
nudging A+ towards bed at 9 PM. I'm still an
integral part of her bedtime routine. Sometimes
she stays up because she wants to chat or
improvise stories, and unless I'm super tired, I
like to spend that cozy time with her. I snuggle
her until I think she's fallen asleep. Sometimes I
try to slip away too early and she sleepily asks
for more hugs, so then I snuggle her for another
ten or fifteen minutes. I try to stay awake
because whenever I fall asleep in her twin bed,
we're both a bit tired and cranky in the morning.
After A+'s finally asleep, I call my mom to check
on her. Sometimes I do a bit of reading or drawing
as my personal time.
</p>

<p>
I can remind myself not to stay up late reading
because then I'll get too little sleep and then
I'll feel tired. I can find time to read the next
day. Come to think of it, this is what I tell A+
too, and just like me, she also finds it hard to
put books down.
</p>

<p>
I could also get a bit more sleep by accepting
that A+ will probably wake up at 7:30 or so, and
set my alarm for 7:25 instead of 6:55. She usually
likes a lot of snuggles before finally waking up,
though, so starting the snuggles early in the
morning gives us more of a leisurely start to the
day.
</p>

<p>
If I go to bed at about 10 or 10:30 PM, I usually
wake up before my alarm goes off. If I move some
of my personal reading and writing to that time
(RSS, books, etc.), then I can swap out some of
the less-useful scrolling through Reddit and start
the day better.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-overall" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-overall">Other thoughts</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-overall">
<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2025-04-29-02%20Time%20over%20the%20years%20&#45;&#45;%20time%20life.jpeg" data-src="https://sketches.sachachua.com/static/2025-04-29-02%20Time%20over%20the%20years%20&#45;&#45;%20time%20life.jpeg" data-title="2025-04-29-02 Time over the years &#45;&#45; time life" data-w="2036" data-h="2861"><picture>
      <img src="https://sketches.sachachua.com/static/2025-04-29-02%20Time%20over%20the%20years%20&#45;&#45;%20time%20life.jpeg" width="2036" height="2861" alt="2025-04-29-02 Time over the years &#45;&#45; time life" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2025-04-29-02 Time over the years &#45;&#45; time life</figcaption>
    </picture></a></div>
<p></p>

<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Text from sketch</strong></summary>
<p>
Time over the years
</p>

<ul class="org-ul">
<li>Minutes are not all the same
<ul class="org-ul">
<li>8.4 hours of sleep, 2 hours of me-time:
<ul class="org-ul">
<li>fragmented &lt; all together</li>
</ul></li>
<li>family time: 0-18 &gt; 18→</li>
</ul></li>
<li>How much time I have &amp; how much time I feel I have are two different things.</li>
<li>It's okay to have downtime. No sense in grumping at myself about it.</li>
<li>Energy matters. Sleep is my foundation for everything else</li>
<li>Time comes from somewhere. There's time for everything I really want, just not all at once. Constraints clarify choices. If I want to do more of something, I need to change something else.</li>
<li>I like a small, leisurely life.</li>
</ul>

<p>
sachachua.com/2025-04-29-02
</p>


</details>

<p>
Tracking my time is surprisingly reassuring. I can
see that I have time for a few discretionary
things, and I can see the trade-offs. More time
spent doing one thing means less time spent on
another, so it makes my actual priorities clear.
In the beginning, I tended to fall back to
consulting a lot because it came with clear tasks
and the satisfaction of helping other people. I'm
happy to see that I'm becoming more comfortable
with choosing things like playing piano, going for
walks, writing, or working on personal projects,
or playing Minecraft with <abbr title="my husband" tabindex="0">W-</abbr> and <abbr title="our 9-year-old daughter" tabindex="0">A+</abbr>.
</p>

<p>
W- does so much around the house, and we really
enjoy the benefits. (Mmm, fresh-baked bagels.) It
makes me want to increase my "Unpaid work" time so
that I can increase the satisfaction I feel from
helping improve the household. If I can tempt A+
along (say, cooking or gardening), then that would
be an effective way to shift that time around.
When I switch from "Personal - Routines" to
"Unpaid work - Clean the kitchen," it feels nice.
I know it'll add up.
</p>

<p>
<a href="https://sachachua.com/blog/2014/09/figuring-deal-sub-optimal-times/">When I don't feel particularly energetic or
focused</a>, I've learned to be kind to myself and
just chill out with a book or my iPad, or do some
tidying around the house. Sometimes I have a nap.
No point in grumping at myself about it. I'm
learning that I enjoy having a simple, leisurely
sort of life, without feeling like I need an
internal <a href="https://sachachua.com/blog/2014/01/conversation-writing-reflections-taskmasters/">taskmaster</a>. When I do have an idea, I'm
fine with going with it even if there are lots of
other things on my to-do list from before. As long
as nothing urgently needs to be done, there's room
to play, and it's easier to work on stuff I'm
curious about or care about, even if it might not
be the theoretically optimal way to use that bit
of time.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-do-i-want-to-find-time-for-the-activities-i-used-to-spend-time-on-before" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-do-i-want-to-find-time-for-the-activities-i-used-to-spend-time-on-before">Do I want to find time for the activities I used to spend time on before?</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-do-i-want-to-find-time-for-the-activities-i-used-to-spend-time-on-before">
<p>
I don't think I'll go back to my pre-parenting
socializing any time soon. I miss bumping into
interesting ideas and people at tech meetups and
<a href="https://hacklab.to">Hacklab</a>, and hosting people for tea, but it's
okay. We're still taking COVID precautions, so we
don't hang out indoors. The weather's warming up
so maybe people will be outside more. I bumped
into <a href="https://hyfen.net/">Andrew Louis</a> at a park the other day. That
conversation reminded me that there are lots of
wonderful people who don't blog nearly as often as
I do (and even I don't write as often as I'd
like), so spending time with them (either
one-or-one or as part of larger conversations) is
the main way to find out about the cool things
they've been up to, enjoy that feeling of "I'm
glad you exist," and perhaps develop friendships
further. Someday, maybe. In the meantime, I like
<a href="https://emacsconf.org">EmacsConf</a>, I occasionally join online meetups, and
I've dusted off my feed reader and filled it with
people whom I also appreciate.
</p>

<p>
All my gaming time has shifted over to Minecraft
because that's what A+ and W- play. I like playing
with them. It's a fun way to spend time together
and explore different situations.
</p>

<p>
I probably won't take up Latin or Japanese again
for now. I enjoyed feeling my brain get the hang
of something new. At the moment, my brain seems to
want to get that from piano practice, so that's
fine.
</p>

<p>
I'd like to <a href="https://sachachua.com/blog/category/sewing/">sew more</a>. A+ wants more skirts,
skorts, and dresses, and she doesn't often find
clothes to her liking in the stores. She likes it
when I wear a matching skirt, too. If I'm working
with stretchy fabric, that means using the serger
at home. If I'm working with wovens, I can bring
the project to the playground for something
tangible to work on while the kids play. At home,
it tends to feel like a choice between coding,
writing, cooking, tidying, or sewing, and I don't
pick sewing very often. At the park, sewing gives
me something to do while I listen to other
grown-ups chat.
</p>

<p>
I like what I've shifted my time towards: more
time outside, time with family, biking and walking
(especially awesome when we're out biking as a
family!), more gardening, more writing, more
drawing. It's okay that other things moved lower
on my list.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-how-much-time-does-it-take-to-track-and-analyze-time" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-how-much-time-does-it-take-to-track-and-analyze-time">How much time does it take to track and analyze time?</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-how-much-time-does-it-take-to-track-and-analyze-time">
<p>
It doesn't take a lot of time to capture the data:
just a few seconds to tap into my most common
categories using my phone. I recently added some
Tasker tasks and Google Assistant routines so that
I can track common categories by voice ("Hey
Google, kitchen"), using face unlock to authorize
it in case my hands are full. I've written code to
automatically add time use tables to my weekly,
monthly, and annual reviews, so that's also
straightforward.
</p>

<p>
This particular analysis took me a couple of extra
hours spread over several days.
</p>

<ul class="org-ul">
<li>I noticed some entries I wanted to clean up
(mostly when I didn't track when I slept), so
that took a little time.</li>
<li>I wanted to tweak my graph visualization to make
it easier to visualize a whole year of data, so
I modified it to take up the full width instead
of a fixed width, changed the outline to a
slightly-transparent version of the category
colour, and recoloured the categories based on a
palette I picked up from somewhere. This meant I
needed to re-figure-out how to modify my
web-based tracker, as there were some gaps in my
notes.</li>
<li><p>
I wanted an Emacs Lisp way to visualize a single
day, which meant adding <code>quantified-svg-day</code> and other functions to .
</p>

<p>
Then I could define a named Org Babel block like this:
</p>


<div class="org-src-container">
<pre class="src src-org"><span class="org-org-meta-line">  #+NAME: day-graph</span>
<span class="org-org-block-begin-line">  #+begin_src emacs-lisp  :exports results :var day="2012-04-25"</span>
<span class="org-org-block">        (</span><span class="org-org-block"><span class="org-keyword">with-temp-file</span></span><span class="org-org-block"> (format </span><span class="org-org-block"><span class="org-string">"weekday-%s.svg"</span></span><span class="org-org-block"> (substring day 0 4))</span>
<span class="org-org-block">                (svg-print (quantified-svg-day day </span><span class="org-org-block"><span class="org-highlight-quoted-quote">'</span></span><span class="org-org-block"><span class="org-highlight-quoted-symbol">horizontal</span></span><span class="org-org-block">))</span>
<span class="org-org-block">                (buffer-string))</span>
<span class="org-org-block">        (format </span><span class="org-org-block"><span class="org-string">"#+ATTR_HTML: :style margin-top: 0; margin-bottom: 0\nSample weekday: %s\n#+ATTR_HTML: :style width:100%%; height: 20px\nfile:weekday-%s.svg"</span></span><span class="org-org-block"> day (substring day 0 4))</span>
<span class="org-org-block-end-line">  #+end_src</span>
</pre>
</div>


<p>
To call it, I can use:
</p>


<div class="org-src-container">
<pre class="src src-org"><span class="org-org-meta-line">  #+CALL: day-graph(day="2013-04-26")</span>
</pre>
</div>


<p>
Next step would be to visualize the data from a
start day to and end day, which could be useful
for weekly and monthly reviews.
</p></li>
<li>I kept wanting to add more thoughts.</li>
</ul>

<p>
I liked reviewing my data, though. Even with just
the numbers and graphs, it was a way to revisit
those quite different past selves.
</p>

<p>
This time data works together with other things. I
built myself a web-based journal as well&#x2013;just
quick sentences to capture what happened, roughly
grouped into categories. That provides a more
qualitative view of my day and helps me flesh out
the memories.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-can-i-share-my-data" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-can-i-share-my-data">Can I share my data?</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-can-i-share-my-data">
<p>
I used to leave quantifiedawesome.com more open to
the web. To my amusement, it's even been used in a
<a href="https://ieeexplore.ieee.org/abstract/document/9338375">machine learning research paper</a>, which, after much
crunching of data, concluded that I tend to take
the subway to things and then come
back.<sup><a id="fnr.sacha-subway" class="footref" href="https://sachachua.com/blog/feed/atom/index.xml#fn.sacha-subway" role="doc-backlink">2</a></sup> Anyway, I noticed
my time tracker got a bit slower as bots started
trying to crawl through the reports, and it
occasionally crashed and needed restarting, so I
tucked it behind an IP address range restriction.
Not really sure what other people would find
interesting in my data, anyhow. =)
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-next-steps" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-next-steps">Other resources</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-next-steps">
<p>
If you like this sort of stuff, you might also want to check out <a href="https://sachachua.com/blog/category/time">my other posts about time</a> or <a href="https://sachachua.com/topic/quantified/">Quantified Self</a>, or these other people's time analyses:
</p>

<ul class="org-ul">
<li><a href="https://www.reddit.com/r/dataisbeautiful/comments/101hvnv/oc_i_tracked_every_hour_of_my_life_for_5_years/">[OC] I tracked every hour of my life for 5 years.</a> - 1.5k comments, similar visualization</li>
<li><a href="https://www.reddit.com/r/dataisbeautiful/comments/1i5zki7/i_tracked_every_minute_of_my_life_in_2024/">I tracked every minute of my life in 2024</a> - similar visualization</li>
<li><a href="https://www.reddit.com/r/dataisbeautiful/comments/1i0pir0/i_tracked_every_hour_of_my_life_in_2024/">I tracked every hour of my life in 2024</a> - similar visualization + category totals</li>
<li><a href="https://www.reddit.com/r/dataisbeautiful/comments/rv9pn2/oc_i_tracked_every_hour_of_my_life_for_2021_repost/">[OC] I tracked every hour of my life for 2021 (REPOST)</a> - similar visualization + category totals</li>
<li><a href="https://www.reddit.com/r/dataisbeautiful/comments/18vvxdk/oc_ive_started_tracking_my_time_in_2023/">[oc] I've started tracking my time in 2023</a> - Sankey diagram of categories</li>
<li><a href="https://www.brettkobold.com/quant-self-time/">Quantified Self – Analysis of my Time · Brett Kobold</a> - location tracking, Tasker</li>
<li><a href="https://medium.com/@stogers/quantified-self-tracking-my-time-spent-1fdb97652595">Quantified Self: Tracking My Time Spent | by Stephanie Rogers | Medium</a> - calendar, category totals</li>
<li><a href="http://www.markwk.com/time-tracking-guide.html">Time-tracking guide</a> - RescueTime, Toggl, stacked bars, treemap</li>
<li><a href="https://substack.com/home/post/p-160596406">I Tracked Every Minute Of My Life For One Year, Here's What I Learned.</a> - used the EARLY app, category totals</li>
<li><a href="https://rpubs.com/ndleah/quantified-self">RPubs - Quantified-self Report</a> - group, mood</li>
<li><a href="https://dev.to/dragosbln/i-tracked-every-minute-of-my-time-for-the-last-4-months-here-are-7-totally-unexpected-results-2dna">I tracked every minute of my time for the last 4 months. Here are 7 totally unexpected results - DEV Community</a> - used Toggl</li>
<li><a href="https://substack.com/home/post/p-148101294">I time tracked my life for a month - by Lane Scott Jones</a> - category totals</li>
<li><a href="https://zapier.com/blog/time-tracking-tutorial/">Time Tracking Experiment: What I Learned After Analyzing Every Minute of My Life for 30 Days</a> - category totals</li>
<li><a href="https://forum.quantifiedself.com/t/i-tracked-every-minute-of-my-day-for-3-years/11135">I tracked every minute of my day for 3 years - Quantified Self - Quantified Self Forum</a> - Google Calendar, category totals</li>
<li><a href="https://forum.quantifiedself.com/t/i-track-my-entire-life/6807">I Track My Entire Life - #35 by Algorithm - QS newcomers - Quantified Self Forum</a> - FileMaker Pro, 25 years, discussion of categories</li>
</ul>

<p>
If you want to start tracking your time, it might
be helpful to try it for a short period (a week, a
month, whatever) and then see what surprises you.
People can track time using all sorts of things:
pen and paper, a spreadsheet, a digital calendar,
a time-tracking app&#x2026; It might take a few tries
to find something that fits the way you work, and
that's okay.
</p>

<p>
<a href="https://kitchingroup.cheme.cmu.edu/blog/2016/02/08/Interactive-figures-in-blog-posts-with-mpld3/">Interactive figures in blog posts with mpld3</a> was also helpful for figuring out Javascript-enabled charts from Python, for which of course I totally want a smooth Org Mode workflow.
</p>
</div>
</div>
<div id="outline-container-looking-at-my-time-data-from-2012-to-2025-looking-forward" class="outline-3">
<h3 id="looking-at-my-time-data-from-2012-to-2025-looking-forward">Looking forward to the next few years</h3>
<div class="outline-text-3" id="text-looking-at-my-time-data-from-2012-to-2025-looking-forward">
<p>
Looking forward, I expect childcare to still be a
significant portion of my day, but that's all
right. It'll wind down all too quickly, so I might
as well enjoy it while I'm here. I think I'd like
to do maybe 5-15 hours of consulting a month,
which is a few hours each week. I enjoy helping my
clients explore crazy ideas. Aside from that,
there are lots of other things I want to do with
my time, and each day feels nicely full. Now that
the weather's warming up, I'd like to become even
more comfortable with sitting on the porch with a
book or a sketch, or going for a walk with A+ to
the ice cream store, or wandering around the city
checking out playgrounds.
</p>

<p>
A+ is 9. I am more than halfway to the end of A+'s
childhood, and adolescence is around the corner. I
have only so many years in this easy stage with
W-. My paternal grandmother had dementia towards
the end of her life and my mom is dealing with
both physical and cognitive decline due to
Parkinson's. Tick tock, <a href="https://en.wikipedia.org/wiki/Memento_mori">memento mori</a>, <a href="https://en.wikipedia.org/wiki/Four_Thousand_Weeks:_Time_Management_for_Mortals">four
thousand weeks</a> go by quickly. I'm half-past that
mark, too. But it's not a matter to feel despair
about or something that should make me try to hang
on to this moment too tightly. Keeping track of my
time doesn't mean subjecting myself to some kind
of <a href="https://en.wikipedia.org/wiki/Scientific_management">Tayloristic time-and-motion study</a> of the sort
that dictates how many packages an Amazon
warehouse worker must process each hour, out of
the urge to wring out every last bit of
productivity possible. It's enough, I think, to
savour here and now, to laugh at the things I
worried about in the past and to accept that
future me will also look back and smile.
</p>

<p>
I wonder what the next few years could look like.
I'd like to keep tracking time as a low-effort way
to sketch out the shape of my day, to see my
<a href="https://en.wikipedia.org/wiki/Revealed_preference">revealed preferences</a> and see if they match up with
what I value, and to appreciate how little things
add up.
</p>

<style>
.heading-nav { display: inline-block; }
.heading-nav a, .heading-nav span { width: 1em; display: inline-block; margin-right: 5px; font-size: normal; }
.footer-spacer { height: 0 }
</style>
<script class="navigate-subheadings">

async function replacePNGwithSVG(event) {
  let link = event.target.tagName == 'a' ? event.target : event.target.closest('a');
  if (!link) return;
	if (link.querySelector('svg')) return;
	if (!link.querySelector('img')) return;
	event.preventDefault();
	link.innerHTML = 'Replacing this with the SVG so you can hover...';
	// Retrieve the SVG
	const svg = await fetch(link.href).then((res) => res.text());
	link.innerHTML = svg;
	if (typeof 'BiggerPicture' != undefined) {
		let bp = BiggerPicture({
			target: document.body,
		})
		bp.open({items: [link.querySelector('svg')]});
	}
	return false;
}
document.addEventListener('DOMContentLoaded', () => {
  // Replace PNGs with SVGs and use BiggerPicture to zoom in on them?
  document.querySelectorAll('.navigate-subheadings').forEach((div) => {
		const container = div.closest('.content, article');
		container.querySelectorAll('figure a').forEach(link => {
			if (link.href.match(/svg/)) {
				link.addEventListener('click', replacePNGwithSVG);
			}
		});
	});
});
//document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('.navigate-subheadings').forEach((div) => {
  const container = div.closest('.content, article');
	const headings = container.querySelectorAll('h3');
	container.querySelectorAll('.heading-nav, .footer-spacer').forEach(o => o.remove());
	headings.forEach((o, i) => {
		const nav = document.createElement('nav');
		nav.classList.add('heading-nav');
		o.prepend(nav);
		if (i > 0) {
			const before = document.createElement('a');
			before.setAttribute('aria-label', 'Previous heading');
			before.href = '#' + headings[i - 1].id;
			before.textContent = '<';
			nav.appendChild(before);
		} else {
      const before = document.createElement('span');
			before.textContent = ' ';
			nav.appendChild(before);
    }
		if (i < headings.length - 1) {
			const after = document.createElement('a');
			after.setAttribute('aria-label', 'Next heading');
			after.href = '#' + headings[i + 1].id;
			after.textContent = '>';
			nav.appendChild(after);
		} else {
      const after = document.createElement('span');
			after.textContent = ' ';
			nav.appendChild(after);
    }
	});
});
//});
</script>
</div>
</div>
<div id="blog-2025-04-looking-at-my-time-data-from-2012-to-2025-footnotes">
<h3 class="footnotes">Footnotes</h3>
<div id="blog-2025-04-looking-at-my-time-data-from-2012-to-2025-text-footnotes">

<div class="footdef"><sup><a id="fn.eleanor-coppola" class="footnum" href="https://sachachua.com/blog/feed/atom/index.xml#fnr.eleanor-coppola" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"><a href="https://murielmurch.com/2024/05/19/eleanor-coppola/">Eleanor Copolla's interview in Living with Literature</a>, quoted in <a href="https://austinkleon.com/2018/01/23/the-best-thing-ever-written-about-work-life-balance/">The best thing ever written about “work-life balance” - Austin Kleon</a>, which I found via
 <a href="https://workflowsbeforerainbows.com/posts/interruptibility-is-a-superpower">🌱 Interruptibility is a superpower - Workflows Before Rainbows</a></p></div></div>

<div class="footdef"><sup><a id="fn.sacha-subway" class="footnum" href="https://sachachua.com/blog/feed/atom/index.xml#fnr.sacha-subway" role="doc-backlink">2</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">J. Cüppers and J. Vreeken,
<a href="https://ieeexplore.ieee.org/abstract/document/9338375">"Just Wait for it&#x2026; Mining Sequential Patterns
with Reliable Prediction Delays,"</a> 2020 IEEE
International Conference on Data Mining (ICDM),
Sorrento, Italy, 2020, pp. 82-91, doi:
10.1109/ICDM50108.2020.00017.</p></div></div>


</div>
</div><div><a href="https://sachachua.com/blog/2025/04/looking-at-my-time-data-from-2012-to-2025/index.org">View org source for this post</a></div><p>You can <a href="https://social.sachachua.com/@sacha/statuses/01JT3MM6N62GFC5D7BQPTZRA2G" target="_blank" rel="noopener noreferrer">comment on Mastodon</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2025%2F04%2Flooking-at-my-time-data-from-2012-to-2025%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Analyzing my Emacs time over the last 11 years or so</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2024-12-27T20:50:40Z</updated>
    <published>2023-12-03T16:26:16Z</published>
    <category term="emacs" />
<category term="quantified" />
<category term="time" />
		<id>https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/</id>
		<content type="html"><![CDATA[<div class="update" id="orgaf81682">
<ul class="org-ul">
<li><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-31">[2025-12-31 Wed]</time></span>: Sure, let's add 2025!</li>
<li><span class="timestamp-wrapper"><time class="timestamp" datetime="2024-12-27">[2024-12-27 Fri]</time></span>: Added 2024 numbers, so that's now 12 years of data</li>
</ul>

</div>

<p>
My <a href="https://emacsconf.org/2023/talks/emacsconf">EmacsConf presentation</a> will stream in a few hours, and someone's
probably going to ask where I find the time for all of this. =) So I
dug through my <a href="https://quantifiedawesome.com">time logs</a> (a custom system I wrote in 2012 with Ruby on
Rails; has an Emacs interface, of course) and came up with this table
of hours I logged in my <code>Discretionary - Productive - Emacs</code> category
over the past 11 years.
</p>

<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Data for Emacs hours by month by year</strong></summary>
<table id="org707ccf8">


<colgroup>
<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Year</th>
<th scope="col" class="org-right">Jan</th>
<th scope="col" class="org-right">Feb</th>
<th scope="col" class="org-right">March</th>
<th scope="col" class="org-right">April</th>
<th scope="col" class="org-right">May</th>
<th scope="col" class="org-right">June</th>
<th scope="col" class="org-right">July</th>
<th scope="col" class="org-right">Aug</th>
<th scope="col" class="org-right">Sept</th>
<th scope="col" class="org-right">Oct</th>
<th scope="col" class="org-right">Nov</th>
<th scope="col" class="org-right">Dec</th>
<th scope="col" class="org-right">Total</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">2012</td>
<td class="org-right">&nbsp;</td>
<td class="org-right">&nbsp;</td>
<td class="org-right">&nbsp;</td>
<td class="org-right">&nbsp;</td>
<td class="org-right">0.7</td>
<td class="org-right">19.4</td>
<td class="org-right">2.7</td>
<td class="org-right">1.9</td>
<td class="org-right">1.2</td>
<td class="org-right">0</td>
<td class="org-right">0</td>
<td class="org-right">8.6</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2013</td>
<td class="org-right">0.7</td>
<td class="org-right">12.5</td>
<td class="org-right">38.5</td>
<td class="org-right">18.5</td>
<td class="org-right">10.0</td>
<td class="org-right">6.0</td>
<td class="org-right">1.2</td>
<td class="org-right">5.2</td>
<td class="org-right">0</td>
<td class="org-right">0.1</td>
<td class="org-right">3.2</td>
<td class="org-right">0.4</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2014</td>
<td class="org-right">2.0</td>
<td class="org-right">3.4</td>
<td class="org-right">18.8</td>
<td class="org-right">39.7</td>
<td class="org-right">45.4</td>
<td class="org-right">15.3</td>
<td class="org-right">2.6</td>
<td class="org-right">0.6</td>
<td class="org-right">2.0</td>
<td class="org-right">7.4</td>
<td class="org-right">5.9</td>
<td class="org-right">15.4</td>
<td class="org-right">158</td>
</tr>

<tr>
<td class="org-right">2015</td>
<td class="org-right">16.6</td>
<td class="org-right">37.4</td>
<td class="org-right">7.4</td>
<td class="org-right">9.0</td>
<td class="org-right">2.3</td>
<td class="org-right">3.3</td>
<td class="org-right">3.2</td>
<td class="org-right">20.0</td>
<td class="org-right">9.6</td>
<td class="org-right">6.3</td>
<td class="org-right">26.5</td>
<td class="org-right">18.2</td>
<td class="org-right">160</td>
</tr>

<tr>
<td class="org-right">2016</td>
<td class="org-right">8.6</td>
<td class="org-right">4.6</td>
<td class="org-right">3.7</td>
<td class="org-right">3.7</td>
<td class="org-right">4.2</td>
<td class="org-right">2.9</td>
<td class="org-right">1.4</td>
<td class="org-right">2.9</td>
<td class="org-right">2.7</td>
<td class="org-right">2.2</td>
<td class="org-right">4.3</td>
<td class="org-right">2.4</td>
<td class="org-right">44</td>
</tr>

<tr>
<td class="org-right">2017</td>
<td class="org-right">3.7</td>
<td class="org-right">2.7</td>
<td class="org-right">3.2</td>
<td class="org-right">3.2</td>
<td class="org-right">3.0</td>
<td class="org-right">2.0</td>
<td class="org-right">5.2</td>
<td class="org-right">2.8</td>
<td class="org-right">0</td>
<td class="org-right">0.9</td>
<td class="org-right">3.4</td>
<td class="org-right">3.8</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2018</td>
<td class="org-right">2.9</td>
<td class="org-right">3.3</td>
<td class="org-right">1.9</td>
<td class="org-right">2.2</td>
<td class="org-right">3.9</td>
<td class="org-right">3.3</td>
<td class="org-right">0.9</td>
<td class="org-right">1.4</td>
<td class="org-right">1.5</td>
<td class="org-right">1.8</td>
<td class="org-right">2.3</td>
<td class="org-right">3.0</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2019</td>
<td class="org-right">2.2</td>
<td class="org-right">10.7</td>
<td class="org-right">2.6</td>
<td class="org-right">2.3</td>
<td class="org-right">13.7</td>
<td class="org-right">6.8</td>
<td class="org-right">7.1</td>
<td class="org-right">3.6</td>
<td class="org-right">13.3</td>
<td class="org-right">16.1</td>
<td class="org-right">16.7</td>
<td class="org-right">2.0</td>
<td class="org-right">97</td>
</tr>

<tr>
<td class="org-right">2020</td>
<td class="org-right">3.3</td>
<td class="org-right">0.5</td>
<td class="org-right">3.0</td>
<td class="org-right">.2</td>
<td class="org-right">10.0</td>
<td class="org-right">6.3</td>
<td class="org-right">5.2</td>
<td class="org-right">5.0</td>
<td class="org-right">5.0</td>
<td class="org-right">32.9</td>
<td class="org-right">61.7</td>
<td class="org-right">49.0</td>
<td class="org-right">182</td>
</tr>

<tr>
<td class="org-right">2021</td>
<td class="org-right">53.7</td>
<td class="org-right">47.1</td>
<td class="org-right">44.7</td>
<td class="org-right">25.5</td>
<td class="org-right">18.1</td>
<td class="org-right">11.5</td>
<td class="org-right">8.3</td>
<td class="org-right">11.9</td>
<td class="org-right">9.5</td>
<td class="org-right">66.0</td>
<td class="org-right">138.1</td>
<td class="org-right">66.6</td>
<td class="org-right">501</td>
</tr>

<tr>
<td class="org-right">2022</td>
<td class="org-right">13.5</td>
<td class="org-right">13.4</td>
<td class="org-right">3.1</td>
<td class="org-right">3.9</td>
<td class="org-right">7.0</td>
<td class="org-right">4.5</td>
<td class="org-right">4.2</td>
<td class="org-right">5.1</td>
<td class="org-right">45.4</td>
<td class="org-right">157.5</td>
<td class="org-right">146.6</td>
<td class="org-right">95.3</td>
<td class="org-right">500</td>
</tr>

<tr>
<td class="org-right">2023</td>
<td class="org-right">23.4</td>
<td class="org-right">15.9</td>
<td class="org-right">16.2</td>
<td class="org-right">11.2</td>
<td class="org-right">4.4</td>
<td class="org-right">11.5</td>
<td class="org-right">6.5</td>
<td class="org-right">13.3</td>
<td class="org-right">36.6</td>
<td class="org-right">86.6</td>
<td class="org-right">93.2</td>
<td class="org-right">113.0</td>
<td class="org-right">432</td>
</tr>

<tr>
<td class="org-right">2024</td>
<td class="org-right">71.2</td>
<td class="org-right">12.0</td>
<td class="org-right">5.6</td>
<td class="org-right">6.6</td>
<td class="org-right">3.3</td>
<td class="org-right">9.6</td>
<td class="org-right">11.0</td>
<td class="org-right">4.7</td>
<td class="org-right">36.0</td>
<td class="org-right">40.3</td>
<td class="org-right">52.3</td>
<td class="org-right">67.7</td>
<td class="org-right">320</td>
</tr>

<tr>
<td class="org-right">2052</td>
<td class="org-right">47.2</td>
<td class="org-right">10.7</td>
<td class="org-right">21.6</td>
<td class="org-right">11.3</td>
<td class="org-right">8.7</td>
<td class="org-right">18.1</td>
<td class="org-right">20.7</td>
<td class="org-right">15.8</td>
<td class="org-right">30.6</td>
<td class="org-right">24.1</td>
<td class="org-right">34.0</td>
<td class="org-right">84.9</td>
<td class="org-right">328</td>
</tr>
</tbody>
</table>


</details>

<p>
Notes:
</p>

<ul class="org-ul">
<li>Data collection in this system started in 2012.</li>
<li>Some months look like they have under-collected data, that's fine.</li>
<li>Big spike in 2022 was when we decided to go with two tracks for EmacsConf, so I needed to figure out all the infrastructure.</li>
<li>I started doing Emacs News in 2016, which is maybe 0.5 - 1.5 hours a week.</li>
<li>EmacsConf restarted in 2019 with an online conference. I've been handling speaker/volunteer coordination, captioning, publishing, and automation/infrastructure.</li>
</ul>

<p>
I can visualize this as a heatmap with:
</p>


<div class="org-src-container">
<pre class="src src-python"><code><span class="org-keyword">import</span> numpy <span class="org-keyword">as</span> np
<span class="org-keyword">import</span> pandas <span class="org-keyword">as</span> pd
<span class="org-keyword">import</span> matplotlib.pyplot <span class="org-keyword">as</span> plt
<span class="org-keyword">import</span> seaborn <span class="org-keyword">as</span> sns
<span class="org-variable-name">df</span> <span class="org-operator">=</span> pd.DataFrame(time_data[1:], columns<span class="org-operator">=</span>time_data[0]).drop(<span class="org-string">'Total'</span>, axis<span class="org-operator">=</span>1).set_index(<span class="org-string">'Year'</span>)
<span class="org-variable-name">df</span> <span class="org-operator">=</span> df.apply(pd.to_numeric)
plt.title(<span class="org-string">"sachac's Emacs hours by month and year"</span>)
<span class="org-variable-name">plot</span> <span class="org-operator">=</span> sns.heatmap(df, annot<span class="org-operator">=</span><span class="org-constant">True</span>, cmap<span class="org-operator">=</span><span class="org-string">'crest'</span>, fmt<span class="org-operator">=</span><span class="org-string">'.0f'</span>)
<span class="org-variable-name">fig</span> <span class="org-operator">=</span> plot.get_figure()
fig.savefig(<span class="org-string">'emacs-time.png'</span>)
</code></pre>
</div>




<figure id="org7474e3c">
<img src="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/emacs-time.png" alt="emacs-time.png">

</figure>
<div id="outline-container-org2b28b3d" class="outline-3">
<h3 id="org2b28b3d">Yes, I do actually sleep</h3>
<div class="outline-text-3" id="text-org2b28b3d">
<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Overall balance of activities</strong></summary>
<table>


<colgroup>
<col class="org-left">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<tbody>
<tr>
<td class="org-left">Activity</td>
<td class="org-right">Jan 2023</td>
<td class="org-right">Feb 2023</td>
<td class="org-right">Mar 2023</td>
<td class="org-right">Apr 2023</td>
<td class="org-right">May 2023</td>
<td class="org-right">Jun 2023</td>
<td class="org-right">Jul 2023</td>
<td class="org-right">Aug 2023</td>
<td class="org-right">Sep 2023</td>
<td class="org-right">Oct 2023</td>
<td class="org-right">Nov 2023</td>
<td class="org-right">Total</td>
</tr>

<tr>
<td class="org-left">A-</td>
<td class="org-right">39.0%</td>
<td class="org-right">47.5%</td>
<td class="org-right">44.4%</td>
<td class="org-right">44.2%</td>
<td class="org-right">44.1%</td>
<td class="org-right">44.4%</td>
<td class="org-right">41.8%</td>
<td class="org-right">40.5%</td>
<td class="org-right">33.2%</td>
<td class="org-right">33.3%</td>
<td class="org-right">34.3%</td>
<td class="org-right">40.6%</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">1.3%</td>
<td class="org-right">0.5%</td>
<td class="org-right">3.5%</td>
<td class="org-right">1.9%</td>
<td class="org-right">3.8%</td>
<td class="org-right">2.8%</td>
<td class="org-right">3.5%</td>
<td class="org-right">7.0%</td>
<td class="org-right">8.8%</td>
<td class="org-right">1.9%</td>
<td class="org-right">1.7%</td>
<td class="org-right">3.3%</td>
</tr>

<tr>
<td class="org-left">Discretionary &gt;</td>
<td class="org-right">10.8%</td>
<td class="org-right">3.9%</td>
<td class="org-right">4.5%</td>
<td class="org-right">6.0%</td>
<td class="org-right">6.6%</td>
<td class="org-right">8.3%</td>
<td class="org-right">6.9%</td>
<td class="org-right">6.2%</td>
<td class="org-right">8.8%</td>
<td class="org-right">14.5%</td>
<td class="org-right">16.1%</td>
<td class="org-right">8.4%</td>
</tr>

<tr>
<td class="org-left">Personal &gt;</td>
<td class="org-right">10.1%</td>
<td class="org-right">10.2%</td>
<td class="org-right">11.7%</td>
<td class="org-right">10.4%</td>
<td class="org-right">9.3%</td>
<td class="org-right">8.8%</td>
<td class="org-right">9.9%</td>
<td class="org-right">8.4%</td>
<td class="org-right">9.4%</td>
<td class="org-right">10.6%</td>
<td class="org-right">11.9%</td>
<td class="org-right">10.0%</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">34.6%</td>
<td class="org-right">35.4%</td>
<td class="org-right">32.9%</td>
<td class="org-right">34.9%</td>
<td class="org-right">33.4%</td>
<td class="org-right">32.1%</td>
<td class="org-right">34.1%</td>
<td class="org-right">34.7%</td>
<td class="org-right">33.9%</td>
<td class="org-right">35.7%</td>
<td class="org-right">33.4%</td>
<td class="org-right">34.1%</td>
</tr>

<tr>
<td class="org-left">Unpaid work &gt;</td>
<td class="org-right">4.3%</td>
<td class="org-right">2.5%</td>
<td class="org-right">3.0%</td>
<td class="org-right">2.8%</td>
<td class="org-right">2.9%</td>
<td class="org-right">3.6%</td>
<td class="org-right">3.9%</td>
<td class="org-right">3.3%</td>
<td class="org-right">5.9%</td>
<td class="org-right">4.0%</td>
<td class="org-right">2.6%</td>
<td class="org-right">3.5%</td>
</tr>
</tbody>
</table>


</details>

<p>
Notes:
</p>

<ul class="org-ul">
<li>`A-` is my top-level category for child-care</li>
</ul>

<p>
Sleep over the years:
</p>

<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Sleep percentage</strong></summary>
<table id="org377ab87">


<colgroup>
<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<tbody>
<tr>
<td class="org-right">Year</td>
<td class="org-right">Jan</td>
<td class="org-right">Feb</td>
<td class="org-right">March</td>
<td class="org-right">April</td>
<td class="org-right">May</td>
<td class="org-right">June</td>
<td class="org-right">July</td>
<td class="org-right">Aug</td>
<td class="org-right">Sept</td>
<td class="org-right">Oct</td>
<td class="org-right">Nov</td>
<td class="org-right">Dec</td>
</tr>

<tr>
<td class="org-right">2013</td>
<td class="org-right">36.0%</td>
<td class="org-right">34.9%</td>
<td class="org-right">37.0%</td>
<td class="org-right">36.5%</td>
<td class="org-right">32.5%</td>
<td class="org-right">35.8%</td>
<td class="org-right">37.4%</td>
<td class="org-right">43.1%</td>
<td class="org-right">37.9%</td>
<td class="org-right">36.9%</td>
<td class="org-right">37.8%</td>
<td class="org-right">34.5%</td>
</tr>

<tr>
<td class="org-right">2014</td>
<td class="org-right">36.4%</td>
<td class="org-right">38.2%</td>
<td class="org-right">37.0%</td>
<td class="org-right">36.7%</td>
<td class="org-right">35.0%</td>
<td class="org-right">37.6%</td>
<td class="org-right">37.8%</td>
<td class="org-right">34.7%</td>
<td class="org-right">36.1%</td>
<td class="org-right">34.3%</td>
<td class="org-right">41.3%</td>
<td class="org-right">37.4%</td>
</tr>

<tr>
<td class="org-right">2015</td>
<td class="org-right">35.5%</td>
<td class="org-right">35.3%</td>
<td class="org-right">38.5%</td>
<td class="org-right">35.0%</td>
<td class="org-right">35.1%</td>
<td class="org-right">39.7%</td>
<td class="org-right">36.9%</td>
<td class="org-right">40.1%</td>
<td class="org-right">40.3%</td>
<td class="org-right">37.4%</td>
<td class="org-right">37.8%</td>
<td class="org-right">41.4%</td>
</tr>

<tr>
<td class="org-right">2016</td>
<td class="org-right">35.5%</td>
<td class="org-right">35.3%</td>
<td class="org-right">38.5%</td>
<td class="org-right">35.0%</td>
<td class="org-right">35.1%</td>
<td class="org-right">39.7%</td>
<td class="org-right">36.9%</td>
<td class="org-right">40.1%</td>
<td class="org-right">40.3%</td>
<td class="org-right">37.4%</td>
<td class="org-right">37.8%</td>
<td class="org-right">41.4%</td>
</tr>

<tr>
<td class="org-right">2017</td>
<td class="org-right">38.2%</td>
<td class="org-right">35.9%</td>
<td class="org-right">34.3%</td>
<td class="org-right">35.1%</td>
<td class="org-right">33.0%</td>
<td class="org-right">30.8%</td>
<td class="org-right">32.6%</td>
<td class="org-right">27.2%</td>
<td class="org-right">26.5%</td>
<td class="org-right">32.8%</td>
<td class="org-right">34.0%</td>
<td class="org-right">29.6%</td>
</tr>

<tr>
<td class="org-right">2018</td>
<td class="org-right">29.7%</td>
<td class="org-right">33.4%</td>
<td class="org-right">32.8%</td>
<td class="org-right">32.5%</td>
<td class="org-right">31.0%</td>
<td class="org-right">29.3%</td>
<td class="org-right">35.1%</td>
<td class="org-right">33.0%</td>
<td class="org-right">37.7%</td>
<td class="org-right">36.9%</td>
<td class="org-right">29.3%</td>
<td class="org-right">34.0%</td>
</tr>

<tr>
<td class="org-right">2019</td>
<td class="org-right">33.2%</td>
<td class="org-right">34.7%</td>
<td class="org-right">35.3%</td>
<td class="org-right">35.6%</td>
<td class="org-right">33.9%</td>
<td class="org-right">30.4%</td>
<td class="org-right">32.0%</td>
<td class="org-right">32.9%</td>
<td class="org-right">35.7%</td>
<td class="org-right">34.6%</td>
<td class="org-right">33.1%</td>
<td class="org-right">34.4%</td>
</tr>

<tr>
<td class="org-right">2020</td>
<td class="org-right">32.8%</td>
<td class="org-right">34.7%</td>
<td class="org-right">37.9%</td>
<td class="org-right">32.2%</td>
<td class="org-right">32.8%</td>
<td class="org-right">30.3%</td>
<td class="org-right">31.5%</td>
<td class="org-right">30.1%</td>
<td class="org-right">32.4%</td>
<td class="org-right">31.8%</td>
<td class="org-right">28.9%</td>
<td class="org-right">33.1%</td>
</tr>

<tr>
<td class="org-right">2021</td>
<td class="org-right">28.6%</td>
<td class="org-right">30.1%</td>
<td class="org-right">34.6%</td>
<td class="org-right">33.3%</td>
<td class="org-right">31.6%</td>
<td class="org-right">31.8%</td>
<td class="org-right">36.1%</td>
<td class="org-right">33.6%</td>
<td class="org-right">35.1%</td>
<td class="org-right">34.7%</td>
<td class="org-right">32.5%</td>
<td class="org-right">32.4%</td>
</tr>

<tr>
<td class="org-right">2022</td>
<td class="org-right">35.5%</td>
<td class="org-right">35.6%</td>
<td class="org-right">38.5%</td>
<td class="org-right">37.2%</td>
<td class="org-right">38.1%</td>
<td class="org-right">38.4%</td>
<td class="org-right">36.5%</td>
<td class="org-right">38.1%</td>
<td class="org-right">35.3%</td>
<td class="org-right">32.0%</td>
<td class="org-right">30.1%</td>
<td class="org-right">27.8%</td>
</tr>

<tr>
<td class="org-right">2023</td>
<td class="org-right">34.6%</td>
<td class="org-right">35.4%</td>
<td class="org-right">32.9%</td>
<td class="org-right">34.9%</td>
<td class="org-right">33.4%</td>
<td class="org-right">32.1%</td>
<td class="org-right">34.1%</td>
<td class="org-right">34.7%</td>
<td class="org-right">33.9%</td>
<td class="org-right">35.7%</td>
<td class="org-right">33.4%</td>
<td class="org-right">30.9%</td>
</tr>

<tr>
<td class="org-right">2024</td>
<td class="org-right">29.4%</td>
<td class="org-right">37.2%</td>
<td class="org-right">36.1%</td>
<td class="org-right">34.2%</td>
<td class="org-right">34.3%</td>
<td class="org-right">35.5%</td>
<td class="org-right">35.9%</td>
<td class="org-right">37.4%</td>
<td class="org-right">34.5%</td>
<td class="org-right">35.8%</td>
<td class="org-right">33.5%</td>
<td class="org-right">36.1%</td>
</tr>

<tr>
<td class="org-right">2025</td>
<td class="org-right">35.4%</td>
<td class="org-right">33.8%</td>
<td class="org-right">33.3%</td>
<td class="org-right">32.2%</td>
<td class="org-right">31.3%</td>
<td class="org-right">27.3%</td>
<td class="org-right">30.7%</td>
<td class="org-right">30.7%</td>
<td class="org-right">32.1%</td>
<td class="org-right">33.2%</td>
<td class="org-right">31.4%</td>
<td class="org-right">34.7%</td>
</tr>
</tbody>
</table>


</details>


<div class="org-src-container">
<pre class="src src-python"><code><span class="org-keyword">import</span> numpy <span class="org-keyword">as</span> np
<span class="org-keyword">import</span> pandas <span class="org-keyword">as</span> pd
<span class="org-keyword">import</span> matplotlib.pyplot <span class="org-keyword">as</span> plt
<span class="org-keyword">import</span> seaborn <span class="org-keyword">as</span> sns
<span class="org-variable-name">df</span> <span class="org-operator">=</span> pd.DataFrame(data[1:], columns<span class="org-operator">=</span>data[0]).set_index(<span class="org-string">'Year'</span>)
<span class="org-variable-name">df</span> <span class="org-operator">=</span> df.applymap(<span class="org-keyword">lambda</span> x: <span class="org-builtin">float</span>(x.strip(<span class="org-string">'%'</span>))<span class="org-operator">*</span>24<span class="org-operator">/</span>100.0)
plt.title(<span class="org-string">"sachac's sleep hours per day by month and year"</span>)
<span class="org-variable-name">plot</span> <span class="org-operator">=</span> sns.heatmap(df, annot<span class="org-operator">=</span><span class="org-constant">True</span>, cmap<span class="org-operator">=</span><span class="org-string">'crest'</span>, fmt<span class="org-operator">=</span><span class="org-string">'.1f'</span>)
<span class="org-variable-name">fig</span> <span class="org-operator">=</span> plot.get_figure()
fig.savefig(<span class="org-string">'sleep-time.png'</span>)
</code></pre>
</div>


<p>
None
</p>


<figure id="org1059109">
<img src="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/sleep-time.png" alt="sleep-time.png">

</figure>

<p>
(Update 2025: Hah! June 2025 was apparently the month I got fixated on Stardew Valley&hellip;)
</p>

<p>
The kiddo was born in 2016. You can see how much less sleep I've been getting since then. =)
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/index.org">View org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2023%2F12%2Fanalyzing-my-emacs-time-over-the-last-11-years-or-so%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Quick notes on my current interface for time-tracking</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2017/06/quick-notes-on-my-current-interface-for-time-tracking/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2017-06-08T08:32:24Z</updated>
    <published>2017-06-08T04:32:24Z</published>
    <category term="quantified" />
		<id>https://sachachua.com/blog/?p=29012</id>
		<content type="html"><![CDATA[<p>I don&#8217;t think I&#8217;ve posted a description of my current interface for tracking, so here are a few quick screenshots. This is the main interface that I&#8217;ve bookmarked on my phone and on my computer. It&#8217;s a simple web-based interface with lots of big buttons. It lets me track baby-related things as well as my time with a tap or two. If I need to do something more complicated, I can use the command button to pass a text command to my tracking interface.&nbsp;</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-22.png"><img loading="lazy" class="alignnone size-full wp-image-29013" src="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-22.png" alt="" width="624" height="606" srcset="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-22.png 624w, https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-22-206x200.png 206w" sizes="(max-width: 624px) 100vw, 624px"></a></p>
<p>For example, here&#8217;s what clicking on the Track button will show:</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-41.png"><img loading="lazy" class="alignnone size-full wp-image-29014" src="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-41.png" alt="" width="626" height="433" srcset="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-41.png 626w, https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-21-41-280x194.png 280w" sizes="(max-width: 626px) 100vw, 626px"></a></p>
<p>I sometimes need to backdate entries, so tapping on Adjust gets me this screen:</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-25-20.png"><img loading="lazy" class="alignnone size-full wp-image-29015" src="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-25-20.png" alt="" width="620" height="440" srcset="https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-25-20.png 620w, https://sachachua.com/blog/wp-content/uploads/2017/06/Screenshot_2017-06-08_00-25-20-280x200.png 280w" sizes="(max-width: 620px) 100vw, 620px"></a></p>
<p>When I have a little more time, I might tweak the interface a bit, but it will do for now. I&#8217;m glad I put this together. It makes time tracking something I can do even with a baby, yay!</p>
<p>All the reports in my blog posts&nbsp;are handled by Emacs Lisp functions that talk to <a href="http://quantifiedawesome.com">quantifiedawesome.com</a> and summarize my time data. You can find the code&nbsp;at <a href="https://sachachua.com/dotemacs">https://sachachua.com/dotemacs</a>&nbsp;and&nbsp;<a href="https://github.com/sachac/quantified/blob/master/lisp/quantified.el">lisp/quantified.el</a>&nbsp;.</p>
<p>I probably won&#8217;t be able to help anyone build a similar system any time soon, but maybe these notes can give you a few&nbsp;ideas. =)</p>
<p>You can <a href="https://sachachua.com/blog/2017/06/quick-notes-on-my-current-interface-for-time-tracking/#comment">view 9 comments</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2017%2F06%2Fquick-notes-on-my-current-interface-for-time-tracking%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Gradually evolving my data entry interfaces</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2015/07/gradually-evolving-my-data-entry-interfaces/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2015-07-07T19:45:38Z</updated>
    <published>2015-07-07T15:43:00Z</published>
    <category term="quantified" />
		<id>https://sachachua.com/blog/?p=28347</id>
		<content type="html"><![CDATA[<p>I&#8217;m interested in Quantified Self as a way to make better decisions through data. When I come up with a question I want to explore, I usually start off tracking things on paper or in a spreadsheet. This means I can get started quickly, and I can check whether the question is useful enough to invest in further.</p>
<p><b>Clothes</b></p>
<p>I track my clothes to make it easier to simplify my wardrobe, and to guide my purchases.</p>
<p>I started by writing down dates and clothing combinations on an index card in the morning. Since my index card was unlined and my brain is pretty fuzzy early in the day, I occasionally had problems with incorrect dates or items not matching up. Eventually, I built a small Rails application (<a href="http://quantifiedawesome.com/">Quantified Awesome</a>) to keep track of the clothes for me. Adding pictures made it easier to select the right item. Over time, I added little conveniences like the ability to display or sort by the last time I wore something.</p>
<p>I often find myself backdating entries, so maybe tracking my clothes isn&#8217;t as easy or as fun as it could be. I wonder if making it more prescriptive (&#8220;Pick one of these three outfits, or select what you&#8217;re going to wear&#8221;) would help, or maybe integrating it more into my morning routine.</p>
<p><b>Time</b></p>
<p>I track my time to guide my activity decisions and remind me of how I used the time.</p>
<p>I used apps on my phone to track time for a few months. I started with <a href="https://play.google.com/store/apps/details?id=com.dynamicg.timerecording&amp;hl=en">Time Recording</a> and a few categories, adding more as I went along. When the number of categories got to be a bit unwieldy, I moved on to <a href="https://play.google.com/store/apps/details?id=com.waterbear.taglog&amp;hl=en">Tap Log</a> so that I could organize the buttons into a menu. Since it didn&#8217;t have the built-in time analysis I liked about Time Recording, I added time analysis tools to Quantified Awesome. After I added other features to Quantified Awesome, I shifted to using it as my time tracking and analysis tool.</p>
<p>For a while, I tracked time by bringing up the Quantified Awesome web interface on my phone and typing in a substring of a category name. Then I decided to look into building Emacs integration so that I could automatically clock in from my to-do list. To speed up time tracking on my phone, I used <a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&amp;hl=en">Tasker</a> to create a menu of my most common time categories. Since fiddling with Tasker on my phone was time-consuming and a little annoying, I eventually shifted to using Tasker and Javascript. That way, I could edit my HTML file in Emacs, copy it onto my phone through Dropbox, and get my handy menu of buttons. Using Tasker also allowed me to code extra behaviour such as turning off WiFi when I go for a walk.</p>
<p>My next step is probably to build more time visualizations so I can see the shifts from day to day, week to week.</p>
<p><b>Groceries</b></p>
<p>I track groceries so that I can make better decisions at the supermarket and so that I can get a sense of the balance and patterns of our consumption.</p>
<p>I started by typing in my receipts manually, but it was a little boring. I paid a virtual assistant to enter the data from my scanned receipts. This worked out to be better than the receipt scanning companies that were out there, since I could get line-item detail in a spreadsheet shared in Dropbox. I periodically reviewed the data, fixing errors and analyzing totals.</p>
<p>After some time doing this and quite a few errors in the data, I decided to build <a href="https://sachachua.com/blog/2015/05/building-tools-for-myself-grocery-receipt-tracking/">my own interface</a> for entering data more reliably. Now that I&#8217;ve built my neat interactive interface, I find it faster (and more fun!) to enter the data in myself than to scan it and send it over. I&#8217;ve been digging into <a href="https://sachachua.com/blog/2015/07/exploring-our-grocery-numbers/">visualizing the data</a> with D3 too.</p>
<p>Here&#8217;s a quick demo:</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/q6-DX0hfUwY" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>My next step is probably to build a grocery list interface for it. We&#8217;re currently using <a href="https://play.google.com/store/apps/details?id=com.headcode.ourgroceries&amp;hl=en">OurGroceries</a> because it syncs well between my husband&#8217;s phone and mine, but I should be able to use either straight AJAX or WebSockets to get the synchronization part working.</p>
<p>So those are a few examples of how I slowly improve my tracking systems, rounding off rough edges and making things a little bit simpler for myself. Web programming is super helpful for me. Backend tools like Ruby on Rails allow me to build my own tracking tools and front-end tools like Javascript allow me to create personalized interfaces and visualizations.</p>
<p>I tend to code the next step of improvements only when something annoys me enough for me to do something about it or when a question makes me curious enough to want to investigate it. I&#8217;ve been deliberately working on my personal projects more often, though, and that might lead to more of these little improvements. We&#8217;ll see!</p>
<p>You can <a href="https://sachachua.com/blog/2015/07/gradually-evolving-my-data-entry-interfaces/#comment">view 2 comments</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2015%2F07%2Fgradually-evolving-my-data-entry-interfaces%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Exploring our grocery numbers</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2015/07/exploring-our-grocery-numbers/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2015-07-04T05:16:36Z</updated>
    <published>2015-07-04T01:16:36Z</published>
    <category term="quantified" />
		<id>https://sachachua.com/blog/?p=28322</id>
		<content type="html"><![CDATA[<p>Analyzing my grocery data is more challenging than analyzing my time data. There&#8217;s a lot more data cleanup needed. I have to figure out obscure line items on old receipts and catch typos in both names and numbers. Then there&#8217;s figuring out how much I want to combine different items and how much I want to keep them separate.</p>
<p>For example, milk has different receipt item names depending on the item (size, brand, type) and the store. If I want to know how much we&#8217;ve spent on milk, I&#8217;ll use the total for all of them. But if I want to get a sense of the price history, it makes sense to track each receipt item type separately. I do this by keeping the receipt name (fixing typos as I review my data) and mapping these receipt names to a friendly name I set for myself. This way, the line &#8220;HOMO 4LI&#8221; on my receipt gets turned into &#8220;Milk&#8221; in my report. Come to think of it, maybe I should change it to &#8220;Milk, 4 L, Homogenized&#8221;&#8230;</p>
<p>Categories are handy for reporting too. Because of the ad-hoc way I created receipt item mappings and assigned them to categories, I ended up with inconsistent categorization. Some types of toilet paper were in the Supplies category, and some types were in the Other category. I manually reviewed the category assignments and I think I&#8217;ve gotten them sorted out.</p>
<p>Anyway, analyzing my data from 2013-07-01 to 2015-07-01, I see that we spend an average of $80 per week on groceries, which sounds about right. Some of the receipts are missing and there are almost certainly other little errors in the data, but this should give me the overall picture.</p>
<p>I&#8217;m still trying to figure out a good way to visualize the data in order to answer the questions I&#8217;m curious about, so here are my notes along the way. X axis is date, Y axis is total cost on that day, color is how it compares to the average price it is (lower price than average = blue, higher = orange).</p>
<p><strong>Milk</strong></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_47_42-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28331" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_47_42-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_47_42-sachachua.com_8080_grocery_analysis" width="585" height="136" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_47_42-sachachua.com_8080_grocery_analysis.png 585w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_47_42-sachachua.com_8080_grocery_analysis-280x65.png 280w" sizes="(max-width: 585px) 100vw, 585px"></a></p>
<p>Milk consumption is pretty straightforward. Every week, we use around 0.6 bags of milk (~2.4L) &#8211; more when J- and her friends are over (teenagers!). The price of milk has stayed at $4.97 per 4L, except for the time we bought a slightly more expensive type of milk (~Oct 2013) and the time in June 2014 when a smaller size was on sale, so we picked up one of those instead.</p>
<p><strong>Eggs</strong></p>
<p>&nbsp;</p>
<p>We used to buy extra-large eggs, but the supermarket close to us stopped carrying 18-packs of those, so we switched to 18-packs of large eggs instead.</p>
<p><em>Extra-large eggs</em></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_45_34-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28329" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_45_34-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_45_34-sachachua.com_8080_grocery_analysis" width="583" height="128" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_45_34-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_45_34-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p><em>Large eggs</em></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_46_07-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28330" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_46_07-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_46_07-sachachua.com_8080_grocery_analysis" width="585" height="128" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_46_07-sachachua.com_8080_grocery_analysis.png 585w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_46_07-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 585px) 100vw, 585px"></a></p>
<p>The price of large eggs is stable at $4.27 for 18. We use ~11 eggs a week.</p>
<p><strong>Things we buy when they&#8217;re on sale</strong></p>
<p><em>Canned tomatoes</em></p>
<p>We stock up on canned tomatoes when they go on sale, since they&#8217;re easy to store.</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_50_19-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28332" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_50_19-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_50_19-sachachua.com_8080_grocery_analysis" width="583" height="129" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_50_19-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_50_19-sachachua.com_8080_grocery_analysis-280x62.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p>&nbsp;</p>
<p>We probably use ~3 cans a month. The sale price has drifted up from $0.88 to $0.97, while the regular price is a little bit over $1.50.</p>
<p><em>Butter</em></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_52_53-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28333" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_52_53-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_52_53-sachachua.com_8080_grocery_analysis" width="583" height="128" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_52_53-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_52_53-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p>We haven&#8217;t bought butter at full-price in two years. The sale price for unsalted butter tends to be between $2.77 and $3.33, while the regular price is $6+.</p>
<p><strong>Produce</strong></p>
<p><em>Strawberries</em></p>
<p>I like strawberries, but I stopped buying them for a long time because they seemed like such an indulgence and the sweetness tended to be hit-or-miss. This year, I gave myself permission to splurge on strawberries in season.</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_55_25-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28334" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_55_25-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_55_25-sachachua.com_8080_grocery_analysis" width="583" height="131" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_55_25-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_55_25-sachachua.com_8080_grocery_analysis-280x63.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p><i>Bananas</i></p>
<p>We seem to go through banana phases. When we hit banana overload, we stop for a while.</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_57_54-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28335" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_57_54-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 20_57_54-sachachua.com_8080_grocery_analysis" width="583" height="127" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_57_54-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-20_57_54-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p>&nbsp;</p>
<p>The colours here are just due to floating point imprecision. Bananas have actually stayed the same price for the past two years ($1.26/kg).</p>
<p><em>Apples</em></p>
<p>We often get gala apples:</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_01_18-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28336" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_01_18-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 21_01_18-sachachua.com_8080_grocery_analysis" width="583" height="132" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_01_18-sachachua.com_8080_grocery_analysis.png 583w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_01_18-sachachua.com_8080_grocery_analysis-280x63.png 280w" sizes="(max-width: 583px) 100vw, 583px"></a></p>
<p>We like picking up ambrosia apples during the rare occasions they&#8217;re available. Last winter was a good one for ambrosia apple availability.</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_03_09-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28337" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_03_09-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 21_03_09-sachachua.com_8080_grocery_analysis" width="582" height="127" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_03_09-sachachua.com_8080_grocery_analysis.png 582w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_03_09-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 582px) 100vw, 582px"></a></p>
<p><strong>Chicken</strong></p>
<p><em>Whole chickens</em></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_05_03-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28338" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_05_03-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 21_05_03-sachachua.com_8080_grocery_analysis" width="584" height="127" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_05_03-sachachua.com_8080_grocery_analysis.png 584w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_05_03-sachachua.com_8080_grocery_analysis-280x61.png 280w" sizes="(max-width: 584px) 100vw, 584px"></a></p>
<p>Lots of whole chickens lately, because of the rotisserie.</p>
<p><em>Chicken quarters</em></p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_07_49-sachachua.com_8080_grocery_analysis.png"><img loading="lazy" class="alignnone size-full wp-image-28339" src="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_07_49-sachachua.com_8080_grocery_analysis.png" alt="2015-07-03 21_07_49-sachachua.com_8080_grocery_analysis" width="584" height="129" srcset="https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_07_49-sachachua.com_8080_grocery_analysis.png 584w, https://sachachua.com/blog/wp-content/uploads/2015/07/2015-07-03-21_07_49-sachachua.com_8080_grocery_analysis-280x62.png 280w" sizes="(max-width: 584px) 100vw, 584px"></a></p>
<p>Our main protein, although we also buy a fair bit of beef and pork, and chicken drumsticks/thighs when they&#8217;re on sale.</p>
<p>There&#8217;s more I haven&#8217;t explored yet, but I figured I&#8217;d put together these little observations along the way. =)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can <a href="https://sachachua.com/blog/2015/07/exploring-our-grocery-numbers/#comment">view 2 comments</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2015%2F07%2Fexploring-our-grocery-numbers%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">Building tools for myself: grocery receipt tracking</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2015/05/building-tools-for-myself-grocery-receipt-tracking/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2015-05-27T07:10:04Z</updated>
    <published>2015-05-27T03:08:00Z</published>
    <category term="quantified" />
		<id>https://sachachua.com/blog/?p=28229</id>
		<content type="html"><![CDATA[<p>Today was another good day for writing code. I finally built that quick-feedback receipt item tracker I&#8217;ve been thinking about for a while. I&#8217;d built a simpler version into Quantified Awesome (not linked from the main interface, since it was very rough), but I found the browser roundtrip too disruptive. Today&#8217;s implementation uses Angular for faster responses. For good measure, I&#8217;ve got a NodeJS server proxying the requests to either my local development copy of Quantified Awesome or to my production version.</p>
<p>Here&#8217;s a screenshot:</p>
<p><a href="https://sachachua.com/blog/wp-content/uploads/2015/05/2015-05-26-22_21_38-sachachua.com_8080_receipt.png"><img loading="lazy" class="alignnone size-medium wp-image-28230" src="https://sachachua.com/blog/wp-content/uploads/2015/05/2015-05-26-22_21_38-sachachua.com_8080_receipt-640x82.png" alt="2015-05-26 22_21_38-sachachua.com_8080_receipt" width="640" height="82" srcset="https://sachachua.com/blog/wp-content/uploads/2015/05/2015-05-26-22_21_38-sachachua.com_8080_receipt-640x82.png 640w, https://sachachua.com/blog/wp-content/uploads/2015/05/2015-05-26-22_21_38-sachachua.com_8080_receipt-280x36.png 280w, https://sachachua.com/blog/wp-content/uploads/2015/05/2015-05-26-22_21_38-sachachua.com_8080_receipt.png 1062w" sizes="(max-width: 640px) 100vw, 640px"></a></p>
<p>On the left side, I have a scanned receipt in Autodesk Sketchbook Pro (or a paper receipt on the side). On the right, my autocompleting tracking interface. It&#8217;s not pretty, but it fits what I have in my head. I like the way that typing in the first few characters of the receipt line item is often enough to uniquely identify the receipt item type and retrieve the price history. This means that as I track, I also get a sense of the price trends and what a good sale is.</p>
<p>Aside from keeping track of the prices, I&#8217;m also looking forward to analyzing our consumption by category on a more regular basis. I did a few analyses along those lines before (<a href="https://sachachua.com/blog/2013/04/quantified-self-a-year-of-grocery-data/">here&#8217;s a year of data</a>), but it might be neat to have that kind of feedback on a daily basis. Entering my receipt archive was easy. I ended up typing in the receipts from here to January because it was fun. =)</p>
<p>Next up: fast categorization, some graphing… I&#8217;m also looking forward to making a quick price book interface. Hmm, if I dust off that grocery list tool I had started building into Quantified Aweome and I integrate the price book, that might be handy.</p>
<p>You can <a href="https://sachachua.com/blog/2015/05/building-tools-for-myself-grocery-receipt-tracking/#comment">view 1 comment</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2015%2F05%2Fbuilding-tools-for-myself-grocery-receipt-tracking%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry>
</feed>