Executive AI Dinner hosted by Kumo - Austin, April 8

Register here
9Regression · Workforce Planning

Branch Demand Forecasting

How many tellers does each branch need next week?

Book a demo and get a free trial of the full platform: research agent, fine-tune capabilities, and forward-deployed engineer support.

By submitting, you accept the Terms and Privacy Policy.

Loved by data scientists, ML engineers & CXOs at

Catalina Logo

A real-world example

How many tellers does each branch need next week?

US banks operate 70,000+ branches, and labor is the largest controllable cost at 55-65% of branch operating expense (BAI). Overstaffing wastes $15-25K per branch annually in idle teller hours, while understaffing drives average wait times above 8 minutes, directly correlating with a 12% drop in customer satisfaction (J.D. Power). The challenge: branch traffic depends on payroll cycles, local events, weather, nearby business hours, and even competitor branch closures. Static scheduling models based on last year's averages miss these dynamic signals.

Quick answer

The most accurate branch staffing models connect historical foot traffic with payroll cycles, local events, weather data, competitor branch activity, and regional employment trends. Relational ML models that read these connected tables produce staffing forecasts 35% more accurate than static scheduling models, reducing wait times by 30% while cutting overtime costs by $15-25K per branch annually.

Approaches compared

4 ways to solve this problem

