Executive Summary: Cobalt can return interim cachedData during long-running live Secretary of State searches across supported states, but broad feature reach does not standardize the age of every record. A multi-state lender needs one policy framework that separates availability, actual age, intended action, and jurisdiction context. Use updatedAt as evidence, apply a lender-owned threshold, and fall back to the completed live result whenever a rule is absent or fails.
Why Does All-State Availability Not Mean Uniform Freshness?
What does feature reach establish?
It establishes that the interim field can appear within the live-search workflow across states when a cached match is available. It does not establish that every jurisdiction updates on the same schedule, that every record has the same age, or that one customer threshold fits all uses.
Cobalt's state-cache guidance says update frequency can vary by state.[1] The new feature brief reinforces that consumers should inspect updatedAt rather than assume a universal freshness period.
Why is a monthly description not a service-level guarantee?
A general update pattern cannot replace the timestamp on the returned record. State sites differ in availability and search behavior, and an individual cached observation can be older or newer than a summary cadence. Cobalt's cache-duration guidance tells customers to use record timestamps for their own recency assessment.[2]
Keep public product descriptions, observed customer distributions, and lender policy in separate documents. A product description explains behavior at a general level. Measurement shows what a particular portfolio received during a defined window. Policy says what the lender permits. Copying a general description into a threshold table skips the evidence and authority needed for the third decision.
Coverage answers where the feature can appear.
updatedAtanswers how old this record is.
Which Inputs Belong in the Policy?
What should every age rule name?
Each rule should identify the intended action, maximum age, jurisdiction scope, required match conditions, fallback, owner, and version. Avoid a table that contains only state and number of days because it does not say what the threshold authorizes.
• Action. Display, prefill, queue preparation, review, or another named step.
• Maximum age. Exact unit and boundary behavior.
• State scope. One state, a justified group, or a common default.
• Match requirements. Fields or identifiers that must agree.
• Fallback. Wait for live or enter an approved review path.
• Owner and version. Authority and rule effective date.
The lender sets these inputs. Cobalt supplies timestamps and the later live result, not the customer's acceptable-age threshold.
Which inputs should remain separate?
Do not combine state coverage, observed cache age, business risk, and provider status into one fresh=true value. Store the raw updatedAt, calculated age, rule identity, process state, and permission separately. A record can be recent under one rule while the request remains live pending.
Cobalt's status guide distinguishes incomplete processing from terminal outcomes.[3] Age policy must not erase that process distinction.
Include the evaluation time and the intended action in the decision key. The same observation may pass a display rule today and fail a prefill rule tomorrow. Reusing a cached boolean across actions or later sessions can produce permission that no current rule granted. A decision record should be scoped to observation, action, policy version, and evaluation event.
How Should a Common Default Work?
Why is wait for live the safest missing-rule behavior?
If a state or action has no approved rule, withhold interim use and continue the existing live request. This preserves service without turning a configuration gap into permission. 202 + Incomplete means the request continues rather than fails.[4]
Do not substitute the threshold from a nearby state, an unrelated product, or a generic monthly assumption. Record no_applicable_age_rule and the fallback taken.
Can one default threshold ever be used?
Yes, if an authorized policy owner deliberately adopts it for a named reversible action and documents the evidence and exceptions. The default should have a narrow purpose, an explicit state scope, monitoring, and a live fallback. It must not silently become authority for final verification.
Start with fewer permissions. Observe actual record ages and live variances, then decide whether evidence supports more specific state rules.
Make the default visible in policy review and operations reporting. Teams should be able to distinguish an exact state rule from a common default and from the no-rule fallback. This reveals coverage gaps without turning them into emergency exceptions. A state can remain safely supported through the live path even when it has no interim-use rule.
How Should State-Specific Exceptions Be Governed?
What evidence justifies an exception?
Use observed customer data, documented provider behavior, material differences in state processing, and the business consequence of the intended action. An exception should explain why the common rule is insufficient and what new threshold or branch addresses the issue.
Cobalt publishes typical response-time guidance by state context,[5] but response time and cache age are different measures. Do not infer one from the other.
What should an exception record contain?
Record state, action, prior rule, new threshold, rationale, evidence window, owner, approver if required, effective date, expiration or review date, and rollback. Link rule changes to metrics rather than editing a table with no history.
{
"state": "EXAMPLE",
"action": "preliminary_review",
"maxAgeSeconds": 604800,
"fallback": "wait_for_live",
"policyVersion": "sos-age-2026-09",
"reviewAfter": "2026-12-15"
}
This is an illustrative lender configuration, not a recommended threshold or provider schema.
Set a review date even for rules with no planned expiration. State behavior, product use, and internal risk tolerance can change. The review should examine the evidence window, branch volume, live variance, incidents, and whether the original action is still reversible. Renewal is an explicit policy act, not an assumption that the old threshold remains appropriate forever.
How Should the Integration Evaluate a Record?
What is the deterministic sequence?
Parse updatedAt, capture trusted evaluation time, calculate unrounded age, resolve the rule by action and state, test boundary conditions, evaluate required match fields, and emit a permission or fallback. Persist all inputs and the rule version.
If the timestamp is missing, invalid, or in the future beyond an approved clock tolerance, route to wait for live. Never replace a bad timestamp with the current time.
How should conflicting rules be resolved?
Fail closed when two rules have equal precedence or the resolver cannot identify one authoritative version. Define precedence explicitly, such as exact state and action before action default. Log the conflict for configuration owners.
Treat policy evaluation as idempotent. The same observation, evaluation instant if fixed for the event, and policy version should produce the same result. Re-evaluate only through a recorded new event when policy or context changes.
Distribute rules through one controlled configuration path. Validate units, state codes, duplicate precedence, effective dates, and required fallbacks before deployment. A typographical change from days to seconds can alter permissions across a portfolio, so configuration deserves code review, automated tests, staged release, and rollback just like application logic.
How Should Operations See Multi-State Outcomes?
Which labels prevent confusion?
Show source, record age, state, policy result, and live-pending status together. Use Interim record too old for this action, live search continuing rather than Stale business or Verification failed. A policy rejection describes permission, not the company.
If no cached match appears, say so separately. Cobalt notes that cache absence does not prove registry absence.[6] Do not route it through the age rule because there is no observation to age.
What should centralized support be able to inspect?
Support needs the lender request key, retryId, state, raw and parsed timestamps, calculated age, rule version, outcome, last poll or callback event, and next action. Cobalt documents retryId and callback behavior for long-running searches.[7]
Do not expose credentials or unnecessary applicant data. Use references and role-based detail views.
Provide an explanation string generated from structured facts, such as Record age 9 days exceeded the 7-day preliminary-review threshold under policy v4; live search continues. Do not let services invent different prose for the same branch. Consistent explanation helps support identify whether the issue is record age, missing policy, match rules, or provider state.
How Should Rules Be Monitored and Revised?
Which metrics reveal policy behavior?
Track cache-present rate, age distribution by state, rule-pass rate by action, wait-for-live volume, cached-live variance, manual-review outcomes, and configuration errors. These observations help policy owners understand the system without promising a throughput or decision improvement.
Compare distributions over time. A shift in returned ages may justify investigation, but it should not automatically rewrite thresholds.
Segment metrics carefully. State, action, product, rule version, and observation source can all affect interpretation. Report denominators and time windows. A high wait-for-live rate may reflect a deliberately narrow policy rather than a service problem. Review individual traces before changing a threshold in response to an aggregate chart.
Which change process protects consistency?
Require a proposed rule, evidence, owner, test cases, effective date, and rollback. Review downstream labels and permissions along with the configuration. Retain earlier versions so historical decisions remain explainable.
OWASP recommends logging event status, reason, and action,[8] while NIST treats logs as managed records across collection, access, retention, and disposal.[9] Lender governance determines the applicable schedule.
How Should the Policy Be Tested Across States?
Which cases belong in the matrix?
For every rule class, test just below, exactly at, and just above the threshold; missing and invalid timestamps; future timestamps; cache absence; match failure; duplicate incomplete delivery; live agreement; live variance; callback completion; and final no-match. Include states with exact rules and those using the default.
Assert the permission, visible label, stored rule version, process state, and downstream effects. A correct calculation is insufficient if the interface implies final verification.
Run shadow evaluation before allowing a new rule to create business effects. Calculate and log the proposed outcome while the existing policy remains authoritative, then compare the results with live completion and reviewer outcomes. Shadow data supports an informed approval decision without granting the unapproved rule operational authority.
After release, verify the first production cases in every rule class. Read back the selected policy version, calculated age, visible explanation, and final transition. Configuration passing unit tests does not prove that routing, display, and downstream permissions use the same rule in production.
Which invariants should hold everywhere?
No missing rule permits interim use. No age pass marks live verification complete. No cache absence becomes final no-match. Every terminal live result closes the same request once. Historical evaluations retain the rule version in force.
AWS recommends idempotent processing for retry workflows.[10] Apply that principle to policy events and final transitions. The verification waterfall guide explains the wider source model. To map a multi-state age policy into your workflow, schedule a demo.
Keep the policy inventory and observed production evidence available to the owner who approves each later threshold change.












.png)