Rill Explore

by rilldataa0a211654875No licenseListed Oct 8, 2026Updated Oct 8, 2026

Detailed instructions and examples for developing explore dashboard resources in Rill

Instructions onlyData & Analytics
AI-generated overview

Guides creation of Rill explore dashboard YAML resources for interactive metrics-view analysis.

What it does
This skill provides instructions and examples for authoring explore dashboard resources in Rill, the default dashboard type for slice-and-dice analysis of a single metrics view. It covers inline explores inside metrics view files, standalone explore YAML files, minimal configurations, and optional settings such as dimensions, measures, time ranges, defaults, themes, and security. It also includes a full JSON schema reference for the explore syntax.
When to use it
Use it when building or modifying an interactive Rill dashboard that lets users drill down and slice a metrics view by dimensions. It is also useful when deciding between explore dashboards and canvas dashboards, or when configuring defaults, time ranges, and access rules for an explore.
Requirements
No scripts are shipped; it is instructions only. It assumes a Rill project with an existing metrics view resource and familiarity with YAML configuration.

Instructions for developing an explore dashboard in Rill

Introduction

Explore dashboards are resources that configure an interactive, drill-down dashboard for a metrics view. They are Rill's default dashboard type, designed for explorative slice-and-dice analysis of a single metrics view.

Explore dashboards are lightweight resources that sit downstream of a metrics view in the project DAG. Their reconcile logic is fast (validation only), so they can be created and modified freely without performance concerns.

When to use explores vs canvases

  • Explore dashboards: Best for explorative analysis, drill-down investigations, and letting users freely slice data by any dimension.
  • Canvas dashboards: Best for fixed reports, executive summaries, or combining multiple metrics views into a single view.

Development approach

Explore dashboards require minimal configuration. In most cases, you only need to:

  1. Reference the metrics view
  2. Select which dimensions and measures to expose (usually all, indicated by '*')
  3. Optionally configure defaults and time ranges

Best practice: Keep explore configurations simple. Only add advanced features (security policies, custom themes, restricted dimensions) when there is a clear requirement. The metrics view already defines the business logic; the explore just controls presentation and access.

Inline explores in metrics views

The preferred way to create an explore is inline in the metrics view file: set version: 1 and add an explore: block, which emits an explore resource with the same name as the metrics view (or name: if set):

yaml
# metrics/sales.yamlversion: 1type: metrics_viewdisplay_name: Sales Analytics
model: sales_modeltimeseries: order_date
dimensions:  - column: region  - column: product_category
measures:  - name: total_revenue    expression: SUM(revenue)
# Inline explore configurationexplore:  display_name: Sales Dashboard  dimensions: '*'  # Optional: dimensions to expose ('*', a list, or {exclude: [...]}); defaults to all  measures: '*'    # Optional: measures to expose ('*', a list, or {exclude: [...]}); defaults to all  time_ranges:    - P7D    - P30D    - P90D  defaults:    time_range: P30D

For legacy reasons, metrics views without version: auto-emit an explore even without an explore: block; metrics views with version: 1 only emit one when the block is present.

Use inline explores to keep the metrics view and its dashboard configuration together. Use separate explore files when you need multiple explores for the same metrics view.

Example with annotations

Note that most explore dashboards work great without any of the optional properties shown here.

yaml
# dashboards/sales_explore.yaml
# Required: resource typetype: explore
# Required: the metrics view this dashboard rendersmetrics_view: sales_metrics
# Optional: display name shown in the navigation and headerdisplay_name: "Sales Performance"
# Optional: informational banner at the top of the dashboardbanner: "Data refreshes daily at 6 AM UTC"
# Optional: which dimensions to expose (use '*' for all)dimensions: '*'
# Optional: which measures to expose (use '*' for all)measures: '*'
# Optional: customize the time range dropdowntime_ranges:  - P7D  - P30D  - P90D  - P12M  - rill-MTD  - rill-YTD
# Optional: default dashboard state on first loaddefaults:  time_range: P30D  comparison_mode: time
# Optional: pin specific time zones to the top of the selectortime_zones:  - America/Los_Angeles  - America/New_York
# Optional: custom themetheme: my_theme
# Optional: restrict access to specific users.# Note: usually you should do this in the metrics view, not the explore resource.security:  access: "{{ .user.admin }} OR '{{ .user.email }}' LIKE '%@example.com'"

