Learn · the overlap test

CECL double counting: the factor the model already carries

Double counting in CECL is almost never an arithmetic mistake. It is a mistake of chronology: the model absorbs a driver, the qualitative factor that stood in for it stays on, and the allowance charges twice for one risk. This guide shows how to prove a factor is not already in the model, and how CECL Allowance Management runs that test on every cell.

Updated · 12 min read

CECL double counting is charging the allowance twice for one risk: once inside the model, where a driver such as national unemployment is already moving the loss rate, and again outside it, in a qualitative factor that was created to stand in for that same driver before the model carried it. The agencies forbid it in plain words, and examiners look for it, but it is rarely the product of carelessness. It is the product of time — a model gets upgraded, a factor grid does not, and nobody rereads the overlay against the new inputs. CECL Allowance Management is Botminds' solution for the quarterly allowance close, and the overlap test is one of the checks it runs on every factor cell before the committee sees a number.

The product examples come from a fictional sample bank running through the solution: Ashgrove Plains Bank, nine loan segments, third quarter of 2026. The bank and its people are invented and their figures are sample data rather than a customer's measured result. The regulatory material is real and linked where it appears. The grid these cells belong to is described in the nine factors and the support each needs.

“Adjustments should not be made for information that has already been considered and included in the loss estimation process.”

Interagency Policy Statement on Allowances for Credit Losses

What is double counting in CECL?

It is any overlap between what the quantitative estimate already reflects and what a qualitative adjustment adds. The Comptroller's Handbook states the rule twice, once for method and once for combinations of methods: "Management should not double count losses in both the loss rates and qualitative factors, as this would be inconsistent with accounting standards", and "a bank may use a combination of these adjustments, as long as the effects are not double-counted in the total ACL estimates" (Comptroller's Handbook, Allowances for Credit Losses).

The consequence is not only an allowance that is too high. It is an allowance whose movement cannot be explained. When a driver is counted in two places, the two move at different speeds — the model's input updates with the forecast vintage, the overlay updates when somebody edits the grid — so the quarter's change contains a component nobody can attribute. That is the version of the problem a controller meets first, usually the week the bridge refuses to tie.

There is a mirror-image failure worth naming in the same breath, because fear of double counting produces it. The Federal Reserve's review of community bank examinations found "instances … of bank management placing too great a reliance on quantitative measures without the appropriate consideration or weight being placed on identified qualitative measures to address risks not captured by the quantitative calculation" (Community Banking Connections, 2025). Removing every factor that touches the economy is not the safe answer. The safe answer is knowing precisely what the model carries.

Can a qualitative factor repeat a model driver?

It can, and the most common way is the simplest: the factor and the driver are the same statistic. A bank runs a national-economy factor on commercial and industrial loans because the model, when it was built, took only the bank's own loss history. Two years later the model's reasonable and supportable forecast includes national unemployment and real GDP for that segment. Both are now in the number. Neither was wrong when it was introduced.

A subtler version is an overlap of meaning rather than of series. A factor for "deteriorating underwriting standards" is a judgement about loans made in the last two years; once those loans have started defaulting, the loss history the model learns from already contains the effect. The handbook describes the resolution directly: "The qualitative adjustment amount declines when the impact of loosened underwriting is reflected in historical loss data and captured in the quantitative loss estimation processes." The factor is right to exist, and right to shrink as the model catches up — which is an argument for reviewing it every quarter rather than for deleting it once.

The chronology that creates it: the model moves, the overlay does not

Set the two timelines side by side and the problem is obvious. A model is revalidated, re-specified or replaced on its own cycle, usually annually and usually by a different team from the one that maintains the factor grid. The grid, meanwhile, is maintained by carrying it forward. Nothing in that arrangement contains a moment where someone asks whether a factor introduced three years ago is still describing a gap.

Already in the model, and not in the model: the same quarter, two segments

Repeats a driver the model carriesDescribes a gap the model cannot see
The factor

Repeats a driver the model carries: An 8 bps economic factor on commercial and industrial loans, kept for “softening national conditions”.

Describes a gap the model cannot see: A 35 bps collateral-value factor on office commercial real estate, for falling local office values.

What the model carries

Repeats a driver the model carries: National unemployment and real GDP for that segment, in the forecast since version 3.2.

