{% extends "base.html" %} {% block title %}About RICE — RICE Scorer{% endblock %} {% block content %}

How issues get ranked

Every Sentry issue gets one RICE score, so the worst stuff floats to the top.

RICE
=
{% set num = [ ('megaphone', 'Reach', 'rgba(108,95,199,0.18)', '#A396DA', 'rgba(108,95,199,0.45)'), ('zap', 'Impact', 'rgba(255,119,56,0.16)', '#FF9E6B', 'rgba(255,119,56,0.45)'), ('target', 'Confidence', 'rgba(77,199,113,0.16)', '#6BD894', 'rgba(77,199,113,0.45)'), ] %} {% for icon, label, bg, fg, bd in num %} {{ label }} {% if not loop.last %}×{% endif %} {% endfor %}
Effort

Big reach × high impact × high confidence, divided by how hard it is to fix. Reach & the final score are computed deterministically; impact, confidence & effort come from the AI reading the actual code.

{% set dims = [ ('megaphone', 'Reach', '#A396DA', 'rgba(108,95,199,0.4)', 'How many users hit it recently. Recent volume × a recency decay — an issue not seen in weeks fades toward 0. Reach is relative to the busiest issue in the same environment, so every environment is judged on its own scale. Background jobs report 0 users, so their event count stands in as the volume.'), ('zap', 'Impact', '#FF9E6B', 'rgba(255,119,56,0.4)', 'What kind of thing is broken — fixed by category, set in your config from highest to lowest.'), ('target', 'Confidence', '#6BD894', 'rgba(77,199,113,0.4)', 'How sure the AI is after tracing the code. Higher when it pinpoints the exact failing line, lower when it can only find the general area.'), ('wrench', 'Effort', '#8FBCFF', 'rgba(92,157,255,0.4)', 'Fix complexity from the code: 2 = one-line guard, 5 = a module, 8+ = migration / multi-service. Min 0.5.'), ] %} {% for icon, label, fg, bd, desc in dims %}
{{ label }}

{{ desc | safe }}

{% endfor %}

Impact by category

The AI maps each issue to the category it actually harms. Higher = worse when it breaks. These come from your config.yaml.

{% for cat, score in categories %} {% set cm = cat_meta.get(cat, ['shapes', '#9AA0AA']) %}
{{ cat }}
{{ score }}
{% endfor %}

Override anything, anytime

Disagree with a score? Click a row and edit any dimension. Your value drives the effective RICE, but the AI's original is kept — every change lands in the Disagreements log, which is the training signal for sharpening future scoring.

{% endblock %}