Recurring income is the spine of most operator forecasts. A monthly retainer, a weekly Shopify payout, a quarterly distribution. ReservWise auto-creates future entries so you do not have to log each one manually — and watches them after creation so a quietly broken stream does not lie to your runway.

Setting up a recurring stream

Open Income → Pipeline → + Add expected income. Fill in amount, expected date, source, and confidence as usual. Then check Recurring. The form expands with three more fields:

  • Frequency — Weekly, Bi-weekly, Monthly, Quarterly, Annually, or Custom (every N days).
  • End date — when the stream stops. Leave blank for an open-ended retainer; set a date for a fixed-length engagement.
  • Auto-promote on receipt — when Plaid imports a matching deposit, the next future entry stays Confirmed instead of dropping to Likely.

Save. ReservWise creates the next 6 entries (or fewer if the end date is sooner) on the schedule you specified.

Confidence levels for recurring income

Recurring streams default to Likely. Promote them to Confirmed only when you have a contract or a payment history that justifies it:

  • Confirmed recurring — signed retainer with a payment history of 3+ on-time payments. Or a payroll W-2 with predictable timing. Treated as 100% in the forecast.
  • Likely recurring — verbal monthly engagement, new retainer with fewer than 3 payments, or a renewal that is implied but not signed. Treated at the Likely weight (default 70%).
  • Speculative recurring — rare. A pattern you hope continues but have no commitment for. Default 30% weight.

Trust-but-verify settings

Auto-created entries are useful right up until they lie to you. ReservWise has three watchdogs that surface stale recurring streams:

  • Missed-payment check. If an expected recurring deposit does not arrive within X days of its expected date (default 5), the next entry drops one confidence level (Confirmed → Likely → Speculative) and a notification surfaces.
  • End-of-cadence check. Each stream surfaces a "is this still happening?" prompt 30 days before the last future entry. Click Extend 6 months, change end date, or stop the stream.
  • Amount-drift check. If actual deposits diverge from the expected amount by more than 10% three times in a row, ReservWise flags the stream for review. Useful for retainers that quietly raised or lowered their fee.
Stop a stream cleanly. When a retainer ends, do not just delete future entries — open the stream and click End stream. ReservWise removes the future Confirmed/Likely lines but keeps historical ones for reports.

Recurring payouts (Stripe, Shopify, etc.)

For platforms that pay out on a fixed cadence (daily Stripe, weekly Shopify, monthly Etsy), set up the recurring stream against the average payout, not a specific number. ReservWise expects amount drift on these and the amount-drift check is automatically loosened to 25%. The forecast uses your trailing 90-day average for projection rather than the original logged amount.

What does not belong here

  • One-time invoices. Even predictable monthly project work that is invoiced separately each month is better as individual Confirmed lines than a recurring stream — it forces you to confirm each engagement is still happening.
  • Investment dividends. They look recurring but are inconsistent. Log them as one-time when received, not as a stream.
  • Refunds and chargebacks. Never recurring even if your business sees them often.
  • Personal transfers from another account. Not income — should be tagged as transfer in reconcile.

Ending a stream

When a recurring engagement ends, three options:

  • End now — all future entries delete. Use when a retainer terminated this month.
  • End on date — set a final entry date; entries after delete. Use when you have a notice period.
  • Pause — temporarily suspend creation of new future entries without deleting the stream definition. Use during an extended client break.

Common mistakes to avoid

  • Marking new retainers Confirmed. A retainer with one payment is not Confirmed yet. Wait for 3 on-time payments.
  • Letting ended streams keep running. A retainer ended in February and is still creating future entries in May. Use End stream the day the engagement ends.
  • Ignoring amount-drift flags. A retainer that quietly went from $3,000 to $2,400 changes your forecast by $600/mo. Acknowledge the flag and update the amount.
  • Deleting future entries instead of ending the stream. Deleting individual entries leaves the stream definition active — it just creates new ones on the next sync.
  • Setting Stripe payouts as a single recurring stream when you have multiple Stripe accounts. Set up one stream per Stripe account so each one's amount-drift check is meaningful.

What to do next

Recurring income is a labor saver only if you trust it. The watchdogs are what keep the trust honest.
Was this article helpful?
Talk to a human →
All systems operational View status page →