Presentation
This post covers the results of the feature vote that ran alongside the 2026 user survey on the All Our Ideas platform. The vote ran from July 27 to October 1, 2026. Only survey participants had the link, and 80 of the 178 survey participants took part in the feature ranking. In total, they cast 4,714 votes. On average, each participant answered 59 questions and spent about 8 minutes voting.
Participants compared 57 features: 48 that we seeded and 9 suggested by participants during the vote. I manually approved each participant suggestion to avoid spam and duplicates.
Features added late in the vote had less exposure and fewer votes, which may have pushed their score up or down. The table flags the five suggestions with fewer than 63 votes (the bottom 10% of the vote count).
The raw data is available in choice_votes_272357e3-e41a-4e0f-9675-37d254b07435.xlsx (468.8 KB) the methodology is described in this post.
Interpreting the Scores
The score of each feature reflects how often participants preferred it in head-to-head comparisons. Each time a feature was picked over another, it earned a "win". The score is the share of wins relative to the total number of votes, so a score of 50 means the feature won as often as it lost. Here's how to read the scores:
- High scores (above 63): the mean + 1 standard deviation. These features won most of their comparisons and show strong community preference.
- Middle range (36 to 63): mixed responses. These features are useful to many but not critical to all users.
- Low scores (below 36): the mean − 1 standard deviation. These features lost most of their comparisons and are likely more niche or less urgent.
What changed since 2024
Most of the 2024 top features are still at the top: easier joins across two datasets (77), appending new rows to an existing project (72), renaming a column (71) and saving facets (71). Since scores depend on the other options in the vote, which changed between the two years, compare them with care.
Feature Ranking
The Source column shows where each suggestion came from:
- Seed: a feature from the initial list of options.
- User: a feature suggested by a participant and added to the vote.
The 2024 column gives the score of the same or a similar feature in the 2024 vote, when there was one (* marks a loose match).
| Score | 2024 | Source | Feature Request | Comment |
|---|---|---|---|---|
| 77 | 72 | Seed | Making joining records easier across 2 datasets | Related goal post. Related: #7761. This also covers the user suggestion Add the ability to do a table lookup of values from a pre-defined list of values, which scored 67. |
| 72 | 73 | Seed | Allowing import again for adding new rows to existing projects | Related goal post. Related: #715 |
| 71 | 72 | Seed | Easier rename a column by clicking on it | Related goal post. Related: #6282. Pull requests are available, but we need help from UX designers and front-end developers to finalize them. |
| 71 | 65 | Seed | Option to save facet | Related goal post. Related: #560 |
| 69 | 68 | User | Improved memory efficiency for working with larger projects | Related goal post. Added late, only 24 votes. We didn't include this feature in the 2026 options because it wasn't linked to a specific GitHub issue and was hard to scope. It's interesting to see a participant bring it back, and to see it reach the top anyway. |
| 69 | 61 | Seed | Drag and drop for columns | Related goal post. Related: #7273. Pull requests are available, but we need help from UX designers and front-end developers to finalize them. |
| 68 | User | Revised user documentation with emphasis on readability by non-technical users, AND a list of recommended or approved tutorials. | For reference, we provide on the website a list of structured courses to learn OpenRefine. It's notable that this high-scoring request came from a participant: we still have work to do on user onboarding. | |
| 66 | 67 | Seed | Better support of nested structure (improved record mode) | Related goal post. Related: forum 425 |
| 65 | 58 | Seed | Allow bookmarking and naming starred GREL expressions | Related goal post. It can be solved via #109 or with a simpler design. |
| 64 | 58 | Seed | In context help for GREL or wizard-like approach to writing GREL (like Excel) | Related goal post. Related: forum 1181. See also AI integrated help for writing regular expressions, GREL etc, which scored 51. |
| 64 | 44* | Seed | Better discoverability and installation for OpenRefine extensions | Related goal post. Related: #7215 #3223. A sharp increase from 2024. |
| 63 | Seed | Add duration and estimated completion time for long-running operations | Related: #7318 | |
| 62 | 58 | Seed | More and better notifications, error messages, and warnings in OpenRefine | Related goal post. Related: error handling label |
| 60 | 53 | Seed | Make OpenRefine more useful as an exploratory tool | Related goal post. Related: #5315 |
| 57 | 46 | Seed | Save Template exports | Related goal post. Related: #1928 #468 |
| 57 | 46 | Seed | Pause and resume my operations in OpenRefine | Related goal post. Related: forum 482 |
| 56 | User | Add minimal code editor features in the expression window: Indents, line number, syntax highlighting. | ||
| 56 | 76 | Seed | Native Reconciliation with arbitrary external datasets | Related goal post. Related: #2003. A sharp decrease from 2024, when it shared the top score. |
| 54 | 44 | Seed | Better support of MARC format for complex dimensions and repeating elements. | Related goal post. Related: #794 #2127 |
| 54 | 58 | Seed | Multi-user support | Related goal post. Related: #101 |
| 54 | Seed | Allow starred expression to be named | Related goal post. Related: #6345 | |
| 53 | Seed | Feature to duplicate a project | Related: #7633 | |
| 52 | Seed | Allow users to partially apply histories | Related: #7500 | |
| 51 | 44 | Seed | A walkthrough tutorial | Related goal post |
| 51 | 40 | Seed | AI integrated help for writing regular expressions, GREL etc | Related goal post. |
| 51 | 51 | Seed | Improved integration with cloud storage services for data import and export. | Related goal post |
| 51 | 45 | Seed | Allow users to set precise values for numeric facets | Related goal post. Related: #1928 #5008 |
| 50 | 62 | Seed | Support Python 3 as an expression language - Continue maintaining Python / Jython option. | Related goal post. Related: #2249 |
| 50 | User | When doing a refresh, keep facets and the status of columns (width, collapsed yes/no). | Added late, only 48 votes. | |
| 50 | 59 | Seed | Support for more diverse (human language) alphabets/scripts, date and time formats... | Related goal post |
| 49 | Seed | Better generalizability for the "transpose columns into rows" operation | Related: #7205 | |
| 49 | 49 | Seed | Improved JSON parsing when calling API | Related goal post. Related: #1440 #2515 |
| 47 | 53 | Seed | Option to refactor the JSON operation scripts to edit a facet, update a GREL command, or add a step | Related goal post |
| 46 | User | A direct GOTO column feature to scroll left and right to a particular column for managing "wide" data sets. | Added late, only 61 votes. | |
| 46 | 32 | Seed | Delete multiple projects at once | Related: #4965. A sharp increase from 2024, and it will ship in the next OpenRefine release! |
| 44 | Seed | Improve stop word handling - customizable and/or multi-language | Related: #7330 | |
| 43 | Seed | Clean up and document REST API to ease 3rd party integration with Openfine (command line, libraries ...) | Related goal post. Related: #7712 | |
| 42 | 47 | Seed | Make OpenRefine easier to learn | Related goal post |
| 42 | Seed | Better preference screen | Related goal post. Related: #2796 | |
| 41 | 26 | Seed | Easy start/stop of OpenRefine on Windows | Related: #3221 |
| 40 | Seed | Support the reconciliation protocol version 1.0-draft | Related goal post. Related: #7186 | |
| 39 | Seed | Add any and all GREL controls for working with arrays of booleans | Related: #7636 | |
| 39 | 37 | Seed | Add transform for book-style Title casing | Related goal post. Related: #7329 |
| 38 | 34 | Seed | A keyboard-accessible GUI | Related: forum 434 |
| 37 | 43 | User | Work with qualifiers in Wikidata | Participants suggested this feature in both 2024 and 2026. However, it's outside OpenRefine's scope, since it requires support in the Wikidata reconciliation service. See the conversation in #4318. |
| 36 | 34 | Seed | An online, hosted instance of OpenRefine | Related goal post. Related: forum 1631. We are also seeing more JupyterHub-enabled deployments within institutions. |
| 36 | 20 | Seed | Support R as an expression language | Related: #1226 |
| 35 | 50 | Seed | Supported REST API for external use | Related goal post. Related: forum 1628. A sharp decrease from 2024. |
| 34 | Seed | Spread/unpack operator support for GREL | Related: #7635 | |
| 33 | Seed | Add a reduce GREL function | Related: #7565 | |
| 32 | User | Allow storing from the UI of one or more Jython classes/libraries, that can be reused/imported by scripts | Added late, only 61 votes. | |
| 31 | Seed | Make map() a synonym for forEach() in GREL | Related: #7618 | |
| 28 | Seed | Dark mode | Related goal post. Related: #3017 | |
| 28 | User | Prioritize Jython over GREL. Jython is more powerful, flexible, and generic. It helps to reuse code from OpenRefine in other scripts | Added late, only 41 votes. | |
| 28 | 29 | Seed | Parquet import/export | Related: #1929 |
| 15 | 20 | Seed | Support HDF5 importer and selecting a file within it | Related: #640 |
Additional Feature Requests
The open-ended questions of the user survey also brought feedback and suggestions that weren't part of the vote. They give useful insight into user needs.
macOS support. Several respondents asked for a native app for Apple silicon and for continued support on macOS. We plan to make this available in the next release.
New requests:
- Easier installation and upgrade: "Every time I go to update to a new version I'm convinced that I'm going to do something wrong and lose everything."
- Easier saving and re-creating of projects, which one respondent described as painful.
- Keeping facets and column state (width, collapsed) after a refresh. A participant also suggested it during the vote, where it scored 50.
Already available, but hard to find. Some requests are for features OpenRefine already offers, which points to a discoverability issue:
- Finding and transforming values across all rows, columns and cells.
- Writing to several columns at once from a single expression.