Bullet Graphs for Not-to-Exceed Targets

When I designed the bullet graph back in 2005, I did it to solve a particular problem related to dashboard displays. The graphical widgets that software vendors were providing to display single measures, such as year-to-date sales revenue, consisted mostly of circular gauges and meters, which suffered from several problems. Most of them conveyed too little information, did so unclearly, and wasted a great deal of space on the screen. The bullet graph was my alternative, which was designed to convey a rich story clearly in little space.

Bullet Graph Description

Since their introduction, a number of dashboard vendors now support bullet graphs, either as a predesigned display widget or as a display that can be easily constructed using their design tools. Now that bullet graphs are being used a great deal, they are being put to the test, and best practices are being developed to use them effectively.

One challenge that is faced by any graphical display of a single measure compared to another, such as a target, is the fact that the target usually functions as a point that the measure should reach or exceed, such as a sales target, but sometimes it functions as a point that the measure should stay below, such as an expense target. Here is a series of bullet graphs, which are designed in the typical manner:

Bullet Graphs for Not-to-Exceed Targets 1.jpg

Two of the measures—expenses and defects—work the opposite of the others in that the goal is to remain below the target. The background fill colors on these bullet graphs, which vary from dark gray to indicate “poor performance” through to the lightest gray to indicate “good performance,” are arranged from poor on the left to good on the right for revenue, average order size, and new customers, but in reverse for expenses and defects. The reversed sequence serves as a visual cue that expenses and defects should remain below the target. This cue, however, is not strong. It would be useful if something that stood out more signaled this difference.

We might be tempted to replace the varying intensities of a single color—in this case varying intensities of gray—with distinct hues, to make the reversal of the qualitative scale more apparent, such as by using the traditional traffic light colors that are so popular on dashboards.

Bullet Graphs for Not-to-Exceed Targets 2.jpg

This does cause expenses and defects to more clearly stand out as different from the other measures, but at what cost? Even if we ignore the fact that most people who are colorblind (10% of males and 1% of females) cannot distinguish green and red, we are still left with an overuse of color that makes the dashboard appear cluttered and visually overwhelming, as well as a dramatically weakened ability to use color to draw viewers’ eyes to particular areas that need attention. Is there a better way to make certain bullet graphs look different without introducing other more troubling problems?

Here’s a suggestion: not only reverse the sequence of the qualitative scale, but also the direction of the quantitative scale. Using expenses as an example, the quantitative scale could run from 0 at the right of the bullet graph with values increasing leftwards. The bar that encodes the expense measure would then also run from the right edge of the bullet graph leftwards. The bar running from right to left serves as a stronger visual cue that the target works differently, as you can see below:

Bullet Graphs for Not-to-Exceed Targets 3.jpg

Although it is not conventional for a quantitative scale to run from right to left, except in the case of negative values, this is easy to read and the unconventionality actually causes it to pop out more clearly. In fact, expenses and manufacturing defects are measures that we can easily think of as negative values (for example, expenses reduce profit and defects reduce manufacturing productivity).

I would like to encourage all the vendors out there that support bullet graphs to support this functionality and for those who use them to take advantage of it.

Take care,


45 Comments on “Bullet Graphs for Not-to-Exceed Targets”

By Tim. February 4th, 2008 at 6:49 pm

Hi Stephen

I like the idea, but at first glance I read all the bars the same, especially defects, as it end close to the left side. If there were 500 defects it would be even more tricky to catch.

Perhaps the bar should come to a point or have some other shape at the end, marking it’s direction.

As an alternative, rather than mix the “positive” and “negative” measures together, I would might design the display such that all the “positive measures” were grouped together, and separated from the “negative” ones by a light dotted line or some white space. I think that would help avoid the problem.

By Nicholas Radcliffe. February 5th, 2008 at 12:56 am

