Skip to main content
iVentureTeam

stat_info

One core view writes widget="stat_info" on a stat button. Nothing registers that name, and a button would not look it up even if something did. Two reasons for the same outcome: nothing happens.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 27, 2026Updated September 8, 20266 min read
Technical namestat_info
Field typesnot applicable
Viewsform
ModuleNone. The name is not registered by any module
Used in core1 occurrence, a stat button on the event track form in website_event_track_quiz
No-code setupNot applicable. There is no widget to select
Alternativesstatinfo, percentpie, gauge

What the stat_info attribute does

Odoo stat buttons are the row of counters at the top of a form: Invoices, Tasks, Meetings. Each one is a <button> with the stat button class, and the number inside it is usually a field rendered with the statinfo widget.

One core view writes something slightly different. In the eLearning quiz module, the Go to Quiz stat button carries a widget="stat_info" attribute, with an underscore, directly on the button element. That name is not registered anywhere in Odoo, and buttons are compiled by the view compiler without any lookup into the field widget registry.

So the attribute is doubly inert: the name does not exist, and the element it sits on would not use it if it did. The button renders as a normal stat button with its label and icon, which is what it was going to do anyway.

What this means for your team

The reason this page exists is that the name reads as meaningful. Someone searching Odoo's views for how stat buttons are built will find it and reasonably assume that is how you make a stat button display something. Copying it produces no error, no warning and no effect, and the misunderstanding can persist for a long time because nothing visibly fails.

It is also a good example of a general habit worth having in custom Odoo work. Widget names are strings, and a misspelled one is not a syntax error. On a field, a wrong widget name at least logs a console warning and falls back by type. On a button, there is no warning at all, because nothing was ever going to read it.

The practical takeaway: audit your custom views for widget attributes on non-field elements. They are always dead, and they usually mark a place where somebody expected behavior that never arrived.

Working examples

The one core usage

<button name="action_view_quiz" type="object"
        class="oe_stat_button" string="Go to Quiz"
        icon="fa-question-circle" widget="stat_info"
        invisible="not quiz_id"/>

Identical in Odoo 16 through 19. Removing the widget attribute changes nothing.

What a counting stat button looks like

<button name="action_view_invoices" type="object"
        class="oe_stat_button" icon="fa-pencil">
  <field name="invoice_count" widget="statinfo"
         string="Invoices"/>
</button>

This is the pattern people are usually looking for. The widget goes on the inner field, and the name has no underscore.

A label-only stat button

<button name="action_open" type="object"
        class="oe_stat_button" icon="fa-cog"
        string="Settings"/>

No field, no widget, no counter. This is what the quiz button is, once you ignore the inert attribute.

Two reasons nothing happens

Two separate mechanisms have to fail for a widget name to do nothing, and here both do.

The first is registration. Odoo resolves a widget name against the fields registry, and when it cannot find one it logs a console warning and falls back to the widget registered for the field's type. We searched the whole Odoo 19 source for any registration of this name and found none, then repeated the search on the 16, 17 and 18 branches with the same result.

The second is the element. That fallback only applies to <field> elements. A <button> is compiled through a different path that reads its name, type, string, icon, class and visibility, and never touches the field registry. So on a button the attribute is not even wrong, it is simply not read, which is why there is no console warning either.

The likely history is a copy from a stat button that did have an inner field, with the widget attribute surviving the deletion of the field it belonged to. That is the ordinary way this kind of leftover appears, and it is worth recognizing because a custom module can carry the same thing for years without a symptom.

The intended widget, statinfo, is a real field widget in the web module and one of the most used in Odoo. It renders a value with a label beneath it, sized for the button box, and it is used 197 times across core.

Version compatibility

VersionStatusNotes
Odoo 20.0Not availableNot released. Still unregistered, and the attribute survives in the same view.
Odoo 19.0Not availableNot registered by any module, and written on a button, which never consults the field registry.
Odoo 18.0Not availableNot registered. Same single usage.
Odoo 17.0Not availableNot registered. Same single usage.
Odoo 16.0Not availableNot registered. Same single usage.

Upgrade note. Nothing to do, in either direction. The attribute has been inert since at least Odoo 16, so deleting it from a custom view changes nothing visible. If a custom module in your database registers its own widget under this name, then that registration is what your views have been using, and it should be documented as non-standard before anyone assumes otherwise.

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 the page after release.

Still there, still unregistered. Unlike some other leftovers being cleaned up in this cycle, the attribute survives on the development branch. The only change to that button is its icon, which moves to Odoo's newer icon set. There is still no registration under this name anywhere.

Common problems and fixes

SymptomCause and fix
My stat button shows no numberThe widget attribute on a button does nothing. A counter needs a field inside the button. Add <field name="your_count" widget="statinfo"/> inside the button element.
No console warning appearsUnknown widget names only warn on field elements. Buttons never look the name up. Nothing to fix; the absence of a warning is expected here.
I copied this and nothing changedThe name is not registered in any version. Use statinfo on an inner field, without the underscore.
It works in one databaseA custom module there registers its own widget under this name. Search your custom addons for the registration and document it as non-standard.
The button label is missingThat comes from the button's string attribute, not from any widget. Set string on the button, or put a field with a string inside it.

Stat_info attribute vs the alternatives

WidgetBest forKey difference
stat_infoNothing. The name resolves to no widget, on an element that would not use itAn inert view attribute, kept in core for four versions and counting
statinfoA counter with a label in a stat buttonThe real widget, spelled without an underscore, and placed on a field inside the button
percentpieA proportion shown in a stat buttonRenders a ring rather than a number
gaugeA value against a maximumRenders an arc chart, usually on kanban cards

If you want a counter in a stat button, put statinfo on a field inside the button. If you want a percentage ring or a small chart there instead, the percent pie and gauge widgets are the usual choices, and both also go on an inner field. Nothing useful goes on the button element itself.

Frequently asked questions

Is stat_info a real Odoo widget?+
No. We searched Odoo 16, 17, 18, 19 and the development branch and found no module registering that name. It appears once in core view XML and has no effect.
Why is there no warning in the console?+
Because it is written on a button. Odoo only looks widget names up for field elements, and only field elements produce the Missing widget warning.
What should I use instead?+
The statinfo widget, spelled without an underscore, placed on a field inside the stat button. That is the pattern the rest of Odoo uses.
Does removing the attribute break anything?+
No. The button behaves identically with or without it, because nothing ever reads it.
Will it be cleaned up in Odoo 20?+
Not on the development branch. The attribute is still there, and there is still no registration behind it. Only the button's icon changes.

Custom views carrying instructions nobody follows

Inert widget names, options that were never read and inherited views pointing at modules that no longer exist accumulate quietly over the years. We audit Odoo customizations against the version you actually run and tell you what can go.

Book a free consultation

How this page was produced

We searched the full Odoo 19.0 source for any registration of this name in the fields registry and found none, then repeated the search on the 16.0, 17.0 and 18.0 branches and on the public development branch. The single usage was read from website_event_track_quiz/views/event_track_views.xml, where it sits on a button element rather than a field. The fallback behavior for unknown widget names was read from the web client's field lookup, which applies only to field elements. Spotted an error? Tell us and we will correct the page.