top of page
  • Ryan Brooks

Making Good Tables and Charts

Updated: Jan 25

Tips for Creating Effective and Engaging Tables and Charts


You will probably use tables and charts to analyze your data to find important patterns and key results for your nonprofit. You’ll work quickly to analyze your nonprofit’s program data or donor data, but you won’t spend time making everything pretty and professional.


Eventually, you'll need to present those tables and charts to your nonprofit's board members, donors, and others in an annual report, board presentation, or grant proposal.


In this post, we’ll offer lots of tips to help you make good tables (and a handful of tips on charts) that are professional and impactful.


Defining Charts and Tables

Let's get this out of the way.


A Table displays data in rows and columns. Those rows and columns are probably labeled, and information is delivered through numbers.


A Chart is a visual representation of your data. This could be pies, or bars, or lines, or dots, or whatever. Charts often include numbers for additional clarity, but they differ from tables because they present the data in a visual manner. Sometimes these are also called figures or graphs.


This is a Table


Image 1: Table displaying the number of meals served annually from 2017 to 2022.

Example of a table. The table depicts the number of meals served by year between 2017 and 2022.
Image 1 Description: Table 1 displays the number of meals served annually between 2017 and 2022. 2017: 5,000 Meals, 2018: 5,500 Meals, 2019: 5,750 meals, 2020, 6,000 meals, 2021: 6,250 meals, 2022: 6,500 meals. Total for all years displayed is 35,000 meals.

This is a Chart


Image 2: Bar chart depicting the number of meals served annually from 2017 to 2022.

Vertical Bar Chart - number of meals served 2017 to 2022.  The specific data isn't the point of the chart (in this context). We're simply giving an example of a chart to contrast it to a table.
Image 2 Description: Chart 1 is a bar chart that displays the number of meals served annually between 2017 and 2022. Starting on the left, 2017: 5,000 Meals, 2018: 5,500 Meals, 2019: 5,750 meals, 2020, 6,000 meals, 2021: 6,250 meals, 2022: 6,500 meals. Total for all years displayed is 35,000 meals. The bar chart includes labels for each bar to provide the exact values they represent.

Now that we're all on the same page about charts and tables, we can talk about how to make good ones.


Simple Table Formatting Tips


We'll start with a bunch of easy tips to make your tables look nice. These are my preferences and they should work for you in most situations.


Let’s start with a simple table that you might use for your own analysis. The table shown in Image 1 has a title and a couple of labeled data columns, but it's in rough shape. It's fine for your personal use, but I don't recommend putting this table in your annual report without some tweaks.


Image 1: Unformatted table in a spreadsheet that shows annual meals served from 2017 - 2022.

Unformatted table of meals served by year 2017 to 2022. Table also include total meals served during that entire period at the bottom
Image1 Description: Table X - Number of Meals served by Year (2017-2022). Title text is not wrapped and extends past the right border, top and bottom borders are not added, text is not centered, and numbers are not formatted (e.g. 5000 has no comma).

Let's get started and show our work as we go.


1. Include a top and bottom border on the entire table


2. Include a top and bottom border around the title of your table


3. Include a top and bottom border around the header row of your table (i.e. the row that labels the data below it. In this example “Year” and “Meals Served” are the headers)


4. The title should fit inside the left and right boundaries of the table. Wrap the title text, make the title row taller, or or merge rows to accommodate a long title.


Note, I don't use left and right borders on a table. The top and bottom borders define the width of the table, making left and right borders unnecessary (in my opinion).


Just doing items 1 - 4 , we have improved our table substantially. Check out Image 2 below to see our progress.


Image 2: Table in a spreadsheet that shows annual meals served from 2017 - 2022. Top and bottom borders have been added to the title, column headers, and the entire table. The title text wraps as well.

Table with top and bottom borders added to title, column headers, and table.  Title text wrapped.
Image 2 Description: Table X -after formatting changes. borders have been added to the top and bottom of the title, column headers, and at the entire table. The title text is wrapped and fits within the table's width.