I think this is a really clever idea, but I think it doesn’t quite come off. It’s a problem I think about quite often, most recently yesterday looking at the stats for various golfers at pgatour.com. If you take a look at an example (e.g. Tiger Woods, at http://www.pgatour.com/players/00/87/93/, preserved for posterity at http://www.flickr.com/photos/njradcliffe/2243268285/), you’ll see they go to the strange extreme of making the bar longer for lower numbers (without any real explanation) when the smaller number is better. For example, they show a long bar for Tiger’s scoring average of 66.12 (at the time of posting) and a short bar for the corresponding average across tour players of 71.54. I think this is mad, but at least someone was obvious thinking about the same problem you are.

It does raise an interesting question though. Dare you take your idea one stage further and make the bar come from the left even for measures you want to be small, leaving the scale and the goodness bands as you have them in your last example? I’ve mocked this up at http://www.flickr.com/photos/njradcliffe/2244061898/. I’m not necessarily advocating this, as it clearly has issues, but it seems to me that it has some pros as well as some cons. Obviously the ‘pro’ is that the bar gives you the right insinctive impression, assuming you work with the ‘more is better’ assumption. The obvious (large) con is that the bar comes in from (conceptual) infinity, which is probably shown just as whatever number you stick on the left end of the scale. Food for thought, though.

Keep at it!

By Stephen Few. February 5th, 2008 at 8:25 am


Your suggestion to group bullet graphs into types would make the difference stand out more, but it would often result in breaking up measures that ought to be seen together and therefore grouped together.

One of the strengths of the solution that I’ve proposed, which I failed to mention, is that the intersection of the measure bar with a target line always represents good performance. It is very easy perceptually to spot the presence or absence of this intersection of bar and line, which forms a “T”.


Bars that start at some arbitrary number (for example, expenses of $50,000) and extend toward zero don’t seem to make sense and definitely don’t accurately encode what’s happening. For what reason do you think that my solution “doesn’t quite come off”?

By Nicholas Radcliffe. February 5th, 2008 at 12:18 pm


Well, I certainly agree that starting from an arbitrary number isn’t ideal, and as I say, I’ don’t think my suggestion is an ideal solution. You could start at infinity and break the axis you want. I can’t really agree, however, that it ‘definitely doesn’t accurately encode what’s happening’: that’s a matter of definition/interpretation. I thought you were in the business, here, of inventing new ways of displaying information. There’s clearly a precise interpretation if you care for it.

Anyway, you ask how/why I think it doesn’t quite come off. I’m assuming that your goal here is to make graphical displays that quickly and clearly convey information to people. For me, the bar coming from the right is a bit too far from the usual conventions to be intuitive. I like it; I think it’s clever; but my sense is that people won’t find it natural enough to take to it.

The thing that works well about your coloured examples is that (for non-colour-blind people) the red/amber/green metaphor is so familiar that without extra visual cues people will tend to interpret them correctly. I agree with your reservations about this use of colour, but obviously the downside of the greyscale is that it has no obvious direction. (Are the dark colours good or the light ones? It’s easey to work out, but not easy to “feel”.) Clearly people can learn the new metaphor, but I assume your goal is to make these displays easy to understand.

Don’t get me wrong: I think what you’re proposing is clever and interesting. I thought my suggestion was another valid variation, but I guess you don’t.

By Tim. February 5th, 2008 at 3:01 pm

Hi Stephen, you wrote:

[It is very easy perceptually to spot the presence or absence of this intersection of bar and line, which forms a “T”.]

Agreed for expenses in the example, but for defects the “T” is more of an elongated cross “–+–“. Only if the bar ends close to the target do you get a “T”. If the bar itself came to a point (last few pixels are a triangle), it would indicate direction and not lose any other information. It would make it much easier on a graph that was reporting 500 defects for example.

I agree that some measures are ideally grouped together. To me it seems a trade off between grouping by related measures, or grouping by measures with same “direction”. Neither seems perfect to me.

Personally (and albeit politically incorrect) I preferred the colored approach as the best of what seem non-ideal solutions.

By Stephen Few. February 5th, 2008 at 3:24 pm


When I said that having a bar start at an arbitrary value or from infinity wouldn’t accurately encode what’s happening, such as in the case of expenses, I was pointing out that expenses don’t start at an arbitrary value or at infinity. In this sense, it doesn’t reflect reality. This fact is not a matter of definition of interpretation.

Bars running from right to left are not unconventional. Horizontal bars always do so when they encode negative values. The only thing that is unconventional is the fact that the quantitative scale, which runs from right to left, is not expressed in negative values.

Increasing intensities of a single hue from light to dark intuitively encode an ordered set of values, such as 1, 2, 3 or good, satisfactory, and poor. It is true that with the sequence “good, satisfactory, and poor,” the proper order of the colors from either light to dark or dark to light could both work. It only takes a moment to instruct people how to read them, however. Different hues, such as green, yellow, and red, do not intuitively encode a sequential set of values. These particular colors are understood in this way only as a result of conventional use. The other problem with using colors such as green, yellow, and red on dashboards, which I mentioned previously, is that doing uses a great deal of visual salience to communicate information that doesn’t need to be featured. Only a limited number of items on a dashboard would ordinarily require attention at any given time. Color, such as red, can be used to highlight these items, but this no longer works if too much color is being used on the dashboard for other purposes. For color to work as a means of rapidly drawing attention to those items that need it, the dashboard should otherwise be relatively subdued in appearance.


When I referred to the “T” shape that is formed by a measure bar reaching or going beyond a target line, I was not referring to something that necessarily looks like the letter “T”. I was referring to the fact that the bar ends at or intersects the line (a shape that is found in the letter “T)), which is a shape that is easy to spot. The presence of this particular shape makes those measures that have reached or exceeded their targets easy to spot. Measures that have not reached or exceeded their targets are also easy to spot, simply for looking for the absence of this shape.