Describes a gap the model cannot see: A national commercial real estate price index, and nothing below national level.

The evidence behind the factor

Repeats a driver the model carries: None specific to the bank’s markets. State unemployment is 2.9%, unchanged from the prior quarter.

Describes a gap the model cannot see: Three reappraisals this quarter at 18%, 24% and 31% below prior values, and local office vacancy at 19.8% against 15.1% a year earlier.

The test

Repeats a driver the model carries: Fails. The factor and the forecast are moving on the same statistics.

Describes a gap the model cannot see: Passes. The factor is measuring something the national index cannot show.

The proposal

Repeats a driver the model carries: Remove: 8 → 0 bps on $702.6M, −$562K.

Describes a gap the model cannot see: Increase: 15 → 35 bps on $286.0M, +$572K.

Sample data from the fictional Ashgrove Plains Bank, third quarter 2026. Both proposals came out of the same run of the overlap test; the test is not a one-way ratchet.

The two columns matter together. A bank that removes the first factor and keeps the second has done the work. A bank that removes both has confused "the model mentions the economy" with "the model carries this risk", and a bank that keeps both is reserving twice for national conditions while under-reserving for an office market the model cannot see.

How do you prove a Q factor is not already in the model?

By naming what the model carries, in writing, before you look at the factors. The test is only mechanical if the driver list exists as a document rather than as something the modelling team knows. With the list in hand, each cell gets one question — is the basis of this factor one of these drivers? — and one of three answers: keep it, reduce it, or remove it, with a written reason in every case.

The overlap test, from the model's inputs to a decided factor

  1. Agent

    Economic forecast reader

    Reads the forecast vintage and writes down every driver the model carries, by segment, naming the validation the list came from.

    Never: Never chooses scenarios or weights

  2. Agent

    Q-factor support writer

    Tests each of the 81 cells against that list and marks any cell whose stated basis is a driver the model already uses.

    Never: Never sets a factor — proposes only

  3. Agent

    Change bridge builder

    Prices each proposal on the segment balance, so a removal arrives with its dollar effect rather than as a suggestion.

    Never: Never forces the bridge to tie

  4. A person decides

    Allowance manager

    Decides each one — keep, reduce or remove — and a rejection keeps the prior level with a written reason.

  5. A person decides

    Allowance committee

    Approves the allowance, with the removals named in the memo and each vote recorded by name and time.

How CECL Allowance Management runs the test on the fictional sample bank. The green steps are the ones that stay with people: no agent sets a factor, and no agent approves an allowance.

A setting makes the second step non-optional at the sample bank: no factor may repeat a model driver, checked against the drivers in the model's forecast. Turning that into a rule rather than a habit is the difference between a test that runs on all 81 cells and a test that runs on the three cells somebody remembered to look at.

The driver list: what the model carries, and what it does not

National unemployment rate

Applies toAll nine segments

NoteIn the forecast since model version 3.2, June 2026

Real gross domestic product

Applies toAll nine segments

NoteIn the forecast since model version 3.2, June 2026

National commercial real estate price index

Applies toThe four commercial real estate pools

NoteNational series only — no state, metropolitan or county breakdown

No local labour-market series

Applies to—

NoteCounty and metropolitan unemployment are not inputs to the model

No commodity or crop-price series

Applies to—

NoteGrain and livestock prices are not inputs to the model

No local vacancy or rent series

Applies to—

NoteOffice, retail and multifamily vacancy are not inputs to the model

Sample data from the fictional Ashgrove Plains Bank — the list the forecast reader produced from model version 3.2 and its validation. The absences in the lower rows are as load-bearing as the presences: they are where a qualitative factor is still doing real work.

Is an economic qualitative factor double counting the forecast?

Not necessarily, and a footnote to the policy statement, which the Comptroller's Handbook quotes, takes the trouble to say so with an example: "an economic factor for current or forecasted unemployment at the national or state level may indicate a strong job market based on low national or state unemployment rates, but a local unemployment rate, which may be significantly higher, for example, because of the actual or forecasted loss of a major local employer may be more relevant to the collectibility of [a bank's] financial assets" (Comptroller's Handbook, quoting the Interagency Policy Statement).

