Visualizations, process Jenny Richards Visualizations, process Jenny Richards

Home Grown Data: A Dashboard Evolution

A few years ago, urban chickens were all the rage, and when Seattle raised the limit of birds from 3 to 6 each home could keep, we built a coop and added 4 birds to our little farm. Along with our planting and harvesting calendar, we started recording egg production from the 4 birds: a bossy Barred Rock, an Australorp with mangled toes, and 2 seabrights - tiny but striking birds that produced perfect bite-sized eggs. It was nearly two years of paper notes before I thought of bringing that data into Tableau. Thus began my ongoing affair with home grown data. 

Astrolorp.png

Egg Tracker V1

When I sat down to build my first egg tracker viz, I had one primary goal: to stop using paper to track egg production. This coincided nicely with the addition of the Google Sheets connector, which allowed me to record daily egg counts online and update the viz automatically. My data was remarkably simple, and looks like this in Google sheets: 

GoogleSheetsImage.PNG

I used the data to do a simple scatterplot and bar chart showing production by big birds versus small birds, and I even added some bird images. 

But that wasn't all. We'd noticed over the couple of years the variation of egg production based on hours of light each day. I joined the egg counts to data on daylight hours so we could get a better sense of the relationship. Plus I loved the rhythm of the daylight sine wave as a bar chart. Not very practical, but I loved it nonetheless. The data looked like this: 

DaylightHoursData.PNG

The resulting viz was a little simplistic, but I accomplished what I set out to do. I digitized our tracker. 

Egg Tracker V2

A couple of months after publishing V1, I took another look at the tracker and decided I needed to improve the style a bit. While the first version was all about syncing to Google Sheets, the second was about making the look and feel a little more consistent. 

I picked a different color palette, used solid shapes instead of images of the chickens, and stylized the daylight wave a little. But most importantly, I used the same data source for V2 - still relying on the simple counts based on chicken size. 

Egg Tracker V3

V2 sat out there for a whole year, and I updated the data in Google Sheets semi-regularly. Then we did something I hadn't planned: we got new chickens and specifically picked for different colored eggs. Because we'd made the effort on the egg color, I knew I'd need to add that dimension to my data...but what happens now to the couple of years of existing data? 

This is where I wrestle with the home-grown angle - having to re-assess the data decisions when making a substantive change to the data source. I had considered that when we first got the original 4 chickens, but two conditions gave me pause: 

  • The large birds both laid brown eggs.

  • The small birds both laid white eggs.

So, how to differentiate?

I created a bit of an algorithm to break up the egg data from the past. 

  1. On days when there were 2 eggs of the same size, I 'assigned' 1 egg to each bird.

  2. All other days I alternated between birds, with the occasional preference to the Australorp.

Why? We'd observed a couple of phenomena in the years we'd had the birds. They always laid at the same time. Meaning, when one bird was laying, the other one was too. When one stopped, the other did too. But we thought we figured out which brown egg went with which bird (the Australorp's eggs were a paler pink brown and speckled a little), and we had more of those eggs (60/40).

I had slightly different goals around V3.

I disconnected the viz from Google Sheets. I wasn't updating it as often as I planned, but there was a more practical matter at hand: contamination. When we bring eggs into the house, we use a pencil to record the count and to write the date on the egg, drop the egg into a carton, and wash our hands immediately. Unwashed eggs keep out of the fridge just fine, and even if there's not a speck of bird poop on them, eggs are dirty and have plenty of germs. I want to wash my hands as soon as I can, but I don't want to wash my hands then go back to the eggs to mark the date & count (with a contaminated pencil). I sure as heck don't want to open up my phone to make notes before I've washed my hands. So practically speaking, doing all that first then washing my hands seems most efficient. 

That means I'm going to be recording on paper anyway. Plus, our dog sitter occasionally grabs our eggs, and it's easier to record the egg count on paper than give him a Google Sheet link. Really, I'm not a germaphobe. But I do keep up with all the bird flus and really don't want it. So we maintain this process for out health - and that dictates my data access, in a way. 

My second goal for V3 was to simulate a calendar in the results. I wanted to look back, month by month, and see eggs each day. That's sort of how we do it on paper - so this was a natural way to look at the counts. 

I still wanted to see totals compared to daylight hours, but I was more interested in how each bird produced over time. Plus, the last few years already taught me what their egg laying cycles would do with the darkness - so I minimized that in V3 (but kept the sine wave). 

Finally, I used Viz in Tooltip to drill-down on each bird's production over time. It was pretty cool to see. 

The data looks pretty different than it did in the first two versions because of my changed goals. 

V3Data.PNG

Oh, for this round we added 2 birds - a Leghorn who produces big white eggs and an Olive Egger who was supposed to lay pale green eggs. Sadly, she died unexpectedly before she started laying, so you'll only see the new addition's white eggs in the mix. Also, white isn't in the palette so I used a very pale brown instead. It's a little more realistic anyway. 

There are a few weird data points that I can't explain - and I left them as-is in this version rather than exclude them. We've had the occasional 3-egg/2 chicken day when either someone laid an extra or we forgot to grab it from the egg house. I couldn't algorithm that away, so I merely designated it 'Egg 3' for the day. 

In the end, having data irregularities and changes to my sources has forced me to play with the structure of my data...especially when I'm trying to achieve a particular visual result. Is this right? Wrong? Doesn't really matter - the data reflects the irregularity of the seasons and the unpredictability of our tiny farm. And if that means I have to roll up my sleeves and muck out the data with every change, I'm OK with that. That's home grown data, to me. 

Read More