Prioritization & Sorting - bjsi/incremental-everything GitHub Wiki
Mastering the Queue: Prioritization & Sorting
To get the most out of Incremental Everything, it's essential to understand how to manage your review queue effectively. This guide breaks down the advanced prioritization and sorting tools at your disposal, allowing you to tailor your learning sessions to your exact needs.
The Priority System Explained
With incremental reading, you can quickly accumulate thousands of articles, notes, and videos. Without a system to manage this volume, the learning process can become chaotic. This is where the priority system comes in.
By assigning a priority to each item, you tell the plugin what is most important to you. The plugin then uses this information to intelligently sort your queue, ensuring that you review the most critical material first. So, priorities are there to manage information overflow. This concept is central to methodologies like the one used in SuperMemo. For a deeper dive into the theory, see SuperMemo's article on the Priority queue.
Setting priorities helps you manage the balance of Volume vs. retention in learning effectively. It prevents your queue from being overloaded with low-value items, which could prevent you from reviewing your high-value investments.
If you want to ensure that you keep a high retention of previously added material, you cannot overload the learning process with new material (new topics[= passive reading Incremental Rem]) because you will not have enough time left to do your daily item review.
Priority Inheritance System
To streamline workflow and make priority management more intuitive, new incremental rems automatically inherit their priority from their closest parent or ancestor that is also an incremental rem.
- How it works: When you tag a new Rem as
Incremental, the plugin searches up through its parents. The first ancestor it finds with theIncrementaltag will pass its priority down to the new Rem. - Fallback: If no incremental ancestor is found, the new Rem will receive the default priority value you have set in the plugin settings.
This system is particularly useful for hierarchically organized notes. For example, if you have an important book summary with a high priority (e.g., 5), any new extracts or notes you create within that summary will automatically inherit the same priority, saving you from setting it manually each time.
The "Set Priority" and "Reschedule" popups also display the ancestor's priority, giving you immediate context when you decide to manually override the inherited value.
Use Cases
- Use Case 1: Deconstructing a High-Priority Document
Imagine you have a PDF of a crucial research paper with a priority of 10. As you read and create highlights (extracts) from it, each new highlight will automatically be assigned a priority of 10. This ensures that all the core concepts from that paper are reviewed together and with the urgency they deserve, without any manual adjustments.
- Use Case 2: Hierarchical Note-Taking
If you have a parent rem for a broad topic like "Quantum Mechanics" with a set priority, any new child rems you create under it (e.g., "Wave-Particle Duality," "Superposition") will inherit that priority. This keeps your knowledge hierarchy organized and ensures that foundational topics and their sub-topics are treated with the same level of importance in your reviews.
Set Priority Popup
You can manually set or adjust an item's priority at any time using the "Set Priority" popup. Access it by:
- Using the
/Prioritizecommand. - Pressing the shortcut
alt/opt+p. - Clicking the "Change Priority" button in the queue's answer bar.
- Creating a new highlight from a PDF (the popup will appear automatically).
This popup provides two interconnected ways to manage priority:
Priority Value (Absolute Priority)
- A numerical value from 0 to 100.
- This is the number that is stored in the "Priority" property of the Incremental Rem.
- Lower numbers mean higher priority.
0is for your most critical material, while100is for the least important. - You can type a value directly or use the top slider for quick adjustments.
💡 Pro-Tip for an Efficient Workflow:
For faster and more effective prioritization, we recommend using a smaller range of values, such as 1-10.
- Why? It helps reduce decision fatigue. Spending mental energy deciding if an item is a 53 or a 58 has a negligible practical effect on your queue.
- Benefits: Sticking to a smaller scale makes prioritizing quicker and more intuitive. You still get the full benefit of the Relative Priority percentile, which automatically ranks the item against everything else.
The full 0-100 range is included for maximum flexibility and to align with the well stablished standard of SuperMemo, but a simpler scale is often more powerful in practice.
Relative Priority
- A percentile rank from 0% to 100%.
- This slider positions the current Rem relative to all other incremental items in your entire knowledge base. Setting it to 10% means this item is more important than 90% of your other items.
- The slider features a color gradient from red (high priority) to blue (low priority) for instant visual feedback.
The two sliders are linked. Adjusting one will automatically update the other, giving you both precise numerical control and intuitive visual ranking.
What the Priority dialog displays:
- (1) [Absolute] Priority input field (selected when the dialog opens, so that you can just type the priority and press Enter to save)
- (2) Priority Badge: the number shows the absolute priority; the color code provides visual indication of the relative priority (shown in 4)
- (3) You can slide this button to select the priority. Pay attention that the position on the slider indicates absolute priority, but the color of the button indicates the relative priority (shown in 4)
- (4) Relative priority of the IncRem (or flashcard), in the scope shown on 6, as well as the number of items that form this scope
- (5) The priority of the closest ancestor, for reference. Shows the name of the closest ancestor, its relationship with the current rem (e.g. parent, grandparent), and if it is an IncRem or a flashcard.
- (6) The scope to be used for the calculation of the Relative Priority. May be "All KB" or a Document. If you select the Document tab, it will display a document scope. You can then use the arrows to go up and down on the hierarchy, and see how the current rem is proportionally positioned in relation to each of these scopes.
Sorting Criteria
Accessed via the three-dot menu in the top-right of the queue, the "Sorting Criteria" popup lets you control the mix and order of cards in your review session.
1) Incremental Rem Randomness
- This slider adjusts how strictly the queue follows your priority settings.
0.00(Default): The queue is sorted strictly by priority. Your highest-priority (lowest number) items will always appear first.1.00(Max): Priority is completely ignored, and all due incremental items are presented in a random order.- Increasing randomness can be useful for discovering older, lower-priority items you might otherwise not see.
💡 Pro-Tip for an Efficient Learning:
The default is set to "0" (strict priority ordering) only to avoid confusion to new users. As soon as you get used to Incremental Reading, set a degree of randomness to ensure you will dedicate a small amount of your study time to dive into material that can bring you valuable insights and "golden nuggets"!
2) Flashcard Randomness
- Similar purposes of the Incremental Rem Randomness, but this setting is used solely to the creation of Priority Review Documents. It does not affect the regular RemNote flashcard queue (it cannot be managed by a plugin). If you want review your high priority flashcards first, you MUST create a Priority Review Document and enter the queue in that document.
3) Flashcard Ratio
The core idea is to strike a balance between learning new things and retaining what you've already learned. As the SuperMemo guide states:
Only a small proportion of time-consuming topics [= passive reading Incremental Rem] is allowed in the learning queue. This proportion is chosen to maximize the fun and efficiency of learning: sufficient inflow of new material combined with the necessary review of your previous investment.
- This slider controls the balance between regular RemNote flashcards (= active recall) and Incremental Rems (= passive reading).
- Slide Left: Decreases the number of regular flashcards shown between incremental rems. All the way to the left (
Only Incremental Rem) will hide flashcards completely. - Slide Right: Increases the number of flashcards. All the way to the right (
Only Flashcards) will hide Incremental Rems. - The default is a balanced mix, showing a set number of flashcards for every one incremental rem.
💡 Pro-Tip: Finding Your Ideal Balance
Use the Flashcard Ratio slider to tailor each study session to your goals.
-
To manage a large flashcard backlog: Set the slider to a higher ratio, like 8-10 cards per incremental rem. This dedicates more time to your existing reviews, ensuring you don't fall behind while still introducing new material to keep sessions engaging, while at the same time avoids boredom for not seeing new material.
-
To focus on new content: If your flashcard queue is manageable, set the slider to a lower ratio, like 4-6 cards per incremental rem. This prioritizes your incremental reading and learning, allowing you to make faster progress through your articles, books, and videos, while ensures your review material will not be forgotten.
Priority Shield
Inspired by advanced metrics in SuperMemo (Priority Protection), the Priority Shield is a real-time diagnostic tool that helps you understand and manage your learning load. It gives you a clear, numerical value for your "Priority Protection" — your capacity to process high-priority material.
You can find it displayed below the answer buttons in the queue (this can be toggled in settings).
What it Measures
The shield displays the priority of the most important due Incremental Rem that you have not yet reviewed. It provides separate metrics for your entire Knowledge Base (KB) and the current Document (if you are studying a specific document).
How to Interpret It
- A HIGH shield value (e.g., Absolute: 30, Percentile: 32%) is GOOD. It means you have successfully reviewed all your high-priority items, and the most important one remaining is of relatively lower importance. Your critical material is "shielded" and protected.
- A LOW shield value (e.g., Absolute: 5, Percentile: 4%) is a WARNING. It indicates that you are falling behind on highly important material.
- A shield reading
100%means you have no overdue items in that scope—the ideal state!
The core purpose of the Priority Shield is to move beyond guessing and provide you with concrete data to build a sustainable and effective study strategy. By knowing the exact priority of the most important Incremental Rem you have yet to review, you can answer critical questions about your learning habits:
- Am I creating new material faster than I can review it? If you consistently see a low Priority Shield value (e.g., your Relative Priority Shield is only protecting 4% of your top priority Incremental Rems), it's a strong indicator that the inflow of new Incremental Rems is too high, and your most important knowledge is at risk of being forgotten.
- Is my "Sorting Criteria" Ramdomness setting right for me? The Priority Shield gives you direct feedback on your randomness setting. If your shield value is too low, you might want to decrease the randomness to focus more strictly on high-priority items. Conversely, if you feel your reviews are too rigid, you can increase randomness and watch how it affects your shield value over time.
- Am I at risk of burnout? The history graph allows you to see trends. If you notice your Priority Shield value steadily declining over days or weeks, it may be a sign that your workload is becoming unmanageable, allowing you to adjust your strategy before you feel overwhelmed.
Priority Shield History
You can track your performance over time by accessing the "Priority Shield History" graph from the queue menu (the three-dot icon). This graph plots your daily shield values, helping you identify trends and adjust your workload or priorities accordingly.
How the Plugin Prioritizes Due Items
Here is a complete breakdown of how the plugin decides which incremental item to show you next. The process balances strict priority with controlled variability.
-
Sorts All Items by Priority First The plugin begins by gathering all of your incremental rems—both due and not yet due—and sorts them into a master list. This initial sort is based purely on the Priority value you have set. Items with a lower number are considered higher priority and are moved to the front of the line. The due date is completely ignored during this step.
-
Filters for Due Items Next, the plugin takes this priority-sorted list and filters it down, keeping only the items that are currently ready for review. It does this by checking if an item's
nextRepDateis today or any day in the past. The result is a perfectly ordered list of all your due items, with the highest-priority ones at the top. -
Applies Controlled Randomness (The "Shuffle") This is where the "Sorting Randomness" setting comes into play. After creating the perfectly sorted list of due items, the plugin applies a degree of "shuffling".
- At 0% randomness (the default): No shuffling occurs. The list remains perfectly sorted by priority, and the plugin will deterministically show you the highest-priority due item.
- At >0% randomness: The plugin performs a series of random swaps on the items in the sorted list. A higher randomness setting results in more shuffling. This introduces a controlled chance for a lower-priority (but still due) item to appear before a higher-priority one.
-
Selects the Top Card Finally, the plugin picks the item at the very top of this final, potentially shuffled list and presents it to you in the queue.
The system is built to surface your highest-priority due material first, regardless of how long it has been overdue. The Sorting Randomness setting is a tool that allows you to introduce variability, preventing the queue from becoming too rigid and ensuring that even lower-priority items get a chance to surface over time.