1. Static scheduling (last year's averages)

Staff each day based on the same day's transaction volume from the prior year, adjusted for seasonal trends.

Best for

Simple and requires no model. Works when branch traffic is highly predictable and stable year-over-year.

Watch out for

Misses dynamic signals: competitor branch closures, employer payroll cycle changes, weather-driven traffic shifts, and local events. Overstaffs quiet days by $15-25K per branch annually in idle teller hours, and understaffs busy days, driving wait times above 8 minutes.

2. Time-series forecasting (ARIMA, Prophet)

Fit a time-series model to historical daily transaction volumes per branch, capturing seasonality, trend, and day-of-week patterns.

Best for

Good at capturing recurring patterns (month-start spikes, Friday surges). Easy to interpret and widely available.

Watch out for

Single-table approach. Cannot incorporate external signals like weather, events, or competitor activity. When a nearby branch closes or a local employer switches pay cycles, the time-series model has no way to know.

3. XGBoost with external features

Add day-of-week, month-start indicator, weather forecast, and event flags as features alongside historical traffic. Train a regression model per branch or region.

Best for

Captures some external drivers. Better than pure time-series when significant events affect traffic.

Watch out for

Features are manually engineered and branch-specific. Scaling to 7,000+ branches with local event calendars, weather data, and competitor signals requires significant data pipeline investment.

4. KumoRFM (relational graph ML)

Connect branches to daily traffic, local events, weather forecasts, regional payroll cycles, and competitor data. The GNN learns cross-table patterns that drive traffic spikes and dips automatically.

Best for

Captures compound effects: month-start + competitor closure + sunny weather = 35% traffic spike. These multi-factor interactions are hard to manually feature-engineer but emerge naturally from the relational graph.

Watch out for

Requires local event and weather data feeds at the branch level. Data sourcing for 7,000 branches across different metros is the operational challenge, not the modeling.

Key metric: Relational ML produces branch staffing forecasts 35% more accurate than static models, saving $15-25K per branch annually in overtime and idle hours.

Why relational data changes the answer

Branch traffic is driven by the intersection of multiple external signals, not just historical patterns. A branch in Union Square sees 385 transactions on October 1st because it is the first of the month (payroll deposits), a competitor branch 2 miles away just closed (spillover traffic), the weather is sunny (more walk-ins), and a local employer recently switched to bi-weekly pay. No single table contains all of these signals.

Relational models connect branch profiles to traffic history, event calendars, weather data, and regional indicators, learning compound effects that static models miss. The result is 35% more accurate staffing forecasts. For a 7,000-branch network, that translates to $100-175M in annual savings from reduced overtime and idle hours, plus a 30% reduction in customer wait times that directly improves satisfaction scores.

Staffing a branch from last year's averages is like packing for a trip based on last year's weather. You might get lucky, but if a cold front moved in, a festival popped up, and the hotel changed its pool hours, you would be dressed wrong. Relational ML checks the current forecast, the event calendar, and the venue schedule before packing your bag.

How KumoRFM solves this

Relational intelligence built for banking and financial data

Kumo connects branch profiles, historical foot traffic, transaction volumes, local event calendars, weather data, and regional payroll cycles into a relational graph. The model predicts that Branch S-14 will see 340 transactions next Tuesday because it is the first of the month (payroll deposits), a local employer just switched to bi-weekly pay, and a competitor branch 2 miles away recently closed. These cross-table signals produce staffing forecasts 35% more accurate than static models.

From data to predictions

See the full pipeline in action

Connect your tables, write a PQL query, and get predictions with built-in explainability — all in minutes, not months.

1

Your data

The relational tables Kumo learns from

BRANCHES

branch_idnameregionavg_daily_txnsteller_stations
BR-014Union SquareWest2856
BR-022MidtownNortheast4208
BR-037LakesideMidwest1804

DAILY_TRAFFIC

branch_iddatetransactionsavg_wait_mintellers_on_duty
BR-0142025-09-293104.25
BR-0142025-09-303958.75
BR-0222025-09-304806.17

LOCAL_EVENTS

branch_iddateevent_typeexpected_impact
BR-0142025-10-01Month Start (Payroll)High
BR-0142025-10-01Competitor Branch ClosureMedium
BR-0222025-10-03Local FestivalLow

WEATHER_FORECAST

regiondateconditiontemp_fprecipitation
West2025-10-01Sunny720%
Northeast2025-10-01Rain5880%
Midwest2025-10-01Cloudy6520%
2

Write your PQL query

Describe what to predict in 2–3 lines — Kumo handles the rest

PQL
PREDICT SUM(DAILY_TRAFFIC.TRANSACTIONS, 0, 7, days)
FOR EACH BRANCHES.BRANCH_ID
3

Prediction output

Every entity gets a score, updated continuously

BRANCH_IDDATEPREDICTED_TXNSTELLERS_NEEDEDVS_SCHEDULED
BR-0142025-10-013857+2
BR-0142025-10-0226050
BR-0222025-10-013506-1
4

Understand why

Every prediction includes feature attributions — no black boxes

Branch BR-014 (Union Square), Oct 1

Predicted: 385 transactions, 7 tellers needed

Top contributing features

Month-start payroll cycle

1st of month

32% attribution

Competitor branch closure spillover

+45 txns est.

24% attribution

Day-of-week pattern (Wednesday)

Above avg

18% attribution

Weather (sunny, high foot traffic)

Sunny 72F

14% attribution

Regional employment trend

+2.1% YoY

12% attribution

Feature attributions are computed automatically for every prediction. No separate tooling required. Learn more about Kumo explainability

Frequently asked questions

Common questions about branch demand forecasting

How do you predict branch traffic in banking?

The most accurate approach connects historical daily traffic data with payroll cycles (month-start, bi-weekly pay), local event calendars, weather forecasts, and competitor branch activity. Relational ML models learn compound effects (payroll day + sunny weather + competitor closure = spike) that single-variable time-series models miss. The result is 35% more accurate forecasts.

What is the cost of overstaffing bank branches?

Overstaffing wastes $15-25K per branch annually in idle teller hours (BAI). Across a 7,000-branch network, that is $100-175M in wasted labor. Labor is the largest controllable cost at 55-65% of branch operating expense, so even a 10% improvement in scheduling accuracy has significant P&L impact.

How does weather affect bank branch traffic?

Weather is a meaningful driver, but its effect depends on context. Rain reduces walk-in traffic at urban branches by 10-20% but has less impact on suburban drive-through branches. Sunny weather on a payroll day compounds the traffic spike. The key is modeling weather in combination with other signals, not in isolation.

Can ML help with bank branch workforce planning?

Yes. ML models predict daily transaction volume and translate that into teller-count recommendations. The best models update weekly with new event, weather, and traffic data, giving branch managers a 7-day staffing forecast. This shifts scheduling from reactive (calling in staff when lines get long) to proactive (staffing correctly before the rush).

What data do you need for branch demand forecasting?

Historical daily transaction volumes per branch, local event calendars (payroll cycles, festivals, holidays), weather forecasts, competitor branch locations and status (open, closed, renovating), and regional employment data. Each additional data source improves the model's ability to predict traffic spikes and dips that historical averages miss.

Bottom line: Reduce average wait times by 30% and cut overtime costs by $15-25K per branch annually, translating to $100-175M in savings across a 7,000-branch network.

Topics covered

branch staffing predictionteller demand forecastingbank workforce planning AIbranch traffic predictiongraph neural network workforceKumoRFMbranch operations optimizationrelational deep learning staffingbank branch analyticsstaffing optimization banking

One Platform. One Model. Infinite Predictions.

KumoRFM

Relational Foundation Model

Turn structured relational data into predictions in seconds. KumoRFM delivers zero-shot predictions that rival months of traditional data science. No training, feature engineering, or infrastructure required. Just connect your data and start predicting.

For critical use cases, fine-tune KumoRFM on your data using the Kumo platform and Research Agent for 30%+ higher accuracy than traditional models.

Book a demo and get a free trial of the full platform: research agent, fine-tune capabilities, and forward-deployed engineer support.