Minimal example

For most use cases, a minimal explore is sufficient:

yaml
type: exploremetrics_view: sales_metricsdisplay_name: "Sales Dashboard"dimensions: '*'measures: '*'

Reference documentation

Here is a full JSON schema for the explore syntax:

allOf:    - properties:        allow_custom_time_range:            description: Defaults to true, when set to false it will hide the ability to set a custom time range for the user.            type: boolean        banner:            description: Refers to the custom banner displayed at the header of an explore dashboard            type: string        defaults:            additionalProperties: false            description: |                Defines the defaults YAML struct.                  ```yaml                  defaults: #define all the defaults within here                    dimensions:                      - dim_1                      - dim_2                    measures:                      - measure_1                      - measure_2                    time_range: P1M                    comparison_mode: dimension #time, none                    comparison_dimension: filename                  ```            properties:                comparison_dimension:                    description: For dimension mode, specify the comparison dimension by name.                    type: string                comparison_mode:                    description: 'Controls how to compare current data with historical or categorical baselines. Options: `none` (no comparison), `time` (compares with past based on default_time_range), `dimension` (compares based on comparison_dimension values)'                    enum:                        - none                        - time                        - dimension                    type: string                dimensions:                    $ref: '#/definitions/field_selector_properties'                    description: Provides the default dimensions to load on viewing the dashboard                measures:                    $ref: '#/definitions/field_selector_properties'                    description: Provides the default measures to load on viewing the dashboard                time_range:                    description: Refers to the default time range shown when a user initially loads the dashboard. The value must be either an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) (for example, PT12H for 12 hours, P1M for 1 month, or P26W for 26 weeks) or one of the [Rill ISO 8601 extensions](https://docs.rilldata.com/reference/rill-iso-extensions#extensions).                    type: string            type: object        description:            description: Refers to the description of the explore dashboard            type: string        dimensions:            $ref: '#/definitions/field_selector_properties'            description: List of dimension names. Use '*' to select all dimensions (default)            examples:                - dimensions:                    - country                - dimensions:                    exclude:                        - country                - dimensions:                    expr: ^public_.*$        display_name:            description: Refers to the display name for the explore dashboard            type: string        embeds:            additionalProperties: false            description: Configuration options for embedded dashboard views            properties:                hide_pivot:                    description: When true, hides the pivot table view in embedded mode                    type: boolean            type: object        lock_time_zone:            description: When true, the dashboard will be locked to the first time provided in the time_zones list. When no time_zones are provided, the dashboard will be locked to UTC            type: boolean        measures:            $ref: '#/definitions/field_selector_properties'            description: List of measure names. Use '*' to select all measures (default)            examples:                - measures:                    - sum_of_total                - measures:                    exclude:                        - sum_of_total                - measures:                    expr: ^public_.*$        metrics_view:            description: Refers to the metrics view resource            type: string        security:            $ref: '#/definitions/dashboard_security_policy_properties'            description: Security rules to apply for access to the explore dashboard        theme:            description: Name of the theme to use. Only one of theme and embedded_theme can be set.            oneOf:                - description: Name of an existing theme to apply to the dashboard                  type: string                - $ref: '#/definitions/theme_properties'                  description: Inline theme configuration.        time_ranges:            description: |                Overrides the list of default time range selections available in the dropdown. It can be a string or an object with a 'range' and optional 'comparison_offsets'.                  ```yaml                  time_ranges:                    - PT15M // Simplified syntax to specify only the range                    - PT1H                    - PT6H                    - P7D                    - range: P5D // Advanced syntax to specify comparison_offsets as well                    - P4W                    - rill-TD // Today                    - rill-WTD // Week-To-date                  ```            items:                $ref: '#/definitions/explore_time_range_properties'            type: array        time_zones:            description: Refers to the time zones that should be pinned to the top of the time zone selector. It should be a list of [IANA time zone identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)            items:                type: string            type: array        type:            const: explore            description: Refers to the resource type and must be `explore`            type: string      required:        - type        - metrics_view      title: Properties      type: object    - $ref: '#/definitions/common_properties'description: Explore dashboards provide an interactive way to explore data with predefined measures and dimensions.id: explore-dashboardstitle: Explore Dashboard YAMLtype: object

Source and attribution

Source:rilldata/agent-skillsinskills/rill-exploreat commita0a2116

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal