Value.Traits

ValueInternal

Returns a table describing the traits (capabilities and behaviors) of the given value. Intended for internal use only.

Examples on this page use shared sample tables. View them to understand the input data before reading the examples below.

Syntax

Value.Traits(value as any) as table

Parameters

NameTypeRequiredDescription
valueanyYesThe value whose traits to inspect.

Return Value

tableA table listing the traits associated with the value.

Remarks

This function is intended for internal use only and is not designed to be called directly in user-written M queries.

Value.Traits returns a table that describes the traits — capabilities and behavioral characteristics — of a given value. Traits are an engine-internal concept that allows the Power Query runtime to reason about what a value can do, beyond what its M type alone conveys.

### What traits represent

Traits can include information such as:

  • Whether a table supports query folding for specific operations (filtering, sorting, grouping).
  • Whether a value supports streaming or buffering.
  • What native query capabilities a data source exposes.
  • Whether a function supports specific calling conventions or optimizations.

The engine and custom connectors use traits to make decisions about how to evaluate queries — for example, whether to fold a Table.SelectRows call into a SQL WHERE clause or to evaluate it locally.

### Structure of the returned table

The returned table's exact schema is not publicly documented and may vary across Power Query versions. It typically contains columns identifying the trait name (or kind) and associated metadata. Because the schema is engine-internal, code that depends on specific column names or trait identifiers may break across updates.

For most users, the capabilities that traits describe are surfaced automatically by the engine (e.g., query folding happens transparently). Value.Traits is useful primarily in custom connector development and engine diagnostics where you need to programmatically inspect what capabilities a value advertises.

Examples

Example 1: Inspecting traits of a simple value

Output
Value

Example 2: Traits return a table structure

Value.Traits("hello") is table
Output
Result
1TRUE

Compatibility

Power BI Desktop Power BI Service Excel Desktop Excel Online Dataflows Fabric Notebooks