We have more to do, but stick with it. These are easy changes.


5. Left justify the far left row labels and data under that label


6. Center data labels and data in the body of the table.


7. Hide unnecessary gridlines


8. Adjust the size of columns if they are unnecessarily wide or too narrow to fit the contents. Ideally, the columns are the same width, but that won't always be true.


With items 5 - 8 done, You can see in Image 3 below that our table is starting to look sharp.


Image 3: Table in a spreadsheet that shows annual meals served from 2017 - 2022. Left column (Year) data and header are justified left. Right column (Meals Served) data and header are centered. Columns are roughly the same width.

Table with additional formatting changes. Left column data is left justified, and right column data is centered. Columns are roughly similar size.
Image 3 Description: Table X -after additional formatting. Data and header in the left (Year) column are justified left and data and header in the right (Meals Served) column are centered. Column widths are now roughly equal size.

But, we can do more!


9. If you have a lot of rows, add a light gray (or blue or whatever) highlight to every other row to help the reader.


Also, if you have a very wide table with lots of columns, add a highlight to every other row to help the reader read across the table.


Keep the highlight very light. Your goal is to help the reader navigate the table, but you don't want to make it difficult to see the data behind - especially for people with vision impairments.


10. If you have a “Total” row or any other piece of data you want to stand out as important or different, make it a larger font and/or bold. You can also use another color, but don’t rely on color alone to make it stand out (See accessibility).


11. If you have a Total row, add a blank row between it and the rest of the data to make it stand out as distinct from the other data.


12. Make the Title and Column Headers bold


Image 4: Table in a spreadsheet with formatting completed. Title and Headers are bold font. Every other data row has a light gray highlight. The Total row is bold font and there is an empty row between the Total row and other data in the table.

Table in a spreadsheet with formatting completed. Title and Headers are bold font. Every other data row has a light gray highlight. The Total row is bold font and there is an empty row between the Total row and other data in the table.
Image 4 Description: Table X with final formatting changes. The Title and Header rows are bold font. Every other data row has a light gray highlight to make the chart easier to read. The Total row (label and data) are bold font. The Total row is also separated from the other data rows using a blank row to make it stand out as distinct.

More Tips...beyond visual formatting


So we covered a bunch of tips to help you make your tables look good, but looks aren't enough. There's more you can do to make your tables and charts even better.


Provide "good" labels for your Charts and Tables


1. Label your tables as “Table” and charts as “Chart”


2. Each chart and table should be sequentially numbered starting with Table 1 and Chart 1.

By numbering your charts and tables, it's easy to refer to them and easy for readers to find them.


3. Provide a meaningful title that describes the data in the table or chart. Focus on providing helpful information in the title, not on making it as concise as possible.


A meaningful title helps the reader know what to expect in the chart/table and focuses their attention on the key point(s) you are making. The title achieves this by presenting the theme of data in the chart/table and date ranges if applicable.


Some examples:

  • Table 1: Total Number of Meals Served in 2017 to 2022

  • Table 2: Average Income of Participants Served in 2021 and 2022

  • Chart 1: Highest Level of Educational Attainment of Participants Served in 2022.


Provide footnotes to explain data that could be confusing


For example, the percentages in your race/ethnicity table or bar chart might add up to more than 100%. You can add a footnote that says “Participants can select more than one race/ethnicity, so totals will add up to more than one-hundred percent.” This helps the reader understand the percentages, how you collect the data, and it makes your results more trustworthy.


I like to use subscripts in the title or beside the column header or row labels that I want to explain further. Then, I use those subscripts below the chart/table to provide the explanation. In Image (Table 2) below, we use the subscript "a" beside the "Percent" column header. Then below the table, we refer to "a" and we describe why the percentages will add up to more than 100 percent.


Image 5: Table depicting the count and percent Employment Program Priorities selected by program participants. The table includes a subscript and footnote explaining possible unusual values in the Percent column.