Read that carefully and it is a test rather than a permission. An economic factor is defensible when the geography or the series it rests on is finer than the model's, and when the finer measure says something different. If the model runs on a national unemployment rate and the bank's county is at the national rate, a county factor adds nothing but noise. If a major employer has announced closures and the county rate is two points above the national one, the factor is carrying information the model genuinely cannot see.

The data to settle it is published. The Bureau of Labor Statistics produces, through its Local Area Unemployment Statistics programme, "monthly and annual employment, unemployment, and labor force data for … States, counties, metropolitan areas, and many cities, by place of residence" (BLS, Local Area Unemployment Statistics). A bank whose economic factor cites a county series with a date beats a bank whose factor cites "softening conditions" every time, in a committee and in an examination.

A factor coming out: 8 basis points to zero, with the reason written

The allowance walk with the commercial and industrial economic factor selected. The side panel shows the change tagged counted twice, 8 to 0 bps on $702.6M, −$562K, and the drafted support beneath it: the June memo kept an 8 basis point economic factor on commercial and industrial loans for softening national conditions; since model version 3.2 the reasonable and supportable forecast already includes national unemployment and real GDP for this segment; the policy statement says adjustments should not be made for information already considered in the estimate; local conditions for these borrowers are unchanged, with state unemployment at 2.9%, the same as in June; management proposes removing the factor. Four numbered sources are listed: the prior quarter's allowance memo, the model's driver list and its validation, the interagency policy statement, and the state unemployment series.
CECL Allowance Management on the fictional sample bank. A removal is drafted, cited and priced like any other change — it is not a deletion, and the reason sits beside it on the audit trail.

When a local economic factor is still the right answer

Two of the six changes the quarter proposed at the sample bank were local trends that stayed, which is the point the policy statement's footnote was making. An agriculture factor moved from 12 to 22 basis points on a $318.9 million book because the bank's own September outlook put corn at $3.85 a bushel against a $4.30 average breakeven for its grain borrowers. No national GDP series carries that, and the model has no commodity input at all.

The same logic kept the office collateral factor alive through a test that killed the commercial and industrial one. The model's commercial real estate price index is national; the evidence behind the factor is three local appraisals and a metropolitan vacancy series. Geography is doing the work in both cases, and it is worth writing the geography into the factor's name — "office collateral values, Lincoln–Omaha" rather than "commercial real estate conditions" — because a named geography is a claim that can be tested and a vague one is not.

The driver list: the one document that makes the test mechanical

Everything above depends on one artefact, and most banks do not have it in a form the allowance team can use. The model validation report contains it, scattered across sections about specification and inputs. What the quarterly close needs is a single page: every driver, which segments it affects, the version it entered in, and — the part people forget — an explicit list of what the model does not carry.

The absences are what make the test cheap. A list that says the model has no county labour series, no commodity prices and no local vacancy data lets an analyst clear dozens of cells in a sitting, because any factor resting on those is automatically free of overlap. Without the absences, each cell turns back into a conversation with the modelling team. The list should be dated, should name the validation it came from, and should be refreshed whenever the model version changes — which is also what makes it useful evidence in an independent review of the model.

The overlap test as a rule, not a habit

The settings screen, headed: the rules every factor is checked against, with changes versioned, needing the Controller's approval and on the audit trail. Under support checks: a source goes stale after one quarter; no factor may repeat a model driver, switched on, checked against the drivers in the model's forecast listed as national unemployment, real GDP and a CRE price index; a direction check, switched on, so a factor held or lowered while its own trend worsens needs a written reason; a cap of 50 bps on one factor; a cap of 120 bps on a segment; and a CRE concentration reference of 300% of capital. Under the model: a reasonable and supportable period of four quarters with four-quarter reversion, the committee's scenario weights, and individual evaluation above $500,000.
CECL Allowance Management on the fictional sample bank. The overlap test is a setting with the model's drivers named in it, so it runs on all 81 cells rather than on the ones somebody remembered; the limits and thresholds are the bank's own policy, not a regulatory requirement.

What a removal looks like when it is written down properly

A removal is a change like any other and needs the same four parts: the claim, the dated evidence, the arithmetic and the overlap test. What it needs in addition is an explicit statement of what now carries the risk, because an examiner's first question about a disappearing factor is whether the bank has quietly reduced its allowance.