Your suggestion that the direction of the bar be encoded by narrowing its end to a point would accomplish this intention (and would make it look more like a bullet), but doing so would make the part of the bar that is most important, its endpoint, its least visually salient part. For this reason only, I prefer not to use this approach. On a dashboard especially, which should be designed for rapid perception, what you want people to see should be very easy to see.


By Tony Wright. February 5th, 2008 at 6:29 pm

What about adding a touch of red/yellow/green to the grayscale blocks? Something that would not be full saturation eye-death, but would add a touch more meaning. Color blindness is obviously not a small deal, but the color could be made to “degrade” nicely to the gradient.

By Stephen Few. February 5th, 2008 at 7:00 pm


How would this improve the effectiveness of the display?


By Janne Pyykkö. February 5th, 2008 at 11:11 pm

How about changing measures to satisfy the “more is better” principle? Instead of “count of defects” you could use “hours between defects”, where obviously 12 hours is twice as good as 6 hours. Instead of “expenses” you could use, well, this is harder…

By Bullet graphs at Rage on Omnipotent. February 6th, 2008 at 10:00 am

[…] A neat way of presenting figures against targets / H/M/ L or whatever. Now to get Excel to produce one. […]

By Stephen Few. February 6th, 2008 at 10:08 am

Actually, Excel can be used to produce bullet graphs with the help of an add-in product from BonaVista Systems called MicroCharts.

By John. February 7th, 2008 at 2:25 pm

How about only adding color to the segment of the background that the actual value is included in? Or might that be too confusing with having mostly greyscale mixed with colors on only some segments?

By Stephen Few. February 7th, 2008 at 2:35 pm


Being able to see the qualitative ranges–where they begin and where they end–even those that the measure doesn’t currently fall within, is useful information.


By John. February 8th, 2008 at 9:26 am

I guess I didn’t cleary describe what I meant. I was just wondering how effective it might be if only the actual value range were in a color other than shades of grey, and if the other ranges remained in shades of grey. EXAMPLE: Poor:0-30; Acceptable:31-70; Good: 71-100. Default colors would be Poor:Light Grey; Acceptable: Med Grey; Good: Dark Grey. Actual value let’s say is 20. So since the actual value falls into the Poor range, what if only that segment were changed to say, red, but the ranges for Acceptable and Good, remained med grey and dark grey. I guess I could just try this out and see how it looks.


By Stephen Few. February 8th, 2008 at 11:13 am


Aha, now I understand. Doing what you suggest would highlight the actual value of each bullet graph, but why would the value of each bullet graph need to be highlighted? Too much highlighting results in people learning to ignore the it. Too much is popping out visually, which becomes a visual annoyance that people will seek to suppress perceptually. For highlighting to work as a means of drawing attention to particular data on the dashboard, it must be used sparingly.

By Michael. February 8th, 2008 at 3:13 pm


I find that both color and gray-scale can best serve a purpose if there *is* a purpose… That is, the color/shade needs to be something significant to the business.

I minimize color for many of the reasons above and because printers are notoriously out of color ink (and are still prone to plenty of breakdowns), so b&w might be all the viewer can get onto paper. If you must have color, consider using a set of pastel colors that are distinguishable even in gray scale.

In addition (in your example), there must be some business significance to the color/shade boundaries (e.g., the defect count crossing 150 or 300.) When that is the case, I try to describe this threshold in business terms that map the color/shade onto both sides of the viewer’s brain. Then it works.

In this case, assuming gray scale, maybe an expression that describes the dark gray as “lost in the fog with unclear results and definitely in trouble,” the lighter gray as “seeing things more clearly with less chance of crashing into something,” and no gray as “definitely in the clear.”

Great discussion by the way.


By Sephir. February 20th, 2008 at 11:21 am

Stephen –

