Skip to main content
iVentureTeam

workcenter_dashboard_graph

The load chart on a work center card. Three series over the same days: the capacity line, the load bars and, separately, the hours that exceed it.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 27, 2026Updated August 27, 20264 min read
Technical nameworkcenter_dashboard_graph
Field typestext
Viewskanban
Modulemrp, the Manufacturing app
Used in core1 occurrence, the work center kanban in mrp
VersionsOdoo 20.0, Odoo 19.0, Odoo 18.0
No-code setupNo. It is set in view XML and depends on module-specific data
Alternativesdashboard_graph, picking_type_dashboard_graph, gauge, mrp_timer

What the work center load chart does

Capacity planning on a shop floor comes down to one question per work center: is the coming week overloaded. A list of hours answers it slowly; a chart answers it at a glance, provided the chart distinguishes load from overload.

This widget does exactly that. It draws the work center's capacity as a line and its load as bars beneath, and puts any hours beyond capacity into a separate bar series with its own color. The overloaded days are then obvious without reading a single figure.

Everything charted comes from a JSON payload the server computes into a text field, the same arrangement the accounting dashboard chart uses. The widget adds the three-series configuration and the tooltip wording.

What this means for your team

Overload that nobody sees becomes a late order. The value of separating excess into its own series is that it turns a quantitative question, how many hours, into a visual one, is there a second bar, which is the kind of question a planner can answer while scrolling.

It also makes the conversation about capacity concrete. Adding a shift or moving an order is easier to argue for against a picture of three overloaded days than against a spreadsheet of hours.

Supported options in Odoo 19

The widget declares one supported type and no options. Its one knob is an attribute, and the rest of the configuration is in the payload. Read from the work center dashboard graph source, Odoo 19.0.

OptionTypeWhat it does
graph_typestring (attribute)Written on the field element rather than in options, naming the chart type, as on the base dashboard chart.(since Odoo 18.0)
the payload's labelskey in the JSON valueFeeds the category axis, so the granularity of the chart is decided by the server-side computation.(since Odoo 18.0)

Tooltips are enabled here. The base dashboard chart disables them; this one keeps them and formats each value with the word hours appended, including a special case for the total load series. That is the clearest sign the two charts are configured independently despite looking related.

Working examples

The usual usage

<field name="workcenter_load"
       widget="workcenter_dashboard_graph"
       graph_type="bar"/>

The attribute names the chart type, as on the base widget.

The three series

capacity      # drawn as a line
total load    # drawn as bars
excess load   # separate bars, own color

All three come from the same payload and share one category axis.

The base chart

<field name="kanban_dashboard_graph"
       widget="dashboard_graph" graph_type="line"/>

One series, no tooltips, and a much simpler payload.

Why excess is its own series

The configuration is a scatter chart carrying three datasets, which is how a line and two bar series share one axis. The line is the capacity, and the two bar series are total load and excess load, each with its own color drawn from the interface palette.

Separating excess into its own dataset rather than coloring individual bars is the design decision worth noting. It means the legend concept exists even though the legend is not shown, and it lets the excess sit visually on top of the load rather than replacing it.

Tooltips are the other difference from the base chart. They are enabled, and the label callback appends the word hours to each value, with a distinct branch for the total load series so that the number shown is the total rather than the segment. That branch is the sort of thing that only makes sense once you know the series are stacked conceptually.

The x axis is a plain category axis fed by the payload's labels, so the granularity, days or weeks, is entirely the server's choice.

Version compatibility

VersionStatusNotes
Odoo 20.0In developmentNot released. Byte-identical to Odoo 19 on the development branch.
Odoo 19.0VerifiedVerified against the shipped source. Byte-identical to Odoo 18.
Odoo 18.0VerifiedFirst version.
Odoo 17.0Not availableWidget does not exist.
Odoo 16.0Not availableWidget does not exist.

Upgrade note. The widget arrived in Odoo 18 and the Odoo 18 and Odoo 19 files are identical, so nothing needs attention. What can change independently is the server-side payload, so a customization that produces its own load data should be re-checked after an upgrade.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026. The development branch is unstable and this may still change; we re-verify this page after the release.

Byte-identical. The file on the development branch matches Odoo 19 exactly, including the three series and the tooltip wording.

Common problems and fixes

SymptomCause and fix
No excess bars appearNo day exceeds capacity, or the payload has no excess series. Check the server-side computation; the widget draws what it is given.
The chart is emptyThe field holds no payload. Check the computed field on the work center.
Tooltips show no unitsThe label callback appends the word hours, so a missing unit means a custom payload or a patched chart. Check for a customization of the chart options.
The axis granularity is wrongIt comes from the payload's labels. Change the server-side computation.
The chart type does not changeThe knob is an attribute, not an option. Write graph_type on the field element.
Missing widget errorThe manufacturing module is not installed in that database. Install Manufacturing, or use the base dashboard chart.

Work center load chart vs the alternatives

WidgetBest forKey difference
workcenter_dashboard_graphWork center cards where overload must be visible at a glanceThree series with excess load separated out, and tooltips that name the unit
dashboard_graphA single series on a cardOne dataset, no tooltips and a simpler payload
picking_type_dashboard_graphOperation type dashboardsIts own bucket coloring and click targets
gaugeOne value against a targetA single figure rather than a series
mrp_timerDurations on the same screensA live number rather than a chart

The base dashboard chart is the right widget for a single series and a simpler payload, and the inventory variant is the equivalent for operation types. Use this one only where load and capacity genuinely need comparing, because its payload shape is specific.

Frequently asked questions

Why is excess load a separate series?+
So overload is visible as a second bar rather than as a color difference. It also lets the tooltip distinguish total load from the excess portion.
How do I change the chart type?+
With the graph_type attribute on the field element, as on the base dashboard chart. It is an attribute rather than an option.
Why do these tooltips work when the base chart's do not?+
Because the two charts are configured independently. This one enables tooltips and appends the word hours to each value.
Where does the data come from?+
A JSON payload the server computes into a text field, including the labels that define the axis granularity.
Which versions have it?+
Odoo 18 onwards, and byte-identical in Odoo 19 and on the Odoo 20 development branch.

Capacity decisions made before the order is late

Work center capacity, routing and the planning screens on top of them decide whether a delay is spotted a week early or a day late. We implement Odoo Manufacturing planning on versions 16 through 19.

Book a free consultation

How this page was produced

The three datasets, the separate excess series, the enabled tooltips with their hours wording and the category axis were read from the work center dashboard graph source on the Odoo 19.0 branch, and compared against the base dashboard chart in web. Version coverage comes from the absence of the file on 16.0 and 17.0 and byte comparisons against 18.0 and the public development branch. Spotted an error? Tell us and we will correct the page.