
Every open feature request carries a score from 0 to 100. It's not a verdict; it's a ranking with its reasons attached, so "why is this at the top?" always has an answer you can check.
The formula lives under Feedback portal โ Kai PM โ Scoring settings. The factors for one request show on the request itself.
Two are measured, two are judged.
Demand is upvotes. Votes lose weight as they age (a vote from a year ago counts half), and each request is ranked against the other requests in your public lanes. A request in a hidden lane can't collect votes, so demand is left out of its score rather than counted as zero.
Revenue is the combined monthly revenue of the accounts behind a request: everyone who voted plus whoever submitted it. Several people from one company count once, at the company's value. The value comes from the value field in your identify call, or from the company record. Requests in hidden lanes count revenue at half weight, because only the submitter is known.
Strategic alignment is Kai's judgement, 0 to 10, of how well the request serves the goals in your company profile. Kai writes a one-line reason with it.
Effort is Kai's judgement, 0 to 10, of how much work it is. With a code repository connected, Kai reads the relevant part of your codebase first, which is what turns a guess into an estimate. Higher effort lowers the score.
Each factor has a weight. Turn one up to make it matter more; the Revenue row has a switch to leave it out entirely. A factor Kai hasn't judged yet simply drops out of the mean, so a fresh request isn't penalised for being new.
Under Custom criteria you add factors of your own: a title, whether it argues for or against building, a weight, and a description of how to judge it. With Judged by Kai on, Kai scores it from the description on every request. Switch it off and it's a field your team fills in by hand; Kai leaves it alone.
Keep the description concrete. "Fits the enterprise segment" is judgeable; "important" isn't.
Ranking needs something to rank against. Below 25 open requests, demand and revenue use fixed bands instead of percentiles, so one upvote scores the same on any small board. The overview says so while it applies.
On a request, the judged factors are sliders. Drag one and the score recalculates; the row shows Edited by you and keeps your value even when Kai re-judges the rest. Reset to AI hands it back. Hover the info icon to read Kai's reason and, if you overrode it, what Kai had suggested.
Measured factors can't be edited; they're what happened.
Scores recalculate when something moves: a vote, an edit, a status change, a settings change. Kai also re-checks quiet boards about weekly so vote decay and revenue changes catch up. Re-judging (asking Kai to look at a request again) happens on edits, or on request from the chat.
Two tags come out of the score for free: quick win for high benefit and low effort, and stalled for a request that has gathered no demand in a long time.
Score feature requests with Kai PM at the top of Scoring settings stops all calculation and hides scores everywhere. Nothing is deleted; switch it back on and the scores return and refresh.
Almost always it's the mean doing its job: one strong factor diluted by three middling ones. Check the weights first. Then check the judged factors and override the one that's off. If revenue is missing on requests you know come from paying accounts, the identify value hasn't been sent for those contacts yet.