To start, let me say that I love these graphs. I have been trying to incorporate them into data tracking plots in my job with some success. At the risk of adding too much complexity to the plots (and giving up the “T” effect you mentioned above), I have turned the bar into an open circle and added a smaller circle to show the previous period’s results (a trailing tail in effect). This adds motion to the plot by showing the direction of our results from one period to the next. (It also dampens the heavy visual weight of the bar, focussing only on the data points of interest). If we combine this with the reverse scale you proposed above so the gray gradients are going in the same direction (“bad” is always to the left) I think the result is an easy to interpret graph with addition data richness. Thoughts? Concerns? Thank you for sharing your exemplary work with us!

By jr. February 20th, 2008 at 12:15 pm

Tim has a point: for the non-color blinds, conventional traffic light colors are the most intuitive. But Stephen is even more right: as soon as you put a few saturated color splashes on a dashboard, the audience is lost.
Maybe the solution is to color the bar, instead of the background zones. And to make it even less prominent, use a gradient between black and the target color (red/orange/green – dependent on where the bar ends). For color blind people, they should see no difference from the gray graphs proposed by Stephen. I’ll send picture of my attempt at doing that to Stephen – not knowing how to post images on this forum.

By Stephen Few. February 20th, 2008 at 12:25 pm


The bullet graph design specification that I give freely to anyone–especially software vendors–who request it, includes a version that is very similar to the one you described. The biggest difference is that when I use a dot to encode the primary measure, I still use a short line to encode the target. This distinguishes the two more clearly. I also prefer the way the intersection of the dot and the line stands out and avoids the problem of one dot being occluded by the other when both measures are encoded as dots.

By Floyd Kelly. February 20th, 2008 at 1:04 pm

I appreciate and value all of your contributions in this space, however I have yet to be convinced of the value of bullet graphs. Although they encode more information in less space than other displays, that information is difficult to decode and the display encourages comparisons that are not warranted.

Suppose you wanted to display only actual values for each KPI. Would you recommend a bar chart on which values on completely different scales are plotted in close proximity to each other?

Would you recommend that measures with differing directionality be plotted in close proximity? (i.e. a bar for revenue next to a bar for expenses?) These ought not to be visually compared on the same scale.

When assessing whether a KPI is “good”, it is true that the magnitude of the difference between actual and target adds considerably more value than a simple classification of above or below (e.g. traffic light). But equally or even more important is the rate and direction of change in that magnitude.

As your post above indicates, it is awkward to correctly display bullet graphs for KPIs with different patterns (even with the innovation you propose). Adding an inventory KPI in which a variation from target in either direction is bad adds further complexity to the display.

I’m not familiar with the details of your academic work, but it strikes me as we have these conversations concerning individual preference that a more scientific approach might be useful.

For example, could a controlled experiment be conducted to determine whether people are able to observe and retain information more reliably when presented using bullet graphs as compared with other means?

I would be delighted to hear of any current academic work in this area or collaborate to produce some…

By Joshua Heep. February 20th, 2008 at 1:13 pm


I believe that the idea to have the underlying quantitative colors maintain the same progression is a great. But in order to obtain this effect in your bullet graphs, it creates an effect of conflicting performance measure growth. Even though we are targeting a small number as a good thing, located on the right, we are seeing performance measures expand in opposite directions without clear distinctions in the data sets. I couldn’t argue that the counterintuitive performance measure growth is better or worse than the conflicting scaling of the qualitative ranges. I feel that a single point, as Sephir mentioned, would downplay the conflicting directions of the performance measures.

I feel that another counterintuitive point is how the intersection of the symbol marker can actually cause misperception of the data. You mentioned earlier that the presence of the intersection would be a clear visual marker of success. That is not true for the case of Expenses and Defects. In categories where more is better, we see the extending of the performance measure bar past the symbol marker as great performance. In cases of trying to achieve less, we should see the greater gap as a marker of better performance. The natural assumption that the performance measure intersecting the target symbol is a good thing will mislead the graph’s reader in the cases pointed out above.

I understand that with explanation, these characteristics can be understood and interpreted properly. Unfortunately I deal with an environment where our reports are passed on and on without our reporting team having direct influence on the reception of the reporting. Our reports are also designed primarily for print outs and cannot easily accommodate text to explain charts such as this.

I am not sure what the best solution to the issues I pointed out, but I would definitely move in a direction where ‘performance growth’ does not conflict between sets. After all, was that not the original intention of changes the progression of the quantitative backgrounds? I would also like to see a greater difference in the visual recognition of ‘good targets’. I know that targets do not necessarily coincide with the qualitative ranges, but I would almost advocate using the upper limit of the ‘good’ range as the target symbol’s value. The absence of the target symbol might provide a clearer point to the reader that the category is different? Mostly speculation, but I would definitely say that the graph doesn’t quite achieve as much as it can.


