Cash Seasonality
Unofficial community analysis
This page is independent analysis prepared by an ICCSD community member, built from the district's published board materials. It is not produced by the district, PFM Financial Advisors, or the Financial Oversight Committee. The underlying monthly figures are unaudited cash-flow projections and internal records; with the FY24 and FY25 audits still outstanding, even the beginning cash balances were described by PFM as "unknown variables." Treat the shape of the seasonality as reliable and the exact dollar levels as provisional.
The short answer¶
Why the General Fund is seasonal¶
The district laid out the mechanics plainly at the February 10, 2026 Financial Oversight Committee meeting:
- Property taxes arrive twice a year. Local property-tax settlements land in October and April and together total roughly $90 million across all funds (about $34M and $30M of that flows to the General Fund). These two months are the only times the account is materially refilled.
- State aid is steady — until FY27. State foundation aid pays in ~$10 million monthly installments, September through June (FY26 regime). Beginning FY27 it moves to quarterly payments (~$26.5M in August, November, February, and May), which reshapes the trough months — more on that below.
- Payroll is flat and relentless. General Fund payroll and benefits run ~$16 million every month, rising to ~$19M in June as the fiscal year closes. It does not wait for the tax cycle.
Put those together and the balance has a fixed annual rhythm: it draws down steadily between tax settlements, craters in the late summer before October taxes, dips again in late winter before April taxes, and spikes the month each settlement lands.
The baseline pattern (FY 2025-26)¶
This is the cleanest near-complete year of monthly data — actual through March 2026, projected through June, from PFM's adopted "Option 1" schedule. Days cash on hand uses the district/PFM operating convention of roughly $610,000 per day (≈ FY26 General Fund operating expenditures of ~$223M ÷ 365).
| Month-end | Ending GF cash | Days cash on hand | Seasonal index¹ | Read |
|---|---|---|---|---|
| Jul 2025 | $9.4M | 15 | 0.45 | Draining |
| Aug 2025 | $6.0M | 10 | 0.29 | 🔴 Trough (incl. $10M loan) |
| Sep 2025 | $5.1M | 8 | 0.25 | 🔴 Annual low |
| Oct 2025 | $34.0M | 56 | 1.64 | 🟢 Property-tax peak |
| Nov 2025 | $31.8M | 52 | 1.53 | 🟢 High |
| Dec 2025 | $26.4M | 43 | 1.27 | Comfortable |
| Jan 2026 | $19.6M | 32 | 0.94 | Draining |
| Feb 2026 | $16.2M | 27 | 0.78 | Low |
| Mar 2026 | $14.2M | 23 | 0.69 | 🟠 Winter trough |
| Apr 2026 | $37.1M | 61 | 1.79 | 🟢 Property-tax peak |
| May 2026 | $27.8M | 46 | 1.34 | Comfortable |
| Jun 2026 | $21.4M | 35 | 1.03 | Year-end floor |
¹ Seasonal index = that month's ending balance ÷ the 12-month average ($20.8M). 1.00 = an average month; 0.25 = a quarter of the average; 1.79 = nearly double.
The August–September figures come with an asterisk that strengthens the point: those balances already include the $10 million interfund loan the district drew from its health-insurance fund in August 2025. Without it, the General Fund would have ended August and September roughly $4 million in the red. The natural, unborrowed low point of the year is deeply negative — which is exactly why the district borrows every late summer.
The flow pattern repeats (FY 2024-25)¶
We only have one full year of reconstructed monthly balances, but the FY25 monthly receipts and disbursements (from the Q3 report) confirm the same seasonal shape in the underlying flows — large positive months in October and April, persistent ~$5M monthly deficits in between, and a deep negative in June as the year closes:
| Jul | Aug | Sep | Oct | Nov | Dec | Jan | Feb | Mar | Apr | May | Jun | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FY25 net flow ($M) | −2.6 | −5.5 | −4.5 | +30.0 | −5.8 | +1.7 | −6.7 | −6.0 | −2.5 | +25.4 | −1.6 | −22.1 |
The two tax months (+$30M, +$25M) and the steady between-settlement bleed are structural, not one-offs. That is what makes a baseline meaningful in the first place.
The catch: a new state law reshapes the season¶
This is no longer a projection. SF 2201, signed in February 2026, moves state foundation aid from monthly to quarterly payments (≈$26.5M each) beginning July 15 — replacing the old schedule of ~$10.6M monthly payments that didn't start until September. That single change rewrites the seasonality, because a large payment now refills the General Fund at the start of the fiscal year instead of leaving it starved until fall.
Re-running the model on the post-law flow vector (reconstructed from PFM's FY27 schedule, which already assumes quarterly aid; see scripts/cash_seasonality_sf2201.py) versus the FY26 pre-law baseline:
| Month-end | Pre-law 95% | Post-law 95% | Change |
|---|---|---|---|
| Jun | 47 | 31 | 🟢 −17 |
| Jul | 30 | 15 | 🟢 −14 |
| Aug | 17 | 37 | 🔴 +20 |
| Oct | 62 | 52 | 🟢 −10 |
| Nov | 58 | 74 | 🔴 +16 |
| Jan | 37 | 18 | 🟢 −19 |
| Mar | 27 | 15 | 🟢 −12 |
| Apr | 61 | 40 | 🟢 −21 |
(Days of cash needed for a 95% chance of not running dry over the next 12 months.)
Three things change, and one doesn't:
- The summer crunch — the binding constraint in every number above — is relieved. The ~$26.5M July payment means June only has to bridge a few weeks, not the whole summer. June drops from ~47 to ~31 days; July from 30 to 15.
- The trough moves from late summer to late winter. The long dry stretch is now between quarterly payments: PFM's FY27 projection bottoms at March ($6.3M), and the months right after a payment (Aug, Nov) now behave like the old Oct/April peaks — flush, with a full quarter to fund.
- But the overall reserve requirement does not fall — it edges up. Replacing 9 monthly payments with 4 quarterly ones makes revenue lumpier, which increases the within-year swing. The worst-month 95% requirement actually rises 62 → 74 days. Quarterly aid helps timing (no September cliff) but hurts smoothness. The seasonality reshapes; it does not shrink — so the 60–90 day reserve target holds, arguably reinforced.
The consequence for the headline question: under the old law, the district's ~30-day June target sat below the ~47-day 95% bar — inadequate, which is why it borrowed every summer. Under SF 2201, ~30 days in June sits right at the new ~31-day bar. The law is essentially what makes the district's own June target defensible.
Two caveats on the law
Payment calendar. PFM modeled the quarters as Aug/Nov/Feb/May; the statute says "beginning July 15," which implies Jul/Oct/Jan/Apr — one month earlier. If so, summer and June improve even more and the troughs shift a month earlier. The qualitative story is identical either way.
SAVE diversion is a separate, not-yet-law risk. The proposed property-tax bill (SSB 3034, Div. IV) would accelerate diverting SAVE sales-tax revenue to property-tax relief (up to 30% by 2029). That threatens the SAVE/capital fund and bond coverage, not General Fund operating cash — but because ICCSD lends GF cash to the SAVE fund, a SAVE shortfall could raise GF cash demand. Monitor it; it is not in this model.
The pre-law transition year (FY26) for reference¶
| Month-end | FY26 ending cash | FY27 ending cash | What changed |
|---|---|---|---|
| Aug | $6.0M | $13.4M | 🟢 Quarterly aid payment cushions the summer |
| Sep | $5.1M | $9.9M | Less acute |
| Jan | $19.6M | $10.1M | 🟠 No monthly aid; spending down |
| Mar | $14.2M | $6.3M | 🔴 New annual trough (between quarterly payments) |
| Jun | $21.4M | $18.3M | Year-end floor, ~30 days |
Implication for your hypothesis: a single year is enough to read the mechanism, but the trough month is not stationary — SF 2201 migrates it from September toward late winter. A liquidity model has to track the payment calendar, not just the month name.
Judging a balance: the forward-drawdown test¶
Here is the core of your hypothesis, made precise. The right question is not "is this balance above or below the seasonal average?" It is:
Will the balance survive the largest drawdown still ahead before the next big inflow — without dropping below the operating floor?
The operating floor is roughly one month of payroll (~$16–19M) plus whatever minimum buffer the board wants; below it, the district cannot make payroll between inflows and must borrow (interfund loan or anticipatory warrant). The two drawdown "legs" that bind are:
A practical rule for any month m:
Liquidity-safe if: starting cash ≥ (worst cumulative net outflow from month m to the next major inflow) + (minimum operating floor).
The same dollar balance is therefore safe in one month and dangerous in another, because what's ahead differs:
| If you're holding ~$18M (≈30 days)… | …entering this month | Verdict |
|---|---|---|
| $18M | June | 🟡 Adequate — only July's gap to bridge before August aid |
| $18M | September | 🟢 Comfortable — October taxes are days away |
| $18M | December | 🟠 Thin — the Jan–Mar bleed is ahead of you |
| $18M | April (post-tax) | 🔴 Alarming — you should be near $37M; the whole summer leg is ahead |
That is precisely why "30 days" cannot be judged without a month attached.
So: is 30 days in June low, adequate, or high?¶
Adequate, but at the floor — not comfortable. Three reasons:
-
June is the year-end handoff balance. Its only job is to carry the district through July — one payroll — until the next inflow. In the FY27 regime that next inflow is the August quarterly state-aid payment (~$26.5M), so the forward drawdown from June 30 is relatively short. The district's own advisors size the June-30 target to exactly this: PFM calls 35 days "sufficient to make July payroll," 30 days still sufficient, and 18 days "NOT sufficient to make July payroll." Thirty days sits just above the line that fails.
-
It is the bottom of the comfortable band, not the middle. The summer leg is the binding constraint of the whole year. Going into it with 30 days leaves essentially no cushion for a bad July or a delayed payment — it works only if the next six weeks are clean.
-
It is thin by any external yardstick. Thirty days is ~8% of annual operating spending. Rating-agency "available reserves" benchmarks for an A/A+ Iowa district sit near 17% of revenue; ICCSD's full-year reserves are already only ~9.5%. Thirty days of cash in June is consistent with a district operating with little margin — fine if managed tightly, fragile to any shock.
Bottom line: 30 days in June is a passing grade, not a strong one. The same 30 days in April would be a red flag; in September it would be reassuring.
Putting a probability on it: required cushion by month¶
The deterministic test above answers "what's the expected worst point." Adding the variability of the flows turns it into a probability — exactly as you'd expect. Model each forward month's net operating flow as a random draw, flow = seasonal mean (μ) + noise (σ); the cash path is then a seasonal random walk, and "running dry in the next 12 months" is the chance its running minimum falls below zero (a first-passage / ruin problem). The balance needed for confidence p is:
Required balance(month) ≈ (mean forward drawdown to the binding trough) + zp × (σ of that drawdown), with z = 1.645 (95%), 2.326 (99%), 3.090 (99.9%).
The table below is that calculation run as a 400,000-path Monte Carlo from each month-end, using the FY26 cash-basis operating flows as μ and a $2.5M/month flow volatility as the base case. It reports the days of cash on hand a balance must clear to have a given chance of not needing an emergency loan or warrant over the next 12 months. (Reproduce or re-run with your own σ: scripts/cash_seasonality_model.py.)
| Balance held at end of… | 50% (mean) | 95% | 99% | 99.9% | Binding trough |
|---|---|---|---|---|---|
| Jul | 24 | 34 | 39 | 46 | upcoming Sep (near) |
| Aug | 4 | 22 | 32 | 43 | next Sep (far) |
| Sep | 0 | 23 | 32 | 43 | next Sep (far) |
| Oct | 47 | 69 | 78 | 88 | next Sep (far) |
| Nov | 44 | 64 | 73 | 83 | next Sep (far) |
| Dec | 35 | 55 | 63 | 72 | next Sep (far) |
| Jan | 24 | 42 | 50 | 59 | next Sep (far) |
| Feb | 18 | 36 | 43 | 51 | upcoming Sep |
| Mar | 15 | 31 | 38 | 46 | upcoming Sep |
| Apr | 53 | 67 | 74 | 82 | upcoming Sep (near) |
| May | 51 | 65 | 71 | 78 | upcoming Sep (near) |
| Jun | 41 | 52 | 57 | 64 | upcoming Sep (near) |
All figures are days of General Fund operating cash (≈ $610K/day). September is the universal binding trough — every starting month is ultimately tested against the late-summer low before October property taxes arrive.
Three things to read off it:
- The low-balance months are the low-risk months. August and September need only ~22–23 days at 95% — less than June — because October's refill is imminent. The peak months (April, May, October) need the most (65–69 days) because from a peak you must self-fund the entire run down to the next trough. Required cushion tracks forward drawdown, not current level — your original point, now in numbers.
- The near-trough rows are the trustworthy ones. April–July starts are tested against the upcoming September (1–5 months out), where the model is on solid ground. The fall/winter rows are tested against the following September (6–11 months out); because the model assumes independent monthly noise, their high-confidence numbers are inflated (real seasonal-timing noise partly reverses month to month). Treat those as upper bounds.
- σ is the swing input. At a conservative $4M/month (consistent with the FY25-vs-FY26 summer-drawdown gap), every 95% figure rises ~10–18 days — June, for instance, goes from 52 → 62 days. The shape of the table is robust; the level moves with σ.
What this says about 30 days in June¶
The model puts hard numbers on the earlier verdict. To make June 30 genuinely safe without summer borrowing you'd want roughly:
So 30 days in June is well below even the coin-flip (~41-day) threshold for self-funding the summer — which is exactly why the district draws an interfund loan or warrant every late summer. Thirty days isn't sized to avoid borrowing; it's sized to make July payroll and then borrow for August–September. Read against this table, ~30 days in June corresponds to a high probability of needing the summer backstop — consistent with what actually happened in FY26.
Caveats (so the table isn't over-trusted)¶
- One clean year of μ, an assumed σ. FY24/FY25 audits are still open; PFM flagged even beginning cash as an "unknown variable." The means come from a single cash-basis year (partly projected) and σ is an assumption, not an estimate.
- A moving calendar. The FY27 shift of state aid to quarterly payments relocates the trough (Sep → March); the μ vector should be re-cut for FY27+ before applying the table forward.
- Month-end, not intra-month. The true low is mid-month (payroll before late-month receipts), so add a few days of buffer.
- Floor = $0. If the board wants a standing minimum buffer above zero, add it to every cell.
The honest upgrade path: once three-plus years of reconciled monthly balances exist, estimate σ (and its seasonal/serial structure) from data instead of assuming it, and the same script returns calibrated probabilities rather than well-reasoned estimates.
Component refinement. A first step down that path is already in the repo: scripts/cash_seasonality_components.py replaces the single assumed σ with one built from the volatility of each flow component — letting the ~85% of the flow that is statutory/contractual (payroll, state aid, the property-tax amount) contribute almost no forecast error, and concentrating uncertainty in the lumpy "other local/federal" residual plus property-tax timing. It tightens the table by roughly 5 days (June 95%: 52 → 47 days) and is more defensible, though still bounded by the same data-quality limits.
Why the target is 60–90 days¶
Read across the table, the binding months — the post-tax peaks, which must self-fund the entire run down to the next trough — require ~60–76 days at 95–99% confidence. A single reserve policy has to satisfy the most demanding month, which is exactly why a healthy target lands at 60 days (minimum) to 90 days (prudent), even though ICCSD currently steers to ~20–35. A standalone, self-contained visual explainer of this — built for sharing — lives at why-cash-reserve-targets.html (generated by scripts/make_reserve_onepager.py).
Sources¶
- ICCSD Board of Education. Capital Outlay Borrowing Need Memo Update for 4/1 (Curt Pratt, COO), April 1, 2026 work session. Source for the FY26–FY28 days-cash narrative and the interfund-loan history.
- PFM Financial Advisors LLC. Year-to-Date General Fund Fiscal Progress & Update Regarding the Need to Issue Warrants, presented April 28, 2026 and May 12, 2026. Source for the monthly General Fund cash-flow schedules (Exhibits 1a–2c) and the 18 / 30 / 35-day payroll thresholds.
- ICCSD Business Services. Third Quarter Financial Report, FY2026 (Financials as of 3/31/26), May 12, 2026. Source for FY25 and FY26 monthly revenues and expenditures and quarter-end cash/investment balances.
- ICCSD. District Financial Update — Financial Oversight Committee, February 10, 2026. Source for the structural drivers (October/April property taxes ≈ $90M; ~$10M monthly state aid).
- PFM Financial Advisors LLC. Iowa City CSD SAVE Cash Flow Analysis as of 6/4/2026, June 9, 2026. Source for the multi-year fund-level cash trajectory.
Independent analysis. Not produced by ICCSD, PFM, or the Financial Oversight Committee. Built from unaudited board materials; figures will firm up as the FY24 and FY25 audits are completed. Spot a methodology issue or have a better data series? Open an issue.