Best BookTracker Apps

How do reading statuses map between book tracker apps?

Best Book Tracker Apps editors · Data refreshed 3 November 2026 · Editorial assessment

Bottom line.The four core statuses, want to read, currently reading, read and did not finish, exist in every major tracker under slightly different names, so they move cleanly when you import. Paused, owned and custom shelves are where moves go wrong: StoryGraph has a paused status and an owned marker, Goodreads and Hardcover do not publish a paused status, and custom shelves become tags in StoryGraph but shelves in Literal.

Facts checked 3 November 2026

The crosswalk

StatusGoodreadsThe StoryGraphHardcoverNotes
Want to readWant to Read (to-read in the export file)To readWant to readMoves cleanly
Currently readingCurrently Reading (currently-reading)Currently readingReadingMoves cleanly; progress usually does not
ReadRead (read)ReadReadRead dates move if present in the file
Did not finishDid Not Finish shelf, since March 2026Did not finishDid not finishStoryGraph imports a Goodreads did-not-finish shelf
PausedNo built-in status; use a custom shelfPaused, since December 2024Not published; use a listWill not map automatically
OwnedCustom shelfOwned markerUse a listBecomes a tag or list
Custom shelvesCustom shelvesImported as tagsLists and tagsLiteral recreates them as shelves

Apps not in the table (Literal, Fable, BookBuddy, Bookly, Basmo) use the same core statuses under their own labels; check each app's import screen before a move.

What goes wrong in a move, and how do you fix it?

Problem after importCauseFix
Paused books show as currently readingSource app had no paused statusRe-mark them as paused in StoryGraph, or add a "paused" list in Hardcover
DNF books show as readAn old custom "dnf" shelf was not mappedFilter your old shelf name and change the status
Owned books lost"Owned" was a custom shelfRe-tag after import; BookBuddy is built for owned books
Duplicate entriesTwo editions of the same bookMerge or delete one; check yearly totals
Progress reset to zeroProgress is not in the export fileUpdate currently reading books by hand

How should you set up statuses before you move?

  1. In the old app, give every paused book a single custom shelf named "paused" and every abandoned book the DNF status.
  2. Export (see exporting your Goodreads library).
  3. Import, then filter by your old shelf names and fix statuses using the table above.
  4. Update progress on currently reading books by hand.

Our guides to moving to StoryGraph and moving to Hardcover walk through each import, paused or DNF explains which status to use, and the lesson on reading statuses and shelves covers the basics.

Questions

Q1Does StoryGraph import Goodreads DNF books?

Yes. StoryGraph says it imports currently-reading, read, to-read and did-not-finish shelves from Goodreads.

Q2Does Goodreads have a paused status?

No. Keep the book on Currently Reading and add a custom shelf such as "paused".

Q3What happens to custom shelves when I move to StoryGraph?

They become tags.

Sources

  1. 1thestorygraph.com (Goodreads import, owned marker)
  2. 2The StoryGraph changelog, Mark Books as 'Paused' (20 December 2024)
  3. 3Goodreads blog, Did Not Finish shelf
  4. 4Hardcover
  5. 5Literal, Goodreads import guide