By Stephen Few. February 20th, 2008 at 5:13 pm

Before responding to Floyd’s comments, let me point out that this particular blog post addresses only one aspect of bullet graphs. The full Bullet Graph Design Specification addresses a full spectrum of issues and touches on several that some of you have raised in this discussion.


Thanks for the kind words regarding my contributions to the field of data visualization. I’ll do my best to address your concerns about bullet graphs.

You state: “Although they encode more information in less space than other displays, that information is difficult to decode and the display encourages comparisons that are not warranted.”

What aspects of the bullet graph in particular do you find difficult to decode? Essentially, a bullet graph is a variation of the bar graph and is decoded much the same. It differs from a standard bar graph in that (1) a point of comparison, such as a target, is included in the form of a mark (usually a short line) rather than another bar, and (2) background fill colors are used to encode qualitative states, which is conventional in most gauges. It is absolutely true that anyone who hasn’t been told how to read a bullet graph will need to be told, which is true of any unfamiliar quantitative display, but I have found that no more than a minute of instruction or a simple diagram is necessary for people to understand them. I have a great deal of experience describing them to people in classes and presentations—always briefly—and have never encountered anyone who didn’t catch on immediately.

A bullet graph is designed to display a single measure only. When multiple bullet graphs are displayed on a dashboard, the magnitudes of values in separate bullet graphs are not meant to be compared. This fact is visually reinforced by the fact that each has its own quantitative scale. When several bullet graphs share a common quantitative scale, such as percentage of target, their magnitudes are meant to be compared. Even when bullet graphs have independent quantitative scales, they are designed such that their qualitative states can be rapidly determined and compared when useful, which is often the case in performance monitoring.

Dashboards are complex by definition in that they combine many pieces of often disparate information to tell a story, which consists of many facts. The task of monitoring information of this type is complex by nature. A dashboard should not reduce intrinsic complexity, nor should it add complexity to the task. A good dashboard presents the data as clearly as possible, without robbing it of any meaning that is pertinent to the monitoring task. When some measures are supposed to remain below a target, others are supposed to remain above a target, and others are meant to stay close to the target either above or below, but not move either way beyond a certain threshold, this constitutes complexity in the information itself. Bullet graphs that accurately and clearly represent the information cannot remove this complexity—and should not. As long as we design bullet graphs or any form of display that clearly represent the differences in how these disparate measures should be evaluated, we support what people need.

You state: “I’m not familiar with the details of your academic work, but it strikes me as we have these conversations concerning individual preference that a more scientific approach might be useful. For example, could a controlled experiment be conducted to determine whether people are able to observe and retain information more reliably when presented using bullet graphs as compared with other means?”

My direct involvement in academia is limited. Perhaps at some point in the future I’ll increase my involvement and work with students who can conduct such research. At present, I live mostly in the world of business and don’t have the resources (mostly people) needed to conduct robust controlled experiments. I would love it if one or more of my academic friends involved in information visualization research would oversee experimental testing of bullet graphs. My own tests have been controlled, but few and informal.

Until specific research is done and the results have been published, we must rely on related research that has already been done. For instance, the efficacy of bar graphs and dot plots for encoding is well established. Bullet graphs combine the data encoding methods of these two displays. We also know that people can naturally decode colors of varying intensity from low to high as quantitative values from low to high, but the same is not true of different hues. This is why I always vary the intensities of the background colors, which encode the varying states of poor on the low side to good on the high side. I could go on, but I’ll leave it at this for now. It is unlikely that fresh experimental results will contradict facts that previous research has firmly established.

Can bullet graphs be improved? I don’t doubt that they can. Is a bullet graph always the best way to display a measure of what’s going on, compared to one or more comparative measures, in light of predefined qualitative ranges? No one solution is ever best in all cases. Is there a better general means than the bullet graph to accomplish this? If there is, I hope that I’m one who invents it. If not, then I hope it is one of you who contribute so often to these discussions. I will promote your invention wholeheartedly and smile inwardly when you generate discussions like this in your own blog.


By Floyd Kelly. February 21st, 2008 at 1:36 pm

What an exciting and vigorous discussion. I appreciate the candor of your response and your willingness to participate in this kind of public debate. Apologies for taking the thread off topic – rather than go further afield in this forum, perhaps we can continue the discussion in another thread or privately.

