Skip to main content

Question Type: rating_question

Numbers on a scale

Updated over 3 weeks ago

When and Why to Use

Use this to capture how strongly a respondent feels about a given item or concept on a numeric scale. Ideal for:

  • Measuring attitudes or satisfaction

  • Capturing degrees of liking, agreement, or importance

  • Top-box / bottom-box analysis with recodes

Portrait Experience

  • Slider, button, or card-style input depending on style

  • Labels shown inline or at ends of the scale

  • Optional "Don't know" button at the bottom if configured

Landscape Experience

  • Input rendered more horizontally with larger interactive area

  • Works well with remote or keyboard input

  • Card layout shown as tiles with label-only options

Configuration Options

Option

Type

Required

Default

Description

question

string

yes

-

Text prompt shown to respondent

number_of_points

int

no

5 or label count

Number of points on the scale

first_point

int

no

1 or first label

Starting value on the scale

style

string

no

slider

"slider", "button", "card", or "star"

labels

Dict[int, str]

no

-

Labels for specific points on the scale

image

MediaItem

no

-

Optional image shown above the question

default

int

no

random

Default value used in test mode

dont_know_option

str

no

-

Adds a "Don't know" option with this label

recodes

Dict[str, str]

no

-

Map numeric responses into grouped outputs

custom_validator

`Callable[[int], str

None]`

no

-

**topics

dict

no

-

For token substitution in text and grouped reporting

Example Code

Basic 5-point slider:

s.rating_question( "How much do you like this product?", number_of_points=5, style="slider", labels={ 1: "Dislike", 3: "Neutral", 5: "Like" } )

With recodes:

s.rating_question( "How much do you like this product?", number_of_points=5, recodes={ "1": "dislike", "2": "dislike", "3": "neutral", "4": "like", "5": "like" } )

With "Don't know" and topic token:

s.rating_question( "How do you rate {brand} cars?", number_of_points=5, labels={ 1: "Dislike", 3: "Neutral", 5: "Like" }, dont_know_option="Don't know", topic="Ford" )

Notes

  • slider and button styles include numeric values with labels

  • card style shows label-only tiles for opinion-based text ratings

  • dont_know_option responses are recorded as -999

  • Use recodes to collapse scale points for reporting

  • custom_validator is helpful for attention checks or edge case handling

Did this answer your question?