[Expand]General Information
[Collapse]WinForms Controls
  .NET Core Support
 [Expand]What's Installed
 [Expand]Build an Application
 [Collapse]Controls and Libraries
  [Expand]Forms and User Controls
  [Expand]Messages, Notifications, and Dialogs
  [Expand]Editors and Simple Controls
  [Expand]Ribbon, Bars and Menu
  [Expand]Application UI Manager
  [Expand]Docking Library
  [Expand]Data Grid
  [Expand]Vertical Grid
  [Expand]Property Grid
  [Expand]Pivot Grid
  [Expand]Tree List
  [Expand]Gantt Control
  [Collapse]Chart Control
   [Expand]Getting Started
   [Expand]Charting Basics
   [Collapse]Series Views
    [Collapse]2D Series Views
     [Expand]Area Series Views
     [Collapse]Bar Series Views
       Side-by-Side Bar Chart
       Side-by-Side Stacked Bar Chart
       Side-by-Side Full-Stacked Bar Chart
       Stacked Bar Chart
       Full-Stacked Bar Chart
       Side-by-Side Range Bar Chart
       Overlapped Range Bar Chart
       Waterfall Chart
     [Expand]Financial Series Views
      Box Plot Chart
     [Expand]Gantt Series Views
     [Expand]Pie and Donut Series Views
     [Expand]Point and Line Series Views
     [Expand]Radar Series Views
     [Expand]Polar Series Views
      Funnel Series View
      Swift Plot Series View
    [Expand]3D Series Views
     Series Views Compatibility
   [Expand]Chart Elements
   [Expand]Providing Data
   [Expand]Data Representation
   [Expand]Appearance Customization
   [Expand]End-User Features
   [Expand]Design-Time Features
   [Expand]Visual Elements
   [Expand]Additional Resources
  [Expand]Map Control
  [Expand]Rich Text Editor
  [Expand]Spell Checker
  [Expand]Form Layout Managers
  [Expand]Navigation Controls
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Sunburst Control
 [Expand]Common Features
  Get More Help
 [Expand]API Reference
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Waterfall Chart

A Waterfall chart (also called Bridge Chart, Cascade Chart or Flying Bricks Chart) displays a sequence of bars that indicate positive or negative changes. You can plot Waterfall charts based on relative or absolute data values, and add two types of summary bars. The Total bar summarizes all values and is on the right side of the chart's diagram. Subtotals can be defined between two adjacent points (bars) to display intermediate values.

Demo: Waterfall

Expanded Chart Type Characteristics

The table below lists the main waterfall chart characteristics:

Feature Value
Series view type WaterfallSeriesView
Diagram type 2D XYDiagram
Number of arguments per series point 1
Number of values per series point 1

The following image shows the waterfall chart elements:

Expanded Create a Waterfall Chart

The following example demonstrates how to create a ChartControl with a series of the WaterfallSeriesView type at runtime:

Refer to Providing Data for more information about how to populate a chart with data.

Expanded Process Relative and Absolute Data Values

If the WaterfallSeriesView.ValueOptions property is set to a WaterfallRelativeValueOptions (see WaterfallRelativeValueOptions) object, the control processes data source values as increments/decrements. You can create and assign a WaterfallAbsoluteValueOptions (see WaterfallAbsoluteValueOptions) object to treat data as absolute values.

The following charts visualize the same data but use different value options:

Relative Value Options Absolute Value Options

The following table demonstrates data source values:

Argument Value
November 20
December 10
January -5
February 10
March -10

Plot a Waterfall Based on Relative Values

Set the WaterfallSeriesView.ValueOptions property to a WaterfallRelativeValueOptions (see WaterfallRelativeValueOptions) object if the chart data source stores increments/decrements. You can also display a start bar with the initial value before the measurement starts. The chart plots a start bar at zero if the start bar value is not specified.

Related API members

Plot a Waterfall Based on Absolute Values

Set the WaterfallSeriesView.ValueOptions property to a WaterfallAbsoluteValueOptions (see WaterfallAbsoluteValueOptions) object if the chart data source stores a set of absolute values. In this case, the chart automatically calculates differences and plot them as waterfall bars.

Related API members

Expanded Add Total and Subtotals

Waterfall Chart can display a final total bar, and any number of subtotal bars between any two plotted points.


You can only add subtotals to a series with qualitative arguments.

Related API Members:

Expanded Customize Waterfall Appearance

You can change the color of rising bars, falling bars, the total, subtotals, connectors, and the start bar. The Chart Control also allows you to customize the line style of connectors.

Related API Members:

Expanded Format the Crosshair Label and Series Labels

You can format waterfall-related text in the crosshair label and series labels. To do this, use the SeriesBase.CrosshairLabelPattern and SeriesLabelBase.TextPattern properties. The Chart Control provides a {VABS} placeholder that displays an absolute point value. The {V} placeholder shows value changes for rising and falling bars, and the absolute value for the Total bar.

Expanded Specify Series Label Position

To specify waterfall series label position, use the WaterfallSeriesLabel.Position property. The WaterfallSeriesLabelPosition enumeration lists the available values.

Expanded Create a Chart with Multiple Waterfall Series

You can create a waterfall chart with multiple series. In this case, the chart displays points of different series as stacked bars:

To create such a chart, use a series template to generate series or add multiple series.


The following properties are synchronized in all waterfall series in the Chart Control. If you change these properties' values for any waterfall series, the Chart Control applies the same value to all other waterfall series.

When you set a property before a Series is added to a chart's collection, an ArgumentException (see System.ArgumentException) is thrown.

Is this topic helpful?​​​​​​​