By Stephen Few. February 26th, 2008 at 8:16 am


The Discussion Forum of this site is a great place to pursue issues such as this in greater detail. Please join us there. For matters that are not for public consumption, you’re welcome to email me at sfew@perceptualedge.com.



By Priyamvada Vijayaraghavan. February 27th, 2008 at 7:08 pm


First of all, I would like to say that your excellent book on Information Dashboard Design got me looking at the world of Dashboards from a totally different angle.

Coming back to the discussion on the reversal of the sequence and quantitative scale, I like the idea. But, I was wondering if instead of reversing the scale/sequence, we could use a different color for the two kinds of bullet charts. For example, for a metric where higher is better, you could use Dark-Medium-Light shades of grey background while for a metric where lower is better, you could use Light-Medium-Dark shades of blue background or some other color. This way, it gives a visual indication that the two graphs are different. At the same time, for somebody who is color blind, it still preserves the meaning.


By Stephen Few. February 28th, 2008 at 9:36 am


Differentiating bullet graphs with “reach for this target” points of comparison from those with “do not exceed this threshold” points of comparison by assigning different hues to each kind would work well. Distinct hues work better than any other visual cue for separating items into groups. I wouldn’t hesitate to recommend this solutions to anyone who is faced with this particular implementation challenge.



By Geoff. February 29th, 2008 at 8:16 pm


I recently learned about bullet graphs and thought you might be interested to know that they can be displayed using the Google Chart API — although it’s a kludge: http://tinyurl.com/2qsfma


By Stephen Few. March 1st, 2008 at 10:54 am

Thanks Geoff. This is good to know.


By TJ Amas. March 7th, 2008 at 8:28 am

Hi Stephen,
Great discussion! Just got your book on Information dashboard design from Amazon. Can’t wait to read it now!


By fabrice. March 16th, 2008 at 11:20 am

Hi Stephen,

After reading some of your articles, I created an Excel User Defined Function in 2006.
The free code and example files are available here : http://excelidees.blogspot.com/

Thanks again for your inspiring work

Fabrice Rimlinger

By Create a Bullet Graph In QlikView + Video. May 2nd, 2008 at 3:02 pm

[…] Stephen Few, who spoke at the QlikView conference in April, devised the bullet graph a few years ago. A QlikView customer used bullet graphs and sparklines and was very generous to allow QlikTech to post a working demo of their application. I’m going to build the bullet graphs from that app. You can download and dissect a QVW copy of that app from the QlikView demo website. […]

By DEALER DIAGNOSTICS » Blog Archive » Create Bullet Graphs with Google Charts in 7 Easy Steps. May 13th, 2008 at 11:46 am

[…] Stephen Few’s bullet graph, was a welcome addition to the data visualization scene in 2005. Up until that point, displaying a single measure graphically usually involved the dial, gauge or traffic light metaphor. Since then, more visualization tools and business intelligence vendors have started to support bullet graphs. We’ll take take a look at how to create your own bullet graphs using the Google Charts API, using nothing but your browser, in 7 easy steps. […]

By 50 Cool Things You Can Do with Google Charts API | College@Home. June 5th, 2008 at 9:58 am

[…] Create Bullet Graphs with Google Charts in 7 Easy Steps: Using the API, you can put together extremely useful bullet graphs that display a single measure visually. […]

By Rob McKeown. June 5th, 2008 at 10:59 am

I created a free Adobe Flex component for creating bullet graphs. An example and the files can get seen at http://agileui.blogspot.com/2008/05/bullet-graph-free-flex-component.html

By Chandoo. July 21st, 2008 at 9:06 am

Hi Stephen..

Thanks for this idea, I think these charts are an effective way to show good amount of info without confusion.

I have made a “3 step how-to” to create bullet graphs in excel sheets just using conditional formatting and simple formulas. Let me know your comments on them :)


By Stephen Few. July 23rd, 2008 at 2:49 pm

Hi Chandoo,

Thanks for taking the time to figure out a new way to create bullet graphs in Excel. Four aspects of your design should be improved, however, before this could serve as a good general-purpose means of displaying bullet graphs:

1) The line that represents the primary measure is not as visually salient as it ought to be. Rather than a thin line of dashes, it should be solid, thick, and visually heavy.
2) Bullet graphs should include an axis line and scale, otherwise, there is no good way to interpret the values.
3) Your method is simple when you have a nice small range of values, such as 0 through 20 in your example. It is no longer easy to use, however, when the values are something like total = $85,000, actual value = $62,473, target value = $69,000, etc.
4) Your method can only be used for horizontally-oriented bullet graphs.



