The submission queue
Overview
The queue pages are built from repeated readings of CRAN's public incoming directory at cran.r-project.org/incoming. Each subfolder represents a stage, each tarball a submission, and the listed timestamp is the only record of when activity occurred.
Figures on the queue overview and the stages page come from these readings. Before 2026-03-09 the data comes from R-hub's cransays archive; after that date it is collected by this project.
Current queue and wait times
The headline count reflects the most recent reading. It counts entries, not unique packages, so a package appearing in two folders or with two versions queued at once is counted more than once.
Each square is one queue entry, colored by wait time. Illustrative data.
Each square in the dot grid represents one entry, colored by how long it has been in the queue. Squares link to the package page when the package is already in the catalog. Packages in newbies (first-time submissions) are typically not yet cataloged.
Illustrative numbers. Each entry falls into exactly one bucket.
Time in Queue measures the age of the directory entry, not the age of the submission itself. It is the difference between the current time and the timestamp CRAN lists for the file. The timestamp belongs to the file, so it usually persists across folder moves and resets when a file is replaced or rewritten.
The stage names
Each folder in the incoming directory represents a stage.
Illustrative numbers. Each card groups one or more folders from the incoming directory.
Each stage corresponds to a step in the CRAN review process:
- newbies
- First-time submissions from maintainers new to CRAN.
- inspect
- Awaiting manual inspection, after the automated checks found a problem that is likely a false positive.
- pending
- A CRAN team member is reviewing the submission more closely.
- waiting
- CRAN has asked the maintainer to respond or make changes.
- pretest / recheck
- Automated testing before acceptance. The overview groups these under Testing.
- publish
- Accepted and expected to appear on CRAN shortly.
- archive
- A rejected submission. On the archived packages page, the same word refers to packages removed from CRAN's live listing.
- Reviewer initials
- Other folder names represent individual reviewers. The overview groups these under Human Review.
Scroll sideways to follow the whole flow.
The diagram follows a single submission, meaning one uploaded file. Line width shows how often submissions since 2024 took each step, and moves rarer than the thinnest line are left out. Pretest is the most common first folder and no file is seen moving into it from another folder, so the diagram starts every upload there. A file first seen in a later folder is drawn as coming from pretest. A file that is not published is usually replaced by a new upload, which starts over as a separate submission even when it keeps the same version number. Files seldom stay in publish long enough for a reading to catch them, and the archive folder is almost never listed, so the lines into Published and Not published start from the last folder each file was seen in, checked against CRAN's release record. Readings are roughly an hour apart, so quick steps are missed. A fast pass through recheck, for example, shows up as pretest straight to Published.
The meaning of each folder is described in the R Journal's CRAN incoming reports (2018, 2019). See also the CRAN Repository Policy and the R Packages book chapter on releasing.
Package flow
The Package Flow matrix is computed from the full reading history. Each cell counts the number of times a package was observed moving from one stage to another between consecutive readings.
| Initial | Review | Testing | Author | Publish | |
|---|---|---|---|---|---|
| Initial | · | 46 | 68 | 34 | 10 |
| Review | 23 | · | 16 | 9 | 3 |
| Testing | 100 | 4 | · | 31 | 9 |
| Author | 27 | 8 | 30 | · | 4 |
| Publish | 4 | 2 | 12 | 1 | · |
Proportions follow the matrix on the queue page, scaled so the heaviest cell is 100. Darker cells had more transitions.
Moves that happen entirely between two readings are never observed. A package resubmitted with a new version can appear as a single move across stages it did not actually pass through.
Update schedule
The incoming directory is read roughly once an hour. The site's own copy refreshes about once a day. A submission that arrives and clears between two readings is not recorded.
The daily chart shows the last reading of each calendar day (UTC). It is a snapshot, not a daily total or average.
The daily chart
Each day in the chart can be in one of several states:
A gap at the right edge is normal and means recent readings have not yet reached the site. The chart covers a fixed 90-day window ending today. Days before data collection began are not shown as gaps.
Queue time on package pages
Each release in a package's timeline can show how long that version sat in the queue. The figure runs from the first reading that listed the version to the last one, or to its publication on CRAN if that came first, because a file can stay listed after it is published. A version seen in a single reading is shown as listed once, since its stay was shorter than the time between readings.
A version that goes unlisted for more than a day while the queue is still being read, and is then listed again, has usually been turned back and sent in again. Its figure counts only its last stay before publication, and the release says when the version was first listed. A gap with no readings at all, while the reader was down, does not split a stay.
The figure is left out when the version was first listed after it was published, which is a later resubmission of the same version number, and when the publication time is unknown and the version had more than one stay. Submissions that never reached CRAN are not shown.
The site-wide median and 90th percentile under the timeline cover the releases whose stay ended in the year before the latest reading, measured the same way, and are recomputed each time the site's data is refreshed.
When a package is in the latest reading, its page names the queued version, its folder and how long it has been there, with the time of the reading. That line can be up to a day old.