Skip to content

Recurring Journal Entries

Recurring journal entries are scheduled JEs that post on a regular cadence — monthly rent accruals, depreciation provisions, intercompany transfers, prepaid amortization, and any other repeating bookkeeping you’d otherwise type by hand each period.

Eclipse posts the entry, advances the schedule, and logs every run, so you only revisit the template when the underlying numbers change.

Find them under Accounting → Recurring Journal Entries at /finance/journal-entries/recurring.

Use a recurring JE for entries that repeat on a calendar (not transactions tied to invoices, bills, or expenses — those have their own recurring engines).

Common examples:

  • Rent accrual — debit Rent Expense, credit Rent Payable on the first of each month, with auto-reverse on the first of the next month so the bill payment lands cleanly.
  • Depreciation — debit Depreciation Expense, credit Accumulated Depreciation monthly per asset, no auto-reverse.
  • Prepaid amortization — debit Insurance Expense, credit Prepaid Insurance monthly, no auto-reverse.
  • Intercompany allocation — debit / credit between related-party accounts on a fixed schedule.

If the entry mirrors a real transaction (a vendor bill, an invoice, an expense), prefer the dedicated recurring engine for that entity instead — they post the source document plus the GL entry together.

  1. From /finance/journal-entries/recurring, click New template.

  2. Give the template a name (visible on every generated JE) and an optional description.

  3. Pick the schedule:

    • Interval — Weekly, Bi-weekly, Monthly, Quarterly, Yearly.
    • Day of month — optional. If set, monthly/quarterly entries land on that day; if the month is shorter, Eclipse falls back to the last day.
    • First run date — when the first JE should post. Subsequent runs advance from this date by the interval.
  4. Pick the Category:

    • Standard — most entries.
    • Adjusting — period-end adjustments (often paired with auto-reverse).
    • Closing — year-end roll-up entries.
    • Reversing — explicit reversal entries.
    • Opening — opening-balance entries.
  5. Toggle Auto-reverse next period if Eclipse should automatically reverse each generated JE on the first of the next month. Useful for accrual entries that get cleared by the actual cash transaction.

  6. Add at least two lines. Each line needs an account, a debit OR a credit (not both), and an optional description. Eclipse shows a live Balanced / Unbalanced indicator — debits must equal credits before you can save.

  7. Click Create template. Eclipse schedules the first run for the date you picked.

Every day at 03:00 UTC, Eclipse looks for templates whose next run date is today or earlier. For each one:

  1. Re-validates the lines (balanced, no negative amounts, no line with both debit + credit).
  2. Posts a fresh journal entry through the system posting service. The entry inherits the template’s category and (if enabled) gets an auto_reverse_date set to the first of the next month.
  3. Advances the template’s next run date by the interval.
  4. Logs the run with the generated journal entry’s ID.

If you want to run a template right now instead of waiting for the cron, use the Run now button on the template row. The behavior is identical — same idempotency rules apply.

Eclipse will only post one journal entry per (template, scheduled date) combination. If the cron runs twice for the same date (unlikely but possible during retries), the second attempt is logged as skipped, not posted. You will not see duplicate JEs.

Each row in the template list has icon actions:

  • Run now — fires the template immediately (subject to idempotency).
  • Pause / Resume — stops or resumes future scheduled runs. Past runs and posted JEs stay intact.
  • Delete — soft-deletes the template. Past runs and posted JEs stay intact; future scheduled runs stop.

To edit a template, delete the existing one and create a new one. (We don’t currently support in-place edits, partly to preserve audit clarity — every line change should be a new template version.)

Each template’s run log lives in the database (journal_entry_template_runs). Common statuses:

  • succeeded — the JE posted; the row carries the JE id.
  • skipped — a successful run already exists for this scheduled date; no JE posted.
  • failed — the runner couldn’t post (unbalanced lines, paused template, period closed). The error message is captured.
  • running — currently in flight (transient).

If a template’s last run badge says Failed, hover the badge to see the error. The most common causes:

  • Period is closed. Reopen the period (Month-End Close), run the template manually, re-close.
  • Template was paused. Resume from the row actions.
  • Lines became unbalanced (rare, only happens if the template was edited via direct DB write).

If you turn on Auto-reverse next period when creating the template, Eclipse:

  1. Posts the entry with the date you scheduled.
  2. Sets auto_reverse_date on the posted JE to the first of the next month.
  3. A separate daily cron picks up posted JEs whose auto_reverse_date is today or earlier and creates a reversal entry automatically.

This is the standard accrual pattern: book the expense in the current period, reverse it next period when the actual cash transaction lands.

  • Recurring expenses — for repeating expense transactions.
  • Recurring invoices — for scheduled customer billing (in the invoices section).
  • Recurring bills — for scheduled vendor bills (in the AP section).
  • Auto-reverse cron — runs daily at 01:00 UTC, picks up any posted JE with an auto_reverse_date ≤ today.