By Chandoo. July 28th, 2008 at 9:21 am

@ Stephen …

Thanks for your review. I am planning to address your comments by modifying the bullet charts and posting another one. but here is a quick reply :)

1) The line that represents the primary measure is not as visually salient as it ought to be. Rather than a thin line of dashes, it should be solid, thick, and visually heavy.

— I wanted to keep it simple and use the characters available in default fonts. But for hardcode dashboarders hyphens are no go. I may create these 3 symbols using fontstruct and use that font for this chart.

2) Bullet graphs should include an axis line and scale, otherwise, there is no good way to interpret the values.

— Point taken, again, the scale can be added in the row beneath chart row. I was trying to keep it incell, so avoided the scale.

3) Your method is simple when you have a nice small range of values, such as 0 through 20 in your example. It is no longer easy to use, however, when the values are something like total = $85,000, actual value = $62,473, target value = $69,000, etc.

— Actually, I have shown it for 20 cells to make it understandable, but the method is scalable. So if the dashboard needs lot of finer details, you can always use 100 or cells for each row.. (max being 256 :D)

4) Your method can only be used for horizontally-oriented bullet graphs.

— We can just use rows instead of columns and the problem is solved. I will show it when I write the post modifying these charts

Again, thanks alot for taking a critical look at this implementation and giving your inputs.. :)

By Bill. January 5th, 2009 at 1:07 pm

Hi Stephen,

It looks like this graph has been talked to death, but I wanted to add one more point which I didn’t see mentioned.

It seems that when you have similar numbers in relation to the goal (I.E. when a larger number is increased performance on all metrics, or when a smaller number is increased performance on all metrics) the chart type works well. The only issue is when you have a mixed set of these metrics where it breaks down.

I beleive you were on the right track with the last chart which you showed all of the ‘bad’ shades on the left, and the good shades on the right. But, instead of forcing a bar in the chart, I think it would be a lot better to change the chart type and instead of having a bar as the actual and a cross to the bar as the goal, change it to 2 symbols such as a ‘+’ as the actual and the bar as the goal (or a circle as the goal), whatever seems visually appealing)

Then you would have a simple, easy to read chart where users could tell immidiatly if the numbers were in the good or in the bad based on the two values.

On another note, I always had a problem trying to display a metric such as avg order on a bar chart like above. My reasoning was ‘why have a bar start at 0, and continue to the actual avg order amount when it’s really not representative’. Avg order amount is what it is. A specific point, not a sum of values. Mostly (while there are exceptions, most of the time) bar charts are better for summing values, and not for displaying avg amounts.

And besides all of the above. Where is anyone answering the question ‘Are we doing better than we were before’. Targets are being shown, but are we getting closer or further from our targets, and by what rate. Overall I like the charts, for an informed user looking at data they are very familiar with, it works well on some of the metrics, but it does have limited uses because it doesn’t answer this question.

By Bryan Pierce. January 6th, 2009 at 9:07 am


In your first point, you say that you prefer the idea of using two different symbols (such as a circle and a vertical line) instead of a bar and a vertical line when mixing bullet graphs that have targets we want to exceed and bullet graphs with “not-to-exceed” targets. This design, which resembles a dot plot, is a perfectly valid version of a bullet graph. It’s especially useful when we want to begin the quantitative scale at a value other than zero, because bars, which encode values through their magnitude, must always begin at zero to work correctly. However, it appears that you prefer to use this design to keep some of the bars from beginning on the right sides of the bullet graphs, which looks unconventional. As Steve says in the original post, this unconventionality is actually useful. It provides a strong visual cue to people that the bar behaves differently and should be read accordingly. In your suggested design, unless people are explicitly told that values on the right are always better, they might not realize that having not-to-exceed targets like Expenses with values near the top of the scale is a good thing, until they actually read the scale, which might not always happen.

Regarding your second point, it appears that you’re saying bars should be used for sums but not averages. I don’t understand your objection. Why would it matter whether a bar displays a sum, an average, or any other single value? The only added advantage I can see when using a bar graph for sums, is that you have the option of using a stacked-bar graph, which would also give people a sense of the individual parts of the sum.

Finally, regarding your final question, I have a couple of thoughts. First, when using bullet graphs, it’s often useful to pair them with sparklines of the same measures. The bullet graph displays the current snapshot along with a comparative measure, while the sparklines give us a sense of the trends over time (for instance, the daily values for the past few weeks, the monthly values for the past year, etc.). Although neither the bullet graph nor the sparkline gives in-depth information, in the context of a dashboard they give enough information for people to get a basic overview and to determine what measures need their attention for more in-depth exploration.