The sample bank's paragraph does that in two sentences: the factor was kept for softening national conditions; since version 3.2 the forecast carries national unemployment and real GDP for this segment, so the risk is in the model rather than gone. The dollar effect, −$562 thousand on $702.6 million, is stated rather than netted into a total, and it appears as its own line in the quarter's bridge. The shape of that paragraph is the same whichever way the factor moves.

Six proposed changes, priced: two of them downward

CRE office · collateral values · 15 → 35 bps
+$572K
Commercial and industrial · economic conditions · 8 → 0 bps
−$562K
Agriculture · economic conditions · 12 → 22 bps
+$319K
Construction and land · nature and volume · 0 → 12 bps
+$290K
Multifamily · concentrations · 10 → 14 bps
+$159K
Residential 1–4 family · past dues · 6 → 3.5 bps
−$112K
Sample data from the fictional Ashgrove Plains Bank, third quarter 2026. Bars are drawn on the size of each change; the green bars are reductions. The six together are a net +$666K on a qualitative reserve of $9,694K.

Running the test across every cell, not just the economic ones

Economic factors are where overlap is most often discussed and least often the only instance. Three other cells repay the same question each quarter.

The past-due and classified factor overlaps with any model that already segments or weights by delinquency — a roll-rate method, in particular, is built out of delinquency migration, and a past-due factor on top of it is charging twice unless it is carrying something the migration does not, such as a sharp recent move the look-back period has not absorbed. The collateral-value factor overlaps with the individually evaluated schedule: once a loan has its own reserve, the pooled factor covering its segment must exclude it by name. And the nature-and-volume factor overlaps with the model's segmentation itself — a new product given its own segment with a conservative rate does not also need a factor for being new.

At the sample bank, 81 cells were tested against the driver list in a single run and one failed. That ratio is the ordinary one: overlap is rare, and finding it costs nothing once the list exists, which is exactly why it is worth testing all 81 rather than the three that feel economic. To see the test run across a whole grid with the reasons written, start from CECL Allowance Management.

Questions people ask

Does the policy statement actually forbid double counting?

It does, in one sentence: adjustments "should not be made for information that has already been considered and included in the loss estimation process." The Comptroller's Handbook repeats the rule in the context of specific methods, warning against double counting losses in both the loss rates and the qualitative factors, and again when a bank combines several kinds of adjustment. None of them prescribes a test — that part is the bank's to design and document.

Should a national unemployment factor be removed under CECL?

If the model's forecast already carries national unemployment for that segment, yes, and the reason should be written down rather than the factor quietly disappearing. If the model carries no labour-market driver at all, a national factor may be the best available proxy, though a county or metropolitan series will usually be both more relevant and easier to defend. The question is never the word "unemployment"; it is whether the statistic the factor rests on is one the model already uses.

How do you check 81 factor cells for double counting without it taking a week?

Write the model's driver list down once, including what the model does not carry, and test each cell against it. Most cells clear immediately because their basis — a local vacancy rate, a concentration ratio, a change in credit review staffing — is nowhere in the model. In the solution, the agents run that test across every cell in a single pass and bring back only the cells that failed, with a drafted reason attached to each.

Can the model and a factor both move for the same reason without double counting?

Yes, if they are measuring different parts of the risk. A forecast of rising national unemployment raises the modelled rate for a consumer book; a factor for the closure of the single largest employer in the bank's county is a different, sharper fact about the same borrowers. The test is whether the factor's stated basis is a driver the model uses, not whether the two happen to move together.

What if the modelling team cannot produce a driver list?

That is itself a finding waiting to happen, and it is usually easier to fix than it looks: the information is in the model validation report, in the sections on specification and inputs. Extracting it into a dated one-page list, naming the model version, is a day's work that turns an argument into a check. Until it exists, every overlap conclusion the allowance memo states is an assertion.

Does removing a factor reduce the allowance?

Only by the amount the factor was adding — in the sample quarter, $562 thousand on a $47,509 thousand allowance — and only because the risk is now being measured somewhere else. The memo should say both things explicitly. An allowance that falls because a double count was corrected is a more defensible number than the one it replaced, and the bridge should show it as its own line rather than netted against the increases.

CECL Allowance Management.
See it on your own files.

An agentic solution from Botminds. The quarterly CECL close on one timeline, with every qualitative adjustment backed by data and written support. Book a demo, or explore how it works.