The Reading Plan Algorithm

How BiblePlan creates balanced, sustainable reading schedules

Overview

Creating a Bible reading plan isn't as simple as dividing chapters by days. Bible chapters vary dramatically in length—some contain as few as 10 verses while others exceed 150. A naive approach would result in some days requiring 5 minutes of reading and others demanding over an hour.

BiblePlan solves this by finding the arrangement of chapters that keeps your daily reading as even as possible—not an approximation, but the mathematically best split for your books and timeframe.

Core Concepts

Two Distribution Modes

The algorithm automatically selects between two strategies based on the ratio of chapters to days:

  • Chapter-based distribution (chapters ≥ days): Groups whole chapters into each day, choosing the grouping that keeps daily verse counts most balanced.
  • Whole-chapters-first distribution (days > chapters): Gives each chapter at least one day, then hands the spare days to the longest chapters—so most days are a whole chapter or a clean part of one, rather than stopping mid-chapter at an odd verse.

Verse-Weighted Allocation

When multiple reading groups exist, available days are distributed proportionally based on total verse count—not chapter count. This ensures fair allocation since chapters vary so dramatically in length. A group with twice as many verses receives approximately twice as many days.

How the Balancing Works

When you have more chapters than days, the algorithm must decide which chapters to group together while keeping each day's reading load balanced. It does this exactly—by solving the problem directly rather than guessing and checking.

Step 1.Calculate the Ideal Daily Verse Count

// The target amount of reading per day
idealVersesPerDay = totalVerses / totalDays

This is the target each day should sit close to. For example, reading all 1,189 chapters over 365 days works out to roughly 86 verses per day.

Step 2.Define What “Balanced” Means

A plan is a set of dividers dropped into the ordered list of chapters—one bucket per day. We score a plan by how far each day's verse total strays from the ideal, squared and summed. The lower the score, the more even the plan.

// Lower is better — the total squared gap from ideal
score = Σ (versesOnDay − idealVersesPerDay)²

Squaring means a single very heavy day is penalized far more than several slightly-off days, which pushes the plan toward consistency.

Step 3.Find the Best Split with Dynamic Programming

Rather than try one arrangement and tweak it, the algorithm effectively considers every possible set of day boundaries and returns the one with the lowest score. It does this efficiently with dynamic programming: the best way to fit the first few chapters into a few days is reused to build the answer for more chapters and more days.

// best[d][j] = lowest score for the first j chapters in d days
best[d][j] = min over i < j of:
best[d−1][i] + (verses from i+1 to j − ideal)²

Because it explores the whole space, the result is provably the most balanced plan possible—there is no arrangement it failed to consider. And since every day is guaranteed at least one chapter, a plan can never quietly finish early with empty days at the end.

Step 4.Keep It Fast

Checking every arrangement naively would be slow for long plans. But the scoring math has a helpful property (the cost is convex, so the best divider position only ever moves forward as you add days), which lets the algorithm skip the vast majority of the work using a divide-and-conquer shortcut.

The result: even a whole-Bible plan over two years is computed in a few thousandths of a second—fast enough to preview instantly in your browser.

What This Achieves

The Most Consistent Daily Load Possible

Daily reading amounts are as even as the chapter sizes allow—the mathematically optimal balance, not a close guess. No surprise “heavy days” that break your reading rhythm.

Every Day Is Used

A plan always spans exactly the days you asked for. You will never end up with blank, reading-less days at the end of your schedule.

Natural Boundaries

Whenever possible, each day is a whole chapter or a clean range of chapters, keeping your reading experience logical and natural.

Sustainable Engagement

By keeping daily reading consistent and manageable, the algorithm helps you build a sustainable Bible reading habit.

Example: Reading the Gospels in 30 Days

Input

  • Books: Matthew (28 ch), Mark (16 ch), Luke (24 ch), John (21 ch) = 89 chapters
  • Total verses: 3,779
  • Days: 30
  • Ideal verses/day: ~126

Algorithm Process

  1. Calculate ideal: 3,779 verses ÷ 30 days = 126 verses/day
  2. Score every possible way to place the 29 day-dividers across 89 chapters
  3. Dynamic programming returns the lowest-scoring (most even) split
  4. Whole chapters are kept together—no mid-chapter breaks

Output

  • Average: 126 verses/day (exactly on target)
  • Range: 96–147 verses/day (tight, provably minimal spread)
  • Standard deviation: ~13 verses (very consistent)
  • Every day ends at a chapter boundary (e.g. Day 1 = Matthew 1 – 5)

Limitations & Trade-offs

The algorithm finds the optimal balance, but “optimal” still lives within some real constraints worth understanding.

Chapter Boundary Constraint

When using chapter-based distribution (chapters ≥ days), the algorithm keeps entire chapters together to preserve natural reading boundaries. That creates an unavoidable challenge with extremely long chapters.

The clearest example is Psalm 119, which contains 176 verses—more than most plans' daily target. Whenever that chapter falls on a day, that day will carry a heavier load than the others, and no arrangement can avoid it without splitting the chapter.

This is a deliberate trade-off: we prioritize keeping chapters whole (more natural, meaningful reading) over perfect mathematical balance. The optimizer still places that heavy chapter on whichever day minimizes the overall imbalance.

Whole Chapters vs. Perfectly-Flat Verses

When there are more days than chapters, chapters must be split to fill every day. We split by whole chapters first and only divide the longest ones by verse—so most days land on a natural boundary.

Splitting purely by verse count would make daily totals marginally more uniform, but at the cost of frequently starting and ending a day in the middle of a chapter. We chose the more natural reading experience.

Reading Order Is Preserved

Chapters are always read in the order you arranged them—the algorithm balances the load but never reorders your books. Reading groups set the order: groups you read in sequence flow together as one continuous stream (so a single day may finish one group and begin the next), while a “read together” group progresses through its books side by side.

What it won't do is invent an interleaving you didn't ask for—the plan follows the structure you set up.

The Result: Consistency Without Complexity

Within these constraints, the algorithm achieves its goal: creating sustainable, balanced Bible reading plans that adapt to your schedule and reading preferences.

By finding the mathematically most even distribution while respecting natural reading boundaries, BiblePlan turns what could be an overwhelming commitment into a manageable daily habit. The algorithm handles the complexity—so you can focus on what matters: engaging with Scripture.

Ready to experience balanced Bible reading?

Create Your Reading Plan