Konnekt is collecting between KES 33,000 and KES 125,000 per day in subscription and hotspot payments, with a clear weekly rhythm. Payments tend to cluster mid-week and around month boundaries when most billing cycles renew. The model has trained on 120 days of complete payment history and is projecting forward for the next 31 days.
The forecast uses the Holt-Winters Additive method — a classical time series model well-suited to subscription and billing data because it explicitly separates three signals present in payment flows.
The forecast for any day h periods ahead is computed as:
Each component is updated daily using exponential smoothing — meaning recent observations carry more weight than older ones, but the model never discards historical context entirely.
The smoothing parameters are deliberately conservative. A very low β of 0.05 means the model reacts slowly to trend shifts — critical for subscription revenue which grows steadily rather than in sudden jumps, and prevents the trend from over-extrapolating into future months. A moderate α of 0.20 balances responsiveness to recent payment volumes against stability. A low γ of 0.10 keeps the monthly seasonal pattern stable — one anomalous month (e.g. a public holiday disruption) should not override the established salary-cycle pattern.
The model trains on payment records fetched directly from the Splynx ISP platform via its REST API. Every payment transaction is retrieved, aggregated to a daily total, and passed to the model. No manual data entry or intermediate spreadsheets are involved.
Days with no payments are filled with KES 0 to preserve the continuity of the time series. Today's date is always excluded from training because the current day is incomplete — including a partial day's total would understate the level estimate and distort the seasonal index for that weekday.
Payment method All 12,553 transactions are M-PESA payments processed via Safaricom. The model implicitly captures M-PESA timing behaviour — customers tend to pay in bursts around salary dates (end of month) and service renewal reminder messages, which creates the weekly spikes the seasonal component detects.
Coverage The forecast includes all revenue streams: residential subscriptions, business accounts, and hotspot top-ups. This ensures projected totals match exactly what the Payments section of the operations dashboard reports for any given date range.
Seasonality assumption The model uses a monthly (30-day) seasonal period matching Konnekt's salary-cycle billing behaviour — customers pay at month-start when salaries arrive, activity dips mid-month as cash depletes, then recovers towards month-end. This pattern is more relevant for ISP subscriptions than weekly day-of-week cycles. The model requires a minimum of 3 complete monthly cycles to initialise; with 120 days of training data, 4 cycles are available giving reliable seasonal indices.
Trend lag With β set to 0.10 the model responds slowly to trend shifts. If Konnekt onboards a large batch of new customers or experiences significant churn, the forecast will lag behind the new reality for several weeks before the trend component fully adjusts to the changed baseline.
Forecast horizon Confidence degrades with distance. The 31-day table is most reliable for the first 7–10 days ahead. Beyond two weeks the forecast reflects the model's expectation of continued pattern repetition — treat it as a planning range, not a hard target. Month-level projections carry wider uncertainty than the daily figures suggest.
Non-recurring events Public holidays, M-PESA system outages, promotional campaigns, bulk activations, or sudden churn events cannot be predicted by this model. A day of near-zero payments caused by an outage would reduce the level estimate for several subsequent days. Such anomalies should be noted and the forecast reviewed manually when they occur.