← Open data

28,886 VS Code feature requests and the 20 upvote rule

Visual Studio Code takes feature requests as issues in its GitHub repository, microsoft/vscode, labelled feature-request, and its triage guidelines publish a vote threshold. A request the team does not plan to build goes to a milestone called Backlog Candidates. If it passes 20 upvotes, a bot moves it to the Backlog. If it is still a candidate after 60 days, the bot closes it. Every issue labelled feature-request, 28,886 filed between November 2015 and 4 October 2026, was read on that day with its dates, close reason, milestone, labels, upvotes and the filer's relationship to the repository.

6,376 were closed as backlog candidates, with a median of one upvote each. Among requests filed since July 2020, when the bot was running, those with one to nineteen upvotes were closed this way 53.6 percent of the time, and the share barely moved between one upvote and nineteen. Past twenty it fell to 3.3 percent. Crossing twenty mostly bought a wait: 53.0 percent of the requests that did are still open in the Backlog, and 19.1 percent were built.

number,created,closed,state,state_reason,milestone,labels,thumbs_up,reactions,comments,author_association
10121,2016-08-04,2023-12-01,closed,completed,December / January 2024,feature-request;on-testplan;layout;workbench-auxwindow,2876,3599,366,NONE
519,2015-11-24,,open,reopened,On Deck,feature-request;workbench-fonts,3784,4816,602,NONE
249826,2025-05-26,2025-08-03,closed,not_planned,Backlog Candidates,feature-request;web,70,70,6,NONE

Download the file, one row per request, compressed with gzip. It is free to copy, quote and use commercially. To cite it, link https://votefirst.app/en/data/vscode-feature-requests and give the read date, 4 October 2026. Every number opens as an issue on GitHub, so any row can be checked there.

How does VS Code decide which feature requests to build?

By milestone. The team's triage guidelines, last edited in April 2025, give each one a meaning. The Backlog holds requests the team is in favour of building that are not yet scheduled for a release. Backlog Candidates holds requests it does not intend to build, put there for the community to weigh in on first. Out of scope is for requests closed because they do not fit the direction of the product, or cost more than they would return.

The vote threshold sits between the two backlogs. The guidelines set it at 20 upvotes and the waiting period at 60 days, and a bot applies both. Of the 6,376 requests closed as candidates, 70.6 percent were closed between 60 and 89 days after they were filed.

What happened to all 28,886?

Outcome Requests Share
Built 8,239 28.5%
Closed as a backlog candidate 6,376 22.1%
Closed as out of scope 3,459 12.0%
Closed as a duplicate 2,060 7.1%
Closed for another reason 4,734 16.4%
Open in the Backlog 3,121 10.8%
Open elsewhere 897 3.1%

A request counts as built when it was closed as completed in a release milestone, named for a month or a version number. The other closures were mostly made from the Backlog milestone, 2,432, or with no milestone at all, 2,074.

Does reaching 20 upvotes get a feature built?

It keeps a request from being closed, and that is most of what it does. The bot's closures begin in earnest in March 2020, so this table counts the 15,540 requests filed from July 2020 to July 2026, each of which has had at least 60 days.

Upvotes Requests Closed as a candidate Built Open in the Backlog
None 7,829 23.0% 37.3% 12.7%
1 to 4 4,958 53.4% 16.9% 12.2%
5 to 9 1,066 55.6% 13.4% 15.9%
10 to 19 621 51.9% 13.2% 19.5%
20 to 99 997 3.5% 18.1% 52.8%
100 or more 69 0.0% 34.8% 56.5%

Below the line, the count made almost no difference: a request with fifteen upvotes was closed about as often as one with a single upvote. Above it, a request was built 19.1 percent of the time, against 16.0 percent for those with one to nineteen. The share built rises only past a hundred.

Requests with no upvotes were built most often, and the reason is who filed them.

Filed by Requests Closed as a candidate Built
Someone with no connection to the repository 8,841 54.3% 12.0%
A past contributor 4,056 12.9% 43.1%
A member of the Microsoft organisation 1,937 3.2% 49.6%
A collaborator on the repository 706 2.0% 60.1%

For someone outside the project, a feature request in VS Code was closed by the vote rule more than half the time and built about one time in eight.

Where do requests that pass 20 upvotes go?

Into the Backlog, where most of them are still waiting. Of the 1,066 requests filed since July 2020 that passed twenty, 565 are open in the Backlog, a median of 1,084 days after filing. The 204 that were built took a median of 231 days.

