How to Make a Book Tracker in Notion

Short answer

Make a Books database with Status, Pages, Current page, Started, Finished and Rating. A Progress formula shown as a bar tracks every book, a Reading now gallery shows what you’re on, and a Read this year view counts your books, adds up the pages and averages your ratings.

Rather skip the setup? Our Book Tracker is ready to use, $9 once.
A Notion book tracker: a progress bar on every book, Reading now cards at 32% and 35%, and a year of 4 books, 1718 pages and a 4.25 average

Try it: reading now and your year

Type the page you’re on and the bar moves. Press Finish and the book moves to your year, with how long it took. The bottom row counts the books, adds up the pages and averages your ratings, like Notion’s Calculate row. The sample is our test from October 31.

Reading now

  • Sense and Sensibility Jane Austen 32% of 409
  • Middlemarch George Eliot 35% of 880

Read this year

Title Pages Read in Rating
Emma 474 1 day
Pride and Prejudice 432 9 days
Frankenstein 280 7 days
Jane Eyre 532 24 days
Count 4 Sum 1718 Average 4.25

1. A database for your books

Every book goes into one database, whatever its status. One list lets you show the same books in different ways later.

  1. Make a new page called Reading. On it, type /table, pick the table option and call the database Books.
  2. Add the properties below. Give Status three options: To read, Reading and Read.
  3. Add a page for each book you’re reading now, and a few you’ve finished this year.
PropertyTypeWhat it’s for
TitleTitleThe book
AuthorTextWho wrote it
StatusSelectTo read, Reading or Read
PagesNumberHow many pages the book has
Current pageNumberThe page you’re on
StartedDateThe day you started
FinishedDateThe day you finished
RatingNumber1 to 5, once you’ve read it

2. A progress bar on every book

Add a Formula property to Books called Progress:

Progress
if(
  prop("Status") == "Read",
  1,
  if(
    prop("Pages") > 0,
    min(
      prop("Current page") /
        prop("Pages"),
      1
    ),
    0
  )
)

It divides the page you’re on by the pages in the book. A book set to Read counts as done even if you never typed the last page, and min stops the bar at 100% if you type a page past the end.

The formula gives a number like 0.32. To turn it into a bar:

  1. Click the Progress column name and pick Edit property.
  2. Set Number format to Percent and Decimal places to 0.
  3. Under Show as, pick Bar. Choose a color and leave Show number on.
The Progress property settings in Notion: Number format Percent, Decimal places 0, and Show as Bar in green with Show number on

Don’t skip Decimal places. Left on Default, Notion shows every digit: in our test, Sense and Sensibility, on page 131 of 409, said 32.0293398533% until we set it to 0.

Our Notion test books with a green bar each: the finished books at 100%, Middlemarch 35%, Sense and Sensibility 32% and Moby Dick 0%
Our test on October 31. Frankenstein has no current page, but it’s set to Read, so it shows 100%.

3. What you’re reading now

The view you’ll open most is a short shelf of the books you’re in the middle of.

  1. Click + next to the view name, add a Gallery view and call it Reading now.
  2. Click Filter, pick Status and tick Reading.
  3. In the view’s Properties, show Author and Progress.
A Reading now gallery in Notion with two cards: Middlemarch by George Eliot at 35% and Sense and Sensibility by Jane Austen at 32%
The bar shows on the cards too. Set a book to Read and it leaves the shelf.

Want covers on the cards? Add a cover to each book page, then open the view’s Layout and set Card preview to Page cover.

4. How long each book took

Add a formula called Read in. It counts the days from Started to Finished, both days included:

Read in
if(
  empty(prop("Started")) or
    empty(prop("Finished")),
  "",
  lets(
    d, dateBetween(
      prop("Finished"),
      prop("Started"),
      "days"
    ) + 1,
    format(d) +
      if(d == 1, " day", " days")
  )
)

Emma, started and finished on the same day, showed 1 day. Pride and Prejudice, read from October 1 to 9, showed 9 days, and Jane Eyre took 24. Until a book has both dates, Read in stays empty.

The + 1 counts the day you started. Without it, a book you start and finish on the same day would say 0 days.

5. Your reading year in numbers

Last, a view of the books you finished this year, with the totals at the bottom.

  1. Add a Table view called Read this year.
  2. Click Filter, pick Status and tick Read.
  3. Add a second filter on Finished. It starts as Is relative to today, This week. Change week to year.
  4. Click Sort, pick Finished and set it to Descending, so the newest is on top.
  5. Click the Title column name, pick Calculate, then Count and Count all. Do the same on Pages with More options and Sum, and on Rating with More options and Average.
Read this year in Notion, filtered to this year: Emma, Pride and Prejudice, Frankenstein and Jane Eyre, with Count 4, Sum 1718 and Average 4.25
Our test on October 31. The Great Gatsby, finished in December 2025, stays out.

The view keeps itself up to date. This year always means the current year, so on January 1 it starts again from zero, and last year’s books stay in Books.

A book you haven’t rated yet doesn’t pull the average down. In a second test with ratings of 4 and 5 and one left empty, Average showed 4.50.

Questions

Can I add book covers?

Yes. Open a book, click Add cover and upload a picture or paste a link to one. In a gallery view, set Card preview to Page cover and the cover shows on the card.

How do I track ebooks or audiobooks?

Use the same two numbers in another unit. If your ebook shows a percent, put 100 in Pages and the percent in Current page. For an audiobook, use minutes. The bar works the same way.

Can I set a reading goal for the year?

The count at the bottom of Read this year is your progress. Put the goal in the view’s name, like Read this year (goal 24), and you see both at a glance.

Why does my progress show long decimals?

Notion shows every digit until you choose how many. Open the property and set Decimal places to 0. In our test, 32.0293398533% turned into 32%.

Does this work on the free Notion plan?

Yes. Databases, formulas, filtered views and the Calculate row are all on the free plan.