Example of table with a footnote explaining a potentially confusing result - i.e. percentages add up to more than 100%.
Image 5 Description: Table 1: Employment Priorities for Stability Program Participants, includes the count and percentage for each priority (Income, Benefits, Commute Time, & Promotion Opportunities. The Percent header includes a subscript (a) that refers to a footnote explaining why percentages add up to more than 100.

Footnotes answer likely questions that might arise about your tables and charts. They show that you care about the reader and that you are thoughtful with your data collection and analysis.


Charts and tables need to make sense on their own, and you also need to summarize the key takeaways


Your charts and tables should be able to stand alone without explanatory text.


Imagine handing a board member several printouts with charts and tables that will go in your annual report. The board member should be able to make sense of the charts & tables and tell a story about how your organization is doing without you explaining them.


Your annual report or grant report or whatever should also include written summaries of each chart and table. You need to provide the key takeaways from your audience so they don’t have to read the charts and tables if that’s their preference.


Why do both?


Some people love charts and tables. Some people despise them. When you create charts & tables that can stand alone, and you provide good written summaries of them, you help your audience engage with your work on their terms.


Build tables to make a small number of important points, not ten.


You want your audience to feel like they can read tables with minimal effort. Big tables with numerous rows and columns make it hard for your readers to understand your data quickly.


Try to build each table with the goal of conveying a handful of key points, and this will help you focus on the data that's absolutely necessary.


Okay, so I’m guilty of violating this one by a mile. Here's a gem from a little paper I wrote some years ago.


Image 6: Example of table that is too complex for most audiences. There are 21 rows and 6 columns of data.

Large complex table with 21 rows and 6 columns of data. Meant to demonstrate that a large table can be difficult for some audiences.
Image 6 Description: Example of a table with 21 rows and 6 columns of data. The table presents and analysis about how school segregation impacts reading and math learning rates. It demonstrates the importance of creating small, focused tables to make just a few important points. This table was appropriate for an academic paper, but it is not appropriate for most audiences.

But, do as I say and not as I do.


Rules for thee and not for me.


Pot, meet kettle.


You don't need to create dozens of tables with just 2 columns, but make sure that your table can be easily and quickly understood by your average audience member.


By focusing on making a few important points with each table, you can push back on the temptation to make complicated tables.


Provide data labels or a data table in your chart


The point of a chart is to represent data visually. But, your audience doesn’t want to try to guess whether that bar represents 6,000 meals or 6,250 meals or something else. Help them out with data labels.


In Image 7 of Chart 1(below), we apply data labels to the bars to indicate the number of meals served each year (so the reader doesn't have to guess). In Image 8 (of Chart 2), we use a data table below the chart to provide that same data.


Image 7: Vertical bar chart depicting the number of meals served annually between 2017 and 2022. The chart includes data labels above each bar giving the number of meals served each year.

Example of a vertical bar chart with data labels applied to give the reader the precise values the bars represent. In this case, the chart depicts meals served annually from 2017 - 2022.
Image 7 Description: Chart 1 - vertical bar chart displaying annual meals served 2017 - 2022. Bars include data labels that display the number of meals served annually. 2017: 5,000 meals; 2018: 5,500 meals; 2019: 5,750 meals; 2020: 6,000 meals; 2021: 6,250 meals; 2022: 6,500 meals.

Image 8: Vertical bar chart depicting the number of meals served annually between 2017 and 2022. The chart includes a data table below the chart that provides the number of meals served each year.

Example of a vertical bar chart with a data table that gives the reader the precise values the bars represent. In this case, the chart depicts meals served annually from 2017 - 2022.
Image 7 Description: Chart 1 - vertical bar chart displaying annual meals served 2017 - 2022. This bar chart includes a data table below the chart that displays the number of meals served annually. 2017: 5,000 meals; 2018: 5,500 meals; 2019: 5,750 meals; 2020: 6,000 meals; 2021: 6,250 meals; 2022: 6,500 meals.

Both approaches work. I usually prefer a data table because it makes the chart area look less cluttered.


Labels or data tables are desperately needed in pie charts. What percentage of the “pie” is that tiny slice? It’s nearly impossible to tell.


Image 9: (Chart 4) Pie chart with data labels providing the values (percentages) for each category of data in the chart.

Example of pie chart that uses data labels to provide the percentage of each category of data in the chart.
Image 9 Description: Chart 3 Income Level of Food Pantry Participants - a pie chart with data labels. This example demonstrates how helpful data labels are in pie charts. $0-10,000 income 12%; $10,001 - 20,000 income: 23%; $20,001-30,000: 29%; $30,001-40,000: 21%; $40,001-50,000: 11%; and $50,001 and higher: 4%.



Accessibility Matters


Lots of people have color vision deficiency, especially men, and other vision impairments. You can make your charts and tables more accessible by doing a few things.


First, don’t rely only on color alone to differentiate elements in your chart, use shapes and patterns as well.


Second, in digital media (such as your website or a PDF of your annual report) , images of tables or charts are not very accessible to people with vision impairments. Readers can’t interact with them, and some assistive technology (e.g. a screen reader) might not be helpful either.


To make them more accessible, your charts should include detailed descriptions of what they display. You can see examples of table and chart descriptions throughout this post.


Avoid the temptation to “interpret” the data when describing a table or chart in an image. You'd want to avoid terms like “increases dramatically” or “increases slightly” or “grows unexpectedly”. Provide factual information and allow your audience to interpret it themselves.



Wait, look at that Pie Chart we made. The legend and pie chart rely on color alone to distinguish sections from one another.


How can we improve it?


We could add different patterns to each section of the pie.


I tried that. It's not great because there are so many sections and the different patterns can be hard to distinguish in the legend.


We could get rid of our legend and apply labels and values in our chart. This approach, as seen in Image 10 below, is OK.


It's just OK.


It's better for a person with a color vision impairment that the original chart, but it's getting a little funky. I don't love how it looks, but accessibility has improved - and that's important.


Image 10: Example of pie chart with labels and values included in the chart area to make it more accessible to readers with color vision impairments.

Example of a pie chart with labels and values in the chart area to demonstrate how to make it more accessible for readers with color vision impairments.
Image 10 Explanation: Chart 4 - Income Level of Food Pantry Participants. This example is used to show how a pie chart can be more accessible to readers with color vision deficiencies by including labels and values in the pie chart area rather than using a color coded legend. For example, the pie chart piece that represents the $0-10,000 income displays both the income range (just noted) and 12% (the portion of participants in that income range. Other pie chart pieces are similarly labeled.

Or, we could just use a table.


That's probably the route I would go if I couldn't find a way to make this chart accessible, attractive, and easily read by my audience.


More tips on Table and Charts?


There's plenty more to learn to help you make good tables and charts, but you're off to a good start if you follow these tips.


Learn More About Nonprofit Data Management


This post is part of our nonprofit data bootcamp series. Check out the complete list of nonprofit data bootcamp topics with links to other published posts.




Reporting your impact is hard when you’re juggling spreadsheets. countbubble makes it easy so you can focus on your mission.


countbubble is nonprofit data management simplified. We help small nonprofits master data collection and reporting. Email us contact@countbubble.com or sign up for email updates on blog posts, product news, or scheduling a demo.


Founder, CountBubble, LLC


Please connect with us on social media: Facebook and LinkedIn


Recent Posts

See All

What Data Should Nonprofits Collect

If you are new to a data-oriented role at a nonprofit or your nonprofit is “getting serious” about data for the first time, then the...

Demographics Basics for Nonprofits

If you run a social services nonprofit that provides case management, mentoring, basic needs assistance, adult education, housing, or...

Comments


Commenting has been turned off.
bottom of page