Tableau is the best tool for doing visual analysis, building jaw dropping dashboards, and telling great stories. Yet I’m guessing Tableau can do a lot more. In this blog, I’m trying to find out if Tableau is also suitable for different tasks, such as:


  • Can you use it for invoicing?
  • Can you re-create your bank statements
  • Can it do the dishes?

Well, probably not the last one. Let’s find out if I can use Tableau to create invoices.

First thing I need, of course, is data. I would like to make a distinction among three types of data: fixed, occasionally changing, and volatile. Fixed data rarely changes. Examples would be the business address or bank account number. Occasionally changing data is data such as a customer’s address or an hourly rate. The last type of data — volatile data — is different on each invoice. For example, the hours worked and the invoice date.

biztory, invoice, tableau, visualisation

First, let’s look at the data structure. For now, it is a simple one: three tables with the three types of data.


CompanyName AddressLine#1 AddressLine#2 Phone Website
bbgdesignstudio 100 denniston ave. #434 pittaburgh, pa 15206

Occasionally changed:

ClientName JobNumber AddressLine#1 AddressLine#2 Phone
Via Boutique VB0030 2720 Sidney St. Pittsburgh, PA 15203 4.124.318.000


Invoice# InvoiceDate Item Description Qty Price
12345 15-Sep Web Design 1 concept 5 1200
12345 15-Sep Web Design Flash/HTML 2800


Next up, the design. I need to choose the correct size for the dashboard. Most invoices are on A4 so I choose A4 Portrait (827 x 1169). You can break down the dashboard page into three main areas: top, middle and bottom. I will start with a vertical lay-out container. To help identify the layout containers in this design stage, I find it helpful to show a colored border. I use a horizontal layout container for the top, a vertical layout container for the middle, and again a horizontal container for the bottom. My invoice design now looks like this:

biztory, invoice, tableau, visualisation

Then, adding the two horizontal lines to the invoice is easy. If you are unfamiliar with how to create horizontal lines, please read Timothy’s blog post on the topic:

Once the lines have been added the top can be build. Because your invoices probably have a different top than this one, I will leave it to you how to organize the horizontal and vertical lay-out containers. In this example this is the top without data:

biztory, invoice, tableau, visualisation

Now, let’s add the data items. The first one is date, and it’s straightforward. Just add “Invoice Date” to the “Text” mark, change it to exact date, and hide the title.

biztory, invoice, tableau, visualisation

The next section is client information. This is a bit harder because it consists of more lines. The easiest way is to deal with this is to add all lines to columns. Your first result will look like this:

biztory, invoice, tableau, visualisation

Now format it. Hide title, hide field levels for columns, set mark to polygon, set row divider and column divider to none and align the header to left. Finally, add the data items to the header and it’s done.

biztory, invoice, tableau, visualisation

Using the same steps, I’ll build the footer.

biztory, invoice, tableau, visualisation

The only thing left to do is to build the middle. The middle section is all data. I need to create two sheets: one with detail lines and one with summary. To create the detail lines, drag all the items needed to the rows. Make sure they are all set to discrete. This should be the result:

biztory, invoice, tableau, visualisation

The first issue you will notice is that the item value is not repeated. Instead of grouping on “Web Design,” I want it every row. One way to “trick” Tableau into repeating the item is by adding a calculated field with INDEX() set to discrete and placing it as the first pill on the Rows shelf.

biztory, invoice, tableau, visualisation

Now hide the index field, set marks to polygon, and remove row and column dividers.

biztory, invoice, tableau, visualisation

For the summary, we simply create new calculated fields for every item in the summary and add them to the summary view. Format it to create the same look, and it’s done!

biztory, invoice, tableau, visualisation

Now let’s add the final views to the dashboard, using horizontal and vertical layout containers and blanks to align. There you have it: an invoice completely built, from data, in Tableau.

biztory, invoice, tableau, visualisation

Of course, there is the opportunity to make further improvements. We could make the customer and month user-selectable, create a parameter to add an invoice number, etc. We can also print or save the dashboard as PDF (making sure all sheets are hidden), and we can directly invoice our customers.

So, in answer to the question: “Can you use Tableau for invoicing?” My verdict: YES!

One Comment


What is the data in the invoice in more than the dashboard view? Can you print it out?


Leave a Reply

Your email address will not be published. Required fields are marked *