Bullet Visuals

Bullet visuals are a variation of bar graphs, customized for showing progress towards a predefined goal. They are developed specifically for financial data, but may be used in many other situations. They are an alternative to Gauge Visuals.

Here is an example of a bullet chart for one of the High Schools; it illustrates the various elements of the bullet chart.

elements of bullet visual type

Just as other Arcadia Instant visuals, the bullet visual may be trellised using X and Y shelves, have additional fields on the Tooltips shelf, and uses Filters. It also includes additional setting adjustments.

This example uses the 2012 and 2013 API Scores for California Schools.

We are working with the dataset School Performance, built on the ca-school-apis.csv datafile that contains the California School APIs from 2012 and 2013. Note that the range of possible scores varies from a low of 200 to a high of 1000. The statewide API performance target for all schools is 800. However, each school that has not achieved that target may have a more realistic score set for it by the Department of Eduction, based on a number of factors we will not discuss here.

  1. Start a new visual based on dataset School Performance.

    See Importing Data, Creating Datasets, and Creating Visuals.

  2. In the visuals menu, find and click Bullet (row 2, column 4).

    selecting bullet chart type
  3. Note that the shelves of the visual changed. They are now X, Y, Measures (mandatory), Compare to, Qualitative Ranges, Projection, Label, Tooltips, and Filters.

    shelves of bullet visual type
  4. Populate the shelves from the available fields (Dimensions, Measures, and so on) in the Data menu.

    • Measure shelf: add the field Api13. Change the aggregation, so that the shelf contains max([Api13]).

      [Optional] Limit the output to the top 10 performers:

      • Click the (right-arrow) icon to the left of the field, and select the Order and Top K option.
      • After the menu expands, enter 10 in the Top K option.
      Developer Note. The Measure shelf supports only positive values.
    • Compare To field: add the field Api12. Then customize the expression to reflect whether the school reached the state-wide target of API=800.

      • Click the (right-arrow) icon to the left of the field, and select the [] Enter/Edit Expression option.
      • In the Enter/Edit Expression modal window, change the expression to the following formula:
        Max(if([Api12] < 800, [Api12] + [Target], 800))
      • Click Validate Expression to ensure that everything works.
      • Finally, click Save.
    • Qualitative Ranges shelf: add the field Api12. Then, specify the equation that returns the upper limit of the first qualitative range. For this visual, we are using simple scalar values.

      • Click the (right-arrow) icon to the left of the field, and select the [] Enter/Edit Expression option.
      • In the Enter/Edit Expression modal window, change the expression to the scalar value 600, and click Save.
      • To create other ranges, simply click the (right-arrow) icon to the left of this field, and select the Duplicate option. Then open the Enter/Edit Expression modal window for the duplicate, change the value, and click Save.

      In this example, we defined four ranges: at 600, 700. 800, and 1000.

    • Projection field: add the field Api13. Then, specify the equation that projects the current measurement to some future date.

      • Click the (right-arrow) icon to the left of the field, and select the [] Enter/Edit Expression option.
      • In the Enter/Edit Expression modal window, change the expression to the following formula:
        if( max([Api13]) > 800, max([Api13]), max([Api13]) + 2 * max([Target]))
    • Label field: add the field Api13, and convert the aggregation to maximum, for max([Api13]).

      [Optional] Duplicate the field, and change its definition to max('API'), using the Enter/Edit Expression interface. Move this field above the other field.

    • Tooltips shelf: add more fields here, such as Api12, Target, Dname, Sname, and so on. We suggest that you apply an Alias to these fields.
    • Filters shelf: add the filters here. We used Cname for name of the County (selecting Santa Clara), and Stype for school type (choosing H for high school).
    • Y shelf: add the field Sname (school name) to trellis the visual.
    filled shelves of bullet visual
  5. [Optional] Click the Settings menu, select Marks, and de-select the Show trellis borders option. See Showing Trellis Borders.
  6. [Optional] Click the Colors menu, and select different options for Background Color and Foreground Color from the color palette menu. You may change the Projection Opacity, too.
  7. [Optional] Alias the fields.
  8. Click Refresh Visual.

  9. The new bullet visual appears. Note that it is trellised, which is why it is sorted on the Sname field (school name), not on the measure Api13.

    Additionally, the Projection value is not visible; this is because it is relatively low for high-performing schools.

    Trellised bullet visual, top 10
  10. Change the order property of the Measure shelf by selecting the Bottom K option with a value of 10, and click Refresh Visual.

    Note that in all cases here, the projection value is visible because it is relatively large compared to the projected improvement for schools that already reached the 800 API threshold.

    Trellised bullet visual, bottom 10
  11. Change the title to High School Performance - Bullet.

    • Click (pencil icon) next to the title of the visualization to edit it, and enter the new name.

    • [Optional] Click (pencil icon) below the title of the visualization to add a brief description of the visual.

  12. At the top left corner of the Visual Designer, click Save.

  13. At the top left corner of the Visual Designer, click Close.

To adjust the bullet visual, check all the available settings for this visual.