The other thing I want to mention about bullet graphs is that, in cases where the target is still a ways off (for instance, when we’re using a year-end target for sales but it’s only the second quarter) it can be useful to add a second bar section that extends from the end of the current value’s bar to represent the projected value. This works like a stacked bar graph and allows people to see the current value and also see whether it looks like the current value will exceed the target during the desired timeframe.


By jeff weir. September 10th, 2009 at 5:08 pm

Hi Stephen. Question for you on multiple bullet graphs. THis is in regards to a post at http://www.clearlyandsimply.com/clearly_and_simply/2009/09/bullet-graphs-for-excel-a-simple-way.html#comment-6a00e554d9fb9988330120a5b8df14970c that you might want to check out, where Matt shows another way to implement bullet graphs in Excel.

Any time I’ve seen multiple bullet graphs in your examples, the quantitive scales differ. For example, at the top of page 2, there’s 5 bullet graphs per example and each one has a different quantative scale (i.e. different target bands).

I was wondering whether you would recommend bullet graphs if the quantitative ranges are all the same…or whether you think something simpler might be a better option in that case – perhaps a bar graph with some kind of shaded background formatting to denote the (shared) qualitative ranges.

The bar graph example for instance would eliminate the white space between the different series that you get with bullet graphs. That white space is essential when the quantitative bands all have differing scales and different axis. But when there is a shared scale across all indicaters – and identical axis – does the white space and repitition of identical quantitative axis that you would get with a bullet graph serve any visual purpose, or is it a distracting grid that we could better do without?

I not yet decided whether a bar graph should be used to compare different performance measures, given people might then start comparing the magnitudes of those measures. I’d love to hear your thoughts on this point. In relation to bullet graphs on this point, you say above that:

A bullet graph is designed to display a single measure only. When multiple bullet graphs are displayed on a dashboard, the magnitudes of values in separate bullet graphs are not meant to be compared. This fact is visually reinforced by the fact that each has its own quantitative scale.

But then again, you also say:

When several bullet graphs share a common quantitative scale, such as percentage of target, their magnitudes are meant to be compared. Even when bullet graphs have independent quantitative scales, they are designed such that their qualitative states can be rapidly determined and compared when useful, which is often the case in performance monitoring.

So I’m not sure whether you would deem a bar graph appropriate on these grounds or not…regardless of whether bullet graphs might still be the better solution.

Love to hear you thoughts.


Jeff Weir

By Stephen Few. September 11th, 2009 at 10:26 am

Hi Jeff,

When all of the measures share the same quantitative scale and the same qualitative ranges (for example, the same ranges of good, satisfactory, and poor performance), there is no real reason to use bullet graphs. I think it would usually work best to use a single bar graph with continuous qualitative fill colors in the background. This would make it obvious that the measures belong together and can be compared in all respects.


By jeff weir. September 19th, 2009 at 3:26 am

Thanks Steve. That’s what I figured…glad we think alike.



By Hila. October 1st, 2009 at 1:45 pm

HI Steve,
I work at a company that is in the application monitoring business. I am trying to push the use of bullet charts as I understand their tremendous value poresenting so much data in such a small place. However the team is pushing back very strongly saying that it is not standard and there are no tools out there using it. On the web I can find plenty of software packages that support bullet charts for anyone creating a dashboard to use, however it would be very helpful if you could point out any tool that actually uses it to present data (and not a tool that allows the user to use it if he chooses so).


By Stephen Few. October 3rd, 2009 at 2:52 pm

Hello Hila,

I don’t understand the distinction that you’re making between tools that support bullet graphs vs. those that actually use them to present data. Dashboard tools provide an assortment of display media and leave it to users to choose. The tools don’t actually use the display media themselves, except in the form of examples. Many vendors that support bullet graphs show examples of dashboards on their websites that feature them.

How has your team determined what is standard and what is not? Based on what they see the most? If so, perhaps they should be concerned with best practices of information display rather than popularity. What’s common and popular is often not what’s best. This is especially true of dashboard display media. The silly gauges that most dashboard products feature were not developed because of evidence that they actually work but because their competitors were offering them, so they assumed they should as well.


By Richard Palmer. January 14th, 2010 at 5:08 am

The graph would be more effective if you labeled quantities where more is better on the left and quantities where less is better on the right.