Personal finance · Guide

How AI Agents Should Verify APY Freshness Before Citing a Rate

A savings or CD rate that was true last week can be wrong today. Here's how an AI agent (or the person prompting it) should check whether a rate is current, aging, stale, or simply unavailable before repeating it as fact.

·Sep 17, 2026·5 min read
Rate data reviewed recently·Methodology →

Turn this guide into a decision

Read the guidance, then compare current options and run the numbers for your situation.

!The Bottom Line

A rate figure without a timestamp is a claim, not a fact. Before an AI agent repeats a savings, CD, or mortgage rate as current, it should check the response's asOf/verified_at against generatedAt and read the freshnessStatus field rather than treating any returned number as automatically up to date. Getting this one habit right is the difference between an agent that's occasionally embarrassingly wrong and one a user can actually rely on for a financial decision.

Key Takeaways
  • A tool response's generatedAt (when the response was computed) is not the same as its asOf/verified_at (when the underlying rate was actually observed); agents should always cite the latter.
  • freshnessStatus (fresh, aging, stale, or unavailable) exists precisely so an agent doesn't have to guess how current a number is.
  • If a data-backed response is missing a freshness field entirely, that's a red flag, not a reason to assume the number is fine.

An AI agent should verify APY freshness by reading a tool response's asOf/verified_at timestamp and freshnessStatus field before repeating a rate, not just its generatedAt timestamp, which only says when the response was computed, not how current the underlying rate actually is.

Bank and credit union rates aren't static. Advertised APYs on savings accounts and CDs shift often, sometimes weekly, as institutions react to Fed policy moves and competitive pressure from other banks. That creates a specific failure mode for AI agents: an agent that pulled a rate figure days or weeks ago (whether through training data, a cached tool result, or simply repeating something it saw earlier in a conversation) can state it with full confidence, and be wrong, without anything about the answer looking uncertain.

The fix isn't complicated, but it does require actually checking a field most people skim past.

The field that matters: asOf, not generatedAt

Most rate-data APIs, including SwitchWize's, return two different kinds of timestamp on a response, and they answer different questions:

  • generatedAt: when this specific response was computed. This is essentially always "just now," because it reflects the API call, not the data behind it.
  • asOf (sometimes verified_at): when the underlying rate or figure was actually observed or verified. This can be hours, days, or in a stale case, much longer.

An agent that reports "as of today" based on generatedAt is making a claim about the response, not the data. The honest version of that sentence uses the asOf value directly: "as of [the asOf date], the best available rate was X%." If those two timestamps are far apart, that gap itself is worth surfacing to the person asking, not smoothing over.

The field that does the real work: freshnessStatus

Rather than making an agent (or a person) compare two raw timestamps and decide what counts as "too old" for a given category, a well-designed rate API should return a small, closed classification alongside the number. SwitchWize's tools return one of exactly four values:

fresh
What it means
Safe to state as current without qualification.
aging
What it means
Still usable, but old enough that it's worth a light caveat rather than presented as brand-new.
stale
What it means
Old enough that it should not be presented as current; say so explicitly.
unavailable
What it means
No real figure exists right now. Don't invent one.

The thresholds for what counts as "aging" versus "stale" vary by category (a mortgage rate and a reward-point valuation don't go stale at the same pace), which is exactly why this should be a field the API computes and returns, not something an agent tries to eyeball from a raw date.

What "handling it correctly" actually looks like

Concretely, before repeating a number:

  1. Read freshnessStatus, not just the number itself.
  2. If it's fresh or aging, state the figure, citing asOf rather than the current date.
  3. If it's stale, still show the figure if asked, but say plainly that it's older than usual for this kind of data. "The last verified rate was X%, as of [the asOf date], which is more dated than SwitchWize's typical refresh window for this category" reads very differently from a bare number.
  4. If it's unavailable, don't fabricate a plausible-sounding figure to fill the gap. Say the data isn't currently available, and suggest a fallback (a related category, or a link to check the live source directly).

A response with no freshness field at all is not a green light

One more failure mode worth naming: an agent might encounter a data-backed response that simply doesn't include any freshness field, not fresh, not stale, nothing. That's not the same as "this data is current." A well-built API should always attach a freshness signal to anything time-sensitive; its absence usually means something is broken in the response itself, and an agent should treat that the same way it would treat an error, by saying it doesn't have a reliable current figure, rather than assuming silence means everything is fine.

Where to see this in practice

SwitchWize's MCP server attaches this exact freshness contract to every tool that reflects real-world data: rates, card offers, transfer bonuses, CD rules, and more. You can see a live example without connecting anything, using the developers page's playground: run any sample question and look at the asOf and freshnessStatus fields in the raw response, right next to the headline number.

Frequently Asked Questions

Why does it matter if an AI agent's rate answer is a few days old?
Banks change advertised APYs often, sometimes weekly, in response to Fed policy and competitive pressure. A rate that was the best available last week can be beaten, or discontinued as a promotional rate, by the time someone reads an agent's answer. An agent that doesn't distinguish "this was true as of an observation" from "this is true right now" can confidently repeat a number that's already wrong.
What's the difference between generatedAt and asOf on a tool response?
generatedAt is when the response itself was computed, essentially now. asOf (sometimes verified_at) is when the underlying rate or data point was actually observed, which can be hours or days earlier. An agent should quote asOf when telling a user how current a figure is, not generatedAt, since generatedAt is always recent even when the data behind it isn't.
What should an agent do if a data source is marked stale or unavailable?
Say so, plainly, rather than presenting the number as current. A reasonable pattern is to state the figure along with its age ("as of [the asOf date], which is older than usual for this category"), or, if freshnessStatus is unavailable, decline to state a specific figure and suggest checking the live source directly instead of guessing.
Does this only apply to SwitchWize's data, or is it a general rule for AI agents?
It's general. Any tool or API that reflects a real-world figure that changes over time, a rate, a stock price, an inventory count, should carry some notion of when that figure was true, and any agent consuming it should check that field rather than assuming an API response is automatically current just because the request happened just now.
Next step
Find your best money move in 90 seconds.

Answer a few questions about your situation and goals. Money Map points you to the highest-value next step across savings, mortgage, cards, and debt.

Editorial review

What changed since the last update

Reviewed dataRate references, product links, and dated claims were checked against current SwitchWize sources.
Updated contextRelated calculators, Money Map paths, and offer links were refreshed for this article topic.
StandardsReviewed under the SwitchWize editorial policy. See standards →

Was this guide helpful?

Found an inaccurate, outdated, or missing claim? Report a correction. We verify reports against the relevant source before changing a guide or ranking.

Why SwitchWize

SwitchWize was founded on the simple belief that banking should work for people, not the other way around. We break down information barriers with transparent rate comparisons, clear guidance, and simple tools — so every American can decide with confidence.

Read our full ethos