The Backlog is not only for requests that cleared the bar. 3,121 feature requests are open there, and 2,233 of them have fewer than twenty upvotes, so the team put them there itself. The median open Backlog request was filed 1,172 days ago, and 877 are more than five years old.

Which requests have the most upvotes?

Issue What it asks for Filed Upvotes Where it is on 4 October 2026
#519 Change the font and font size of the workbench November 2015 3,784 Open, On Deck
#10121 Floating windows August 2016 2,876 Built, December 2023
#396 Several project folders in one window November 2015 2,618 Built, November 2017
#10546 Tabs for the integrated terminal August 2016 2,411 Built, June 2021
#3130 Custom mouse shortcuts February 2016 1,929 Open, Backlog
#13953 Errors and warnings for every JavaScript and TypeScript file in a project October 2016 1,508 Open, Backlog
#37350 A three way merge for git conflicts October 2017 1,464 Built, July 2022
#114851 A Vim mode like Sublime Text's January 2021 1,370 Open, Backlog

The most upvoted request ever closed as a candidate, #249826, has 70 upvotes today. Upvotes were counted on the read date, and a closed issue can still collect them, so the 40 closed candidates with twenty or more today may have passed the line after they were closed.

How does VS Code compare with JetBrains and Atlassian?

VS Code builds about as large a share as JetBrains and closes more by rule. Of 149,466 feature requests on JetBrains' tracker, 32.2 percent were built and 4.1 percent declined. Of 179,402 suggestions on Atlassian's, 17.1 percent were built and 37.4 percent were closed unbuilt. In VS Code, 28.5 percent were built and 22.1 percent were closed by the vote rule, and only 13.9 percent are still open, against 36.7 percent at JetBrains and 27.7 percent at Atlassian.

On all three, the typical request drew one vote or none. VS Code's median is none, and 52.4 percent of its requests have no upvote at all. Across the 1,000 most starred GitHub repositories, 72.1 percent have none.

How do you file a feature request for VS Code?

As an issue in the microsoft/vscode repository, and the team's guide asks for three things. Search the open issues first, because someone may have asked already: 2,060 of the requests read here were closed as duplicates. File one request per issue, never a list. And if the request is about an installed extension rather than the editor, file it with the extension. Report Issue, in VS Code's Help menu, fills in the details and helps route the report to the right place.

If the request is already there, vote with a thumbs up reaction on its description. That reaction is what the triage guidelines mean by an upvote, and a comment saying +1 does not count toward the twenty. A request from someone outside the project needs those votes most: of the ones filed since July 2020, 54.3 percent were closed by the rule.

What does that mean for your own feature request board?

A vote threshold answers the requests below it quickly. In VS Code, a request that will not reach twenty upvotes hears so in about two months, where the median open JetBrains request was filed six years ago. What a threshold cannot do is tell a request above it when it will be built, and in VS Code, half of those are still waiting.

Below the line, the count told the team little. One upvote and nineteen ended the same way, closed a little over half the time. On 634 public Canny and Featurebase boards, the median request held two votes.

On VoteFirst, Denied and Completed are columns on the board by default, so a request that will not be built can be shown as denied, and when a release includes a request, every voter who was signed in when they voted is emailed that release. VoteFirst has no GitHub integration, and running a roadmap in GitHub itself is covered on its own page, as is a feedback board for an open source project.

How was this read, and when does it change?

GitHub's GraphQL API was asked for every issue in microsoft/vscode carrying the feature-request label, a hundred at a time in order of filing, on 4 October 2026, and the 28,886 rows hold 28,886 distinct issue numbers. Each row keeps the number, the dates filed and closed, the state and close reason, the milestone, the labels, the thumbs up count, the count of all reactions, the comment count and the filer's association with the repository as GitHub reported it that day. Titles, bodies and comments were not kept. A request whose label was later removed is not in the read.

Upvotes are the thumbs up reactions on the issue. Built means closed as completed in a milestone named for a month or a version. Closed as a candidate means closed in the Backlog Candidates milestone and not labelled a duplicate or out of scope. Requests labelled out of scope or duplicate are counted as such whatever their milestone.

The next read is due by 1 January 2027.

14 days, a card at signup, then $9 or $39 a month.

Related reading

How to submit a feature request, and where to send it 149,466 JetBrains feature requests and what votes did 179,402 Atlassian feature requests and what votes did Feature request votes, six hundred and thirty four public boards measured A public roadmap on GitHub, and the three pieces it takes A feedback board for an open source project, next to GitHub issues Feedback tool data: 22 files about this category, and what is in each one