Since Kobe Bryant surpassed Michael Jordan in “career points” scored this past Sunday, much has been written about who is better, etc. If a) you’ve heard enough already, or b) you don’t care about sports at all, then you may stop reading now. There is a finer point about “data definitions”, but I’ll leave that for later. First, back to basketball player egos:
There is one thing about this debate that puzzles me: why regular season stats alone are used in the “career” totals. I can understand leaving out the All-Star game stats, as the All-Star game is largely a meaningless pick-up game (and crazy points-fest). But playoffs? NBA basketball is all about the playoffs. That’s where the games really matter, the real drama unfolds, and Hall-of-Fame “careers” are made.
Bryant and Jordan have both had considerable success in the playoffs, but somehow the points they scored during these crucial games don’t count to their career totals? I don’t get it. If there’s a compelling reason to leave out playoff stats from “career totals”, I’m unaware of it.
And if you take into consideration playoff point totals when tallying career stats, Bryant hasn’t passed Jordan quite yet:
Of course you can make the argument that this just postpones the inevitable by a few weeks, as Bryant will soon surpass Jordan in total points scored including the playoffs. So who cares?
To me, it just shows how we can get wrapped up in debates about numbers without stopping to consider the “data definitions” – exactly what are we comparing? How is this data collected, what is included and what is not included? Does it even make sense?
Did you know all those dramatic game-winning shots these two players made in crunch time aren’t even included in their career totals?
Like this one:
And these ones:
I bet you didn’t. If you did, can you defend it? I can’t.
At some point in the next month or so, Kobe will pass Jordan in the amount of total points he has scored in both the regular season and the playoffs combined. There will be no hugging at center court, no interviews, no headlines or blog posts about the stats. That’s not such a bad thing, though, I guess.
As for who is the better scorer? Jordan scored at a higher rate, but took two extended breaks during his career. Bryant took no such breaks, and only had one considerable setback to injury, so he racked up points at a slower, albeit unabated pace. And for all the flak Bryant has taken for being a ball hog, try comparing his career Assists with Jordan’s. He passed Jordan in assists two years ago.
Thanks for indulging me,
In June of this year I published my first book with O’Reilly Media called “Communicating Data with Tableau”. It has been great to hear from readers around the world, and I’m grateful for the reviews that have been published.
Here is a sampler that includes the entirety of Chapter 1 (entitled “Communicating Data”) in pdf format, freely available for anyone to download and share (click to download the pdf):
In Chapter 1, I share my thoughts on the concept of creating and sharing data visualizations as a particular form of the communication process. Thinking of it that way has been very helpful for me, because it frames the activity as an attempt to affect the minds of others.
Just like other types of communication such speech and even body language, its success depends on many factors, some obvious and some subtle. It is subject to problems of various kinds, as identified by the fathers of information theory, Shannon and Weaver. And critically, communicating data touches on both the rational and the emotional.
Ultimately, I outline 6 Principles of Communicating Data, for which I have also created a handy online checklist. These principles have helped me focus my efforts and avoid some common pitfalls that I have fallen into in the past, such as failing to identify and know my audience, or only considering a subset of the relevant data.
Thanks for visiting, and please be sure to send me a note to tell me what you think about these resources, and what you would add/edit/remove.
Vox published an interesting post today called “America has stopped paying attention, but Ebola is still ravaging Sierra Leone”. It made me wonder whether it’s just America that has stopped paying attention, or if in fact other parts of the world have moved on as well. I turned to Google Trends to look at relative search popularity of the string ‘ebola’ over time for various countries. Here’s what I found:
A quick glance suggests that other unaffected countries have moved on as well. At least these nine have. More specifically, people in these other countries are also using Google to search for the English word ‘ebola’ far less frequently than they were earlier in the year, especially during early to mid October, when the hype hit it’s peak (except in India, where search was highest in early August).
One interesting country to look at is Japan. The dashboard above seems to indicate that no one in Japan cared at all about ebola, all year long. Is that true? No, it’s not true, and it highlights one of the limitations of using this type of data to answer this question. If you do a similar Google Trends search for エボラ, the Japanese word for ‘ebola’, here’s what you get:
It helps to understand exactly what your data is telling you, and what it isn’t telling you.
Ebola is the same word in English, Spanish, Portuguese, German, Italian, and Hindi, so the other countries probably don’t have a similar problem. I wasn’t able to find the Pashto or Dari (Afghanistan) translations of the word “ebola”, but suffice it to say that Google search trends are far less effective a proxy for popular interest in Afghanistan, where only 5.9% of the population uses the internet, according to The World Bank.
Finally, if we compare relative Google search popularity for ‘ebola’ in heavily affected countries like Liberia, Sierra Leone, and Guinea, here’s what we find:
- Get the raw data Excel file here
- Since Google Trends only allowed me to compare 5 countries at a time, I had to run two separate queries, with United States included in both queries to maintain a common reference point of comparison.
- After running the queries, I downloaded the data as a CSV by clicking on the gear icon in the top right corner of the Google Trends page.
- I combined both CSV downloads into one spreadsheet and used the Tableau Reshaper Excel Add-in (Windows only) to convert the resulting cross-tab table into a long list of data values – a single row for each week for each country.
As always, let me know if you have any thoughts about this topic, my approach to understanding it, or the visualization I created to communicate my findings.
Thanks for stopping by,
At the Tableau Public blog, we’ve chosen to focus on political data visualizations during the month of October, since election day in the United States is right around the corner. We’re using the hashtag #VizTheVote to collect our posts and to encourage others to share their thoughts on an aspect of our world that is rich with data (or at least should be) and is also ripe for visualization.
In this blog post, I’m going to show you how to take advantage of a seldom-used mapping feature in Tableau Public 8.2: built-in U.S. Congressional District shapes. First, let’s look at a viz showing the 113th House of Representatives by either age or tenure, then I’ll go into detail about how it was made:
Step 1: Get the Data
If you look at the Wikipedia page showing the “List of current members of the United States House of Representatives by age“, it looks like this:
I copy and pasted this table into Excel and added a column indicating which party each politician belongs to. Step 1 done.
Step 2: Structure the Data
This table is great, but notice the first column – “District”. It combines the state and the congressional district number into one geographic field. In order for Tableau to recognize the congressional district and apply the correct shape, these two fields need to be separated into a “District” column and a “State” column. I did this in Excel using “Text to Columns”. Here’s an image of the final Excel spreadsheet I used to build the viz:
Just the number itself suffices to automatically draw congressional district shapes in Tableau, but there are a few other variations that will also work, as shown in the Geographic Role table below:
Step 3: Visualize the Data
Connect a new Tableau workbook to this spreadsheet and make sure the geographic role for District is set to “Congressional District” (right click on the District pill). Then, do the following:
- Double click on “Latitude (generated)” (goes to Rows) and “Longitude (generated)” (goes to Columns)
- Drag both “District” and “State” to the Detail shelf
- Change the Marks type from Automatic to Filled Map
- Drag “Age” to the Color shelf (Age is a calculated field calculating the DATEDIFF between today and the age of birth)
Here’s an image of the map that shows the age of each member of the House of Representatives, with darker colors indicating older reps:
Step 4: Create the Dashboard
This last part is Tableau 101 and a maybe a little bit of 201. I won’t go into detail about how to create the additional Sheets and combine them on a single Dashboard, as I go into detail on how to do this in Chapters 13 and 14 of my book Communicating Data with Tableau.
Interesting to notice a few things: that congressional districts are split on a coastal vs land-locked basis, that some members of the House are quite old and have hung on to their seat upwards of 5 or 6 decades (John Dingell, Michigan 12). Mostly, though, I hope you notice that creating choropleths of congressional districts in Tableau is quite easy.
For more data at a Congressional District level, check out the U.S. Census Bureau “American Fact Finder” table, or use this CSV I downloaded from the Census site that is ready to import directly into Tableau.
Thanks for stopping by,
I’m a big fan of small multiples in data viz, and I’m somewhat of a “Maphead” as well. Naturally, combining the two together results in a visualization that I’d vouch for almost any time. Kyle Kim of the LA Times just published a stunning series of 192 maps showing drought levels in California by week, going back to January 4, 2011. Small Multiple Maps can take up a lot of space, but they’re very effective at showing change over both time and geography. Judge for yourself.
I look at a lot of Tableau Public visualizations, but I don’t see a lot of “small multiple maps” out there. It’s not that they don’t exist, they’re just rare. They’re actually pretty easy to make, so I thought I’d show you one and walk you through how to create one for yourself. Here’s a small multiples map showing FEMA declared disasters, by county, since 1953:
If you want to follow this brief tutorial, first download this Excel file of FEMA disasters.
How to Make a Small Multiples Map in Tableau
There are at least two different ways you can create small multiples maps in Tableau. One way is to create a bunch of individual maps as Sheets and drag and drop them all onto a single Dashboard. The other way is to create a single Sheet with a grid of small maps. This blog post covers the second method, which has the advantage that the “OpenStreetMaps” attribution only occurs once in the bottom left corner, instead of once for each multiple.
Step 1: Create a basic map
I started by creating a basic choropleth map of continental US counties. I double clicked on the county data field (Declared County/Area) and then dragged “Number of Records” to the Color Shelf. I filtered out the states and territories not in the “lower 48″, I changed the Color to red, set country shape borders to “None”, and edited the Map Options to only show the coastline and borders:
Step 2: Create a “Row Number” and “Column Number” Calculated Field
There are 22 different “Incident Types” (so, plenty of material for Hollywood), but for this project I wanted to create a 3X3 grid, so I needed to identify the top 9 Incident Types. From a simple bar chart showing counts of Incident Type over the full date range, I found that (in descending order of frequency) Severe Storm(s), Flood, Hurricane, Snow, Fire, Severe Ice Storm, Tornado, Drought and Coastal Storm were the ones to include.
I wanted to put each of the 9 top Incident Types in its own box on the 3X3 grid starting with the least frequent type of the 9 (Coastal Storm) in the top left and working my way down to the most frequent (Severe Storm) in the bottom right. Each of the nine then would have a Row Number (1-3) and a Column Number (1-3). I created two new Calculated Fields (right click in the Dimensions or Measures area and select “Create Calculated Field”) to place each in its proper location:
Step 3: Use “Row Number” and “Column Number” to create the grid
Now that the grid location fields are created, I just needed to drag “Row Number” to the Row Shelf and “Column Number” to the Column Shelf, and change both from SUM to a Dimension. When I used a Quick Filter to only include the 9 top fields, I had my small multiples view:
Step 4: Formatting
The rest is mostly clean-up, really. Hiding the Row and Column Headers, customizing the Tooltips, adding a date Quick Filter, and placing the small multiples map on a Dashboard. In the Dashboard, the titles for the 9 boxes are actually 9 very similar Sheets with Incident Type and Number of Records added as Text and filtered to just one of the nine incident types.
What do you think? Easy to make, right? Pretty effective as well, wouldn’t you say?
I’d love to hear your thoughts, and thanks for stopping by,
PS. Coastal Storms seems to be occurring in rather… non-coastal areas in the country. Not entirely sure why, but I’m guessing it’s a misclassification by FEMA. If anyone knows the story, I’d love to know.
“All the rivers run into the sea, yet the sea is not full; to the place from which the rivers come, there they return again.” Ecclesiastes 1:7
It was purely coincidental that during #MappingMonth a Tableau Public author reached out to me and asked me if it was possible to create a map with rivers as interactive polylines. He was in the process of gathering coordinates manually from Google Maps, and he felt there had to be a better way. I knew he was right – if we could find a data set with latitude and longitude coordinates for each river, then we could use the Path shelf to draw each river as a line on a world map.
What, exactly, is the use-case for a map of the world’s rivers? I admit I don’t quite know, but it was an interesting challenge, and certainly made for a fun and educational project for my two sons to help me with. You gotta get creative to make sure they learn something during the summer.
How to Map the World’s Rivers
Step 1: Get the Shapefile
To start with, I had to find the Shapefiles for all of the world’s rivers. At least the big ones. As I mentioned, Allan Walker pointed me in the direction of NaturalEarthData.com’s 1:10m Physical Vectors, and uber map geek Nathaniel Kelso helped me find the files to download (he also runs a github account with links to download every NaturalEarthData download file). This resource is truly amazing – it has shapefiles for coastline, oceans, reefs, glaciated areas, and a few more – all freely available. I downloaded a zip file of rivers and lakes centerlines. Step 1 complete.
Step 2: Convert the Shapefile to CSV
This step used to be arduous and time consuming until Alteryx published a Shapefile to Polygon Converter to their Analytics Gallery. It’s a web app that requires a free login, and allows you to take that zip file you just downloaded and turn it into a CSV or a TDE (Tableau Data Extract). Most people are familiar with CSV, so let’s follow that option. Here is the CSV file that the Alteryx converter created for me. Here’s what the CSV file looks like – in particular, note the fields “Polygon ID”, “Subpolygon ID” and “Point ID”. They will play an important role in step 3:
Step 3: Connect Tableau to the CSV and create a Map
Now that you’ve got your CSV, it’s a fairly easy step to use it to create a map in Tableau. Start by connecting Tableau to this CSV, and then do the following in a new Sheet:
- Double click Latitude (goes to Rows) and double click Longitude (goes to Columns)
- Change Marks from Automatic to Lines
- Drag Polygon ID and Sub Polygon ID to the Detail Shelf
- Drag Point ID to the Path Shelf
To complete the viz, I colored the rivers by Scalerank, added two Quick Filters (Scalerank and river Name), formatted the Tooltips, and added the map along with a histogram of Scalerank to a dashboard. I asked my son Aaron to pick the title font, and he picked Brush Script MT because he said he thought the letters looked “rivery”. I couldn’t argue with that, so we made a PNG with transparency and added it as an image (because Brush Script MT isn’t a safe web font).
Now here’s to you, Mr. Robinson
I said I had a surprise, and here it is. I’ve been playing around with (read: obsessing about) different map projections lately. I figured out how to convert the latitude and longitude coordinates into x, y values of the Robinson projection, a projection that the National Geographic Society used from 1988 to 1998, before ditching it in favor of the Winkel tripel. I won’t get into too much detail here, but suffice it to say, the Robinson is a pseudocylindrical projection that’s really only suitable for creating thematic maps of the entire world. Compare it with other projections using this handy summary image. More to come on this soon, but for now, here is the rivers dashboard in the Robinson projection:
Notice that Greenland doesn’t loom as large as it does in the Mercator projection, which distorts it’s size quite a lot (it’s actually 1/8 the surface area of South America). Also notice, however, that the Robinson projection “curves” inward at both poles (latitude lines get shorter as you move away from the equator) – this means that if you were to zoom in to the street level in, say, Finland, streets that cross at a right angle in the real world wouldn’t appear to on the map. That’s what you get with Mercator in return for some area distortion. Every map has its pros and cons.
If you’re interested in building a Robinson projection yourself, here are the equations to make the conversion within Tableau. I recommend either drawing the coastlines and graticules yourself, or finding a good Robinson map image and adding it as a Background Image, fixing the position carefully. Here is the map image I used. It works fairly well when zoomed out to show the entire world, but I hid the Zoom controls since it really doesn’t work well when zoomed in.
Thanks for stopping by,
Since moving to the Seattle area in early 2013, we’ve been doing our best as a family to tromp our way through the lush, scenic trails around us, guided by a helpful little orange book entitled “Best Hikes with Kids: Western Washington & the Cascades“. At first, my gentle suggestion (read: stubborn insistence) to hit the trails was met with some light resistance (read: outright mutiny) from my two iPad-wielding boys, but not so much any more, I’m happy to say.
Being a data guy, I wanted to track our every step through the Pacific Northwest, so I downloaded an app for my iPhone called Backpacker GPS Trails Pro. It’s great – it tracks our coordinates and lets us capture photos or video along the way, among other things. The default dashboard on TrimbleOutdoors.com is nice and all, but, well – I told you I was a data guy – I wanted to make my own.
First, I’ll show you what I made to track our treks, and then I’ll show you how I managed to go from GPS to viz in 7 steps.
How to go from GPS to Viz – 7 Steps
STEP 1: RECORD the trip & SYNC the app
This is the best part. Get out there, enjoy the trail, and make sure to hit the start button on the app. Here are some screen shots from a recent trip we took:
STEP 2: DOWNLOAD the data in .gpx format
First, I had to log in to my account on TrimbleOutdoors.com. You may have a different GPS app, which is fine, but just make sure it’s one that allows you to download your data. If your app’s site lets you get the data in spreadsheet form, all the better. Mine didn’t, so I had to first get the .gpx file. Here’s a screenshot of the download page:
STEP 3: CONVERT the .gpx file to .txt
Next, I had to get the data into a text file, which was quite easy to do once I found a useful site called GPS Visualizer. It’s free to use (they accept donations), and you just indicate that you want a Plain text output, choose the .gpx file from your Download folder, check the boxes to add estimated fields, and Convert. Here’s how that looks:
STEP 4: CLEAN UP the data spreadsheet
This step involves opening the .txt file from step 3, getting rid of any header rows, moving the multimedia files to the bottom of the list, combining multiple .txt files into one spreadsheet and giving each its own unique hike name. Here is a screenshot showing the original .txt file and the fully formatted spreadsheet:
STEP 5: CONNECT Tableau to the cleaned up .txt file
Open Tableau Desktop (or Tableau Public), and click “Connect to Data”, select Microsoft Excel, navigate to your hike spreadsheet, drag the sheet into the middle area, and then click “Go to Worksheet”.
STEP 6: CREATE your viz
Use Tableau’s UI to drag and drop your data fields onto the canvas and create Sheets, Dashboards and Stories. I used a few advanced features in this workbook, including:
- A Custom WMS (only works with Tableau Desktop) from USGS – US Topographic Basemap. Click Map > Background Maps > WMS Server, and enter: http://basemap.nationalmap.gov/ArcGIS/services/USGSTopo/MapServer/WMSServer?
- A web page object on the Dashboard that dynamically links to each hosted photo on TrimbleOutdoors.com based on the URL column in my data. Note that I also changed the size of the photos since the large images took a long time for the Trimble Outdoors servers to load. Smaller photos were obtainable using a URL parameter (“?size=Size265x180″). Drag a web page object onto the dashboard, click OK, and then select Dashboard > Actions > Add Action > URL and fill out the dialog box as follows:
STEP 7: PUBLISH to Tableau Public & EMBED in your website
Can’t get much easier. Click Server > Tableau Public > Save to Web as… (or in Tableau Public, File > Save to Web as) and copy and paste the embed code into your CMS.
The Last Leg
This was a fun personal project that I made for my boys, so I took some extra steps to add design elements to the dashboard. I was shooting for a hand-made / trail map / scrap book feel, hence the hand-written font instructions, compass image, photo corner tacks, tally mark image, etc. The mountain shape cut-away at the top of the viz is actually from a photo of the Olympics here in Washington, so I tried to stay true to the territory with each design element.
Let me know if you make good use of this tutorial, and if you have any other questions about how I made it.
Thanks for stopping by, and happy trails!
Every data set contains a myriad of stories. I’m using the word “story” in a liberal way here, not necessarily in the “bedtime story” kind of way, or even the “headline news story” kind of way. By “story”, I simply mean a sequence of data-driven statements that progressively explain the world we live in.
With even simple data sets, these types of data stories abound, some more interesting than others. Whenever I run workshops along with my Tableau Public teammates, we’re amazed at how each group, given the exact same data set, comes up with unique insights.
Earlier this month the UN celebrated World Population Day – a day to “raise awareness of global population issues” according to its Wikipedia page. I decided to play a game and see how many different data stories I could tell with the a simple spreadsheet of population, birth rates and death rates for every country since 1960 as obtained from the World Bank’s online data repository.
I came up with six simple “types”: 1) change over time, 2) drill-down, 3) contrast, 4) intersections, 5) different factors, 6) outliers and trends. Use the tabs across the top to see the different stories, and use the tiles within each story to read each story point:
I ended this experiment with a feeling that I was just scratching the surface, and that there are many more data stories to be found and told from even this simple data set on world population.
I encourage you to consider these six story points types as thought-starters for whatever data set you are working on. Ultimately your data will have its own story, and it will likely be a combination of these building block story types and others that are out there. Also, help me out by downloading the workbook and see how many more you can tell. Leave a comment below with your version, or tweet me a link to it.
Thanks for stopping by,
In a section of the first chapter of Communicating Data with Tableau (O’Reilly, 2014) I lay out six principles of communicating data: 1) know your goal, 2) use the right data, 3) select suitable visualizations, 4) design for aesthetics, 5) choose an effective medium and channel, and 6) check the results.
These principles address more than the visualization step alone, they address the whole process from crafting a message to delivering it and actually affecting another person or group of people in a meaningful way. They involve self-awareness (what am I trying to accomplish here?) as well as empathy (how will this impact my audience?). It’s not just a “numbers game”; it’s also about words, images and emotions.
I converted these six principles into a simple checklist that I could use to remind myself of all the important ingredients that go into a successful communication effort, including many that I often gloss over or forget entirely. It’s yours as a pdf to download, use the interactive version below, or view it as its own tab. I hope you find it useful.
I don’t claim that this checklist is either exhaustive or revolutionary. There are many other principles that could be articulated, and most of them are common sense. I’d love to hear yours. If there’s anything sophisticated in these six, it’s principle #3, which is based on the work of Jock Mackinlay, my esteemed colleague here at Tableau.
We’re privileged to live in a world that comes after the previous half century, in which the work of pioneering researchers like Jock and others (Schneiderman, Card and Bertin to name a few) established the foundation of effective visual encoding of numerical information – or how we interpret charts and graphs.
Let me know what you think by leaving a comment below, and thanks for stopping by,
I’m excited to announce that my first book, Communicating Data with Tableau, has been published by O’Reilly Media and is now available to purchase in ebook or print (in full color) at the O’Reilly online store or Amazon. Many thanks to my editor Julie Steele for working with me throughout the past year of writing, and to my family – my wife Sarah and my two boys Aaron and Simon – for dealing with my insane sleeping hours and sporadic moodiness over the past twelve months.
Of course a million thanks to all of the ingenious and incredibly generous members of the data visualization community – Tableau users and employees in particular. You’ve taught me much of what I included in this book.
What is it about?
This book is my attempt to show 1) how to communicate data well, and 2) how to use Tableau to do so. It’s not intended to be a comprehensive Tableau user manual, so not every feature is covered (for that type of resource, I’d recommend Tableau Your Data! by Dan Murray, as well as the helpful online tutorials available at the Tableau Software website).
Who is it for?
I wrote this book for anyone who needs to get a quantitative message across to an audience – analysts, journalists, engineers, marketers, students and researchers. Anyone with a modern browser can view and interact with the example projects that have been published to Tableau Public (free application available here), and readers will need Tableau Desktop 8.1 or 8.2 (free 14-day trial available here) to open the accompanying Tableau workbook files. There aren’t any examples that deal with the features that are new to version 8.2, which was not available to the public when the book went to print earlier this month. Expect a revision with 8.2 examples to follow later in the year or early next year.
How is it Organized?
The book is organized into 14 chapters that each deal with a different aspect of communicating data. After covering general principles and the Tableau user interface in the first two chapters, the book touches on both traditional as well as creative examples of communicating data: simple numerical comparisons, rates, ratios proportions and percentages, central tendency and variation, multiple variables, time series data, positional data, and combining multiple visualizations in dashboards.
In What Style is it Written?
While there are occasional philosophical musings (mostly in chapter 1) and even a fictional interlude into the world of “Chesslandia” in chapter 7, the book is primarily practical in nature. In 334 pages there are over 45 examples and loads of useful tips and tricks. If you’ve read my blog posts at this site, you’ll find the tone familiar. Some of the content is pulled from blog posts I’ve written over the past three years, but most of it is brand new.
For example, the book culminates with this multi-Sheet, multi-Dashboard workbook about the global expansion of the internet, as captured by World Bank data:
What was it like writing it?
Wow, it was at times elating, at times excruciating. It took many times longer to write than I originally scheduled (no surprise there), and the review and production processes, while affording me with many learning opportunities, were not exactly painless. As I mentioned, I felt very lucky throughout the writing process that O’Reilly and Julie Steele were willing to work with me, a first-time author. I’m sure many of my multiple “new deadline resolution” emails made Julie chuckle, but I never felt rushed or pressured to write anything other than the book I wanted to write. I can’t say how much I appreciate that.
Since my day job is as Sr. Manager of Tableau Public, and considering my blog regularly features Tableau Public “vizzes”, it’s a testament to the sheer joy of the software (and my love for working with data) that I didn’t O.D. on everything somewhere along the way. By the way, this book wasn’t sponsored in any official way by Tableau Software the company – it’s my personal project entirely. That being said, I credit my colleagues at Tableau, and none more so than my VP Ellie Fields along with the entire Tableau Public team, with providing me moral support and inspiration all along the way. Also, a special thanks to Andy Cotgreave for saying a few words on the back cover. Andy, you’re a class act, and I look forward to returning the favor. Without a doubt, I’ve found my tribe.
I’d like to hear from you!
If you buy it and read it, first, thanks for considering what I had to say. It’s a great honor to me that you would devote your time to hearing me out. Second, please let me know what you think! Email me (benjones at dataremixed dot com) or tweet me (@DataRemixed), and if you write an online review, I’ll be forever in your debt for the input and feedback – both positive and constructive. I fully intend to write more books in the future, so the more I hear about what worked for you and what didn’t work for you, the better my next books will be.
Thanks for stopping by,