Documentation

Grid Rating Question

Article

Grid Rating Question

When and Why to Use

Use this to capture numeric or labeled ratings across multiple items in a structured format. It's useful for:

  • Performance, satisfaction, or quality ratings
  • Comparing several attributes on a common scale
  • Collecting fine-grained opinion data

Supports sliders, buttons, and star ratings with configurable point labels.

Chat Style
  • Each row is presented individually with a rating interface (slider, star, or button)
  • User can scroll vertically through rows
  • Labels and anchors are shown depending on the labels config
Button styleSlider styleStar style with an image
Button Markdown Many OptionsSlider Plain TextStar Plain Text Images
Traditional Experience
  • Grid layout with rows as items and ratings as columns
  • Ratings are input inline per row
  • Star and slider styles are fully supported
Button style, mobile optimizedStar style with imagesSlider style
485783988 4c02504c 2f99 4fdb b807 3cc7e6717369485784256 a9eb2ec5 2f7e 4f38 a149 880dddbd406d481543039 f1c2cd68 a514 4633 bf69 1df449e1108c
Configuration Options
OptionTypeRequiredDefaultDescription
questionstringyes-The prompt shown to the user
rows`List[strMediaItem]`yes-
row_namestringyes-Used in reporting structure
imageMediaItemno-Top-level image shown above the question
number_of_pointsintno5Number of rating points
first_pointintno1 or first labelFirst point on the scale
labelsDict[int, str]no-Custom labels for scale points
stylestringnosliderOne of "slider", "button", or "star"
randomizeboolnoFalseWhether to randomize row order
recodesDict[str, str]no-Optional recoding of rating values
dont_know_optionstrno""Optional "Don't know" fallback
skip_emptyboolnoFalseSkip question if no rows provided
defaultDict[str, int]norandomTest data defaults per row
custom_validator`Callable[[Dict[str, int]], strNone]`no-
image_label_fieldstrno-Field used for row image labels
show_image_labelboolnoTrueShow/hide row image labels
image_sizeTuple[int, int]no-Size to render row images
tagss.tag()no-For reporting and text substitution
Example Code

Basic usage:

s.grid_rating_question( "Please rate the following aspects of the product", rows=["Quality", "Price", "Service", "Delivery"], row_name="Product Aspect", number_of_points=5 )

With custom labels and recodes:

s.grid_rating_question( "How would you rate these aspects?", rows=["Speed", "Design"], row_name="Attribute", number_of_points=5, labels={ 1: "Very Poor", 3: "Neutral", 5: "Excellent" }, recodes={ "1": "Low", "2": "Low", "3": "Mid", "4": "High", "5": "High" } )

With star style and default values:

s.grid_rating_question( "Please rate your satisfaction with each brand", rows=["Brand A", "Brand B"], row_name="Brand", style="star", number_of_points=5, default={"Brand A": 4, "Brand B": 5} )
Notes
  • style="slider" shows an interactive scale; use button for tap options or star for visual flair
  • labels can help orient respondents, especially on non-obvious scales
  • custom_validator can enforce variation or prevent straight-lining