<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Layerz</title>
    <description>The latest articles on DEV Community by Layerz (layerz).</description>
    <link>https://dev.to/layerz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13884%2Fca512855-4672-4162-a106-a2e954eedc44.png</url>
      <title>DEV Community: Layerz</title>
      <link>https://dev.to/layerz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/layerz"/>
    <language>en</language>
    <item>
      <title>Persistent Memory for a Financial Model: The Six Things That Must Survive a New Session</title>
      <dc:creator>anthomakr</dc:creator>
      <pubDate>Thu, 06 Aug 2026 13:53:41 +0000</pubDate>
      <link>https://dev.to/layerz/persistent-memory-for-a-financial-model-the-six-things-that-must-survive-a-new-session-n8</link>
      <guid>https://dev.to/layerz/persistent-memory-for-a-financial-model-the-six-things-that-must-survive-a-new-session-n8</guid>
      <description>&lt;p&gt;The second session is always worse than the first.&lt;/p&gt;

&lt;p&gt;The first one goes well. You explain the model, the agent picks it up, you get real work done. Two days later you open a new session and you are back at the beginning: re-explaining what the model is for, which line is a driver and which is an output, why costs are positive, why that one warehouse is excluded from the ramp.&lt;/p&gt;

&lt;p&gt;The usual diagnosis is that the AI has no memory. That is roughly true and completely unhelpful, because most memory features solve a different problem. They remember the &lt;strong&gt;conversation&lt;/strong&gt;. What you need is for the &lt;strong&gt;model&lt;/strong&gt; to be readable when the conversation starts.&lt;/p&gt;

&lt;p&gt;Those are not the same object, and the difference is why "turn on memory" rarely fixes this.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why chat memory is the wrong primitive
&lt;/h2&gt;

&lt;p&gt;A conversation is a lossy recording of work. Memory features compress it further, into something like a summary of what was discussed. Summaries of a financial model are exactly where the damage happens: "revenue is driven by headcount" is a sentence that survives compression, and it is not a formula.&lt;/p&gt;

&lt;p&gt;A model is a different kind of object. It has a shape, and the shape is either exactly right or it is wrong. There is no useful approximation of a dependency graph.&lt;/p&gt;

&lt;p&gt;So the question is not "how do I make the assistant remember more." It is "what has to exist outside the conversation so the next session does not need to remember anything."&lt;/p&gt;

&lt;p&gt;That list is short, and it is testable.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. What the model is for
&lt;/h2&gt;

&lt;p&gt;The first thing an agent needs is not a number. It is the deliverable.&lt;/p&gt;

&lt;p&gt;An agent building a lender-facing budget under covenants behaves differently from one filling in a template: it stays conservative, it flags anything that moves headroom, it does not quietly improve your assumptions. Without that framing it defaults to generic competence, which is the wrong register for most finance work.&lt;/p&gt;

&lt;p&gt;This is one paragraph. What the model produces, for whom, by when.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; the agent optimises for elegance instead of defensibility. It simplifies a structure your bank specifically asked for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; open a fresh session and ask what this model is for. If you have to answer, it does not persist.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The conventions
&lt;/h2&gt;

&lt;p&gt;Every number in the model is read through a set of conventions, and almost none of them are visible in the numbers themselves.&lt;/p&gt;

&lt;p&gt;Units and sign first, because they change what a figure means: &lt;code&gt;1 200&lt;/code&gt; is €1.2 million or €1,200 depending on a decision nobody wrote down. Then the working language, the closing calendar, and the terms your company redefined. Most finance teams have at least one term that means something non-standard internally, and it is usually a term the agent thinks it already knows. "Marge brute" that stops at purchases and excludes logistics is not gross profit, and an agent that assumes otherwise will produce a coherent, wrong answer.&lt;/p&gt;

&lt;p&gt;This is what &lt;a href="https://layerz.cc/finance-md" rel="noopener noreferrer"&gt;FINANCE.md&lt;/a&gt; exists for: one versioned file, read at session start, that says how to read the numbers before anyone touches them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; silent unit errors. The worst class of error, because the output looks right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; ask what a value of &lt;code&gt;1 200&lt;/code&gt; means in this model. A correct answer without your help means the conventions persist.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The structure
&lt;/h2&gt;

&lt;p&gt;This is the part people underestimate, and it is the expensive one.&lt;/p&gt;

&lt;p&gt;The structure is which items exist, what type each one is (an input you can change, a computed line you cannot, a balance that accumulates), and what depends on what. It is the difference between a model and a grid of numbers that happen to be arranged in a familiar way.&lt;/p&gt;

&lt;p&gt;An agent reading a spreadsheet does not receive this. It receives cells, and it infers. Inference on a well-built model is often right, which is precisely what makes it dangerous: you stop checking. Then it meets a row that breaks the pattern for a good reason, treats the exception as an error, and helpfully fixes it.&lt;/p&gt;

&lt;p&gt;The real failure here is not amnesia. It is &lt;strong&gt;confident reconstruction&lt;/strong&gt;: the agent rebuilds a plausible structure from what it can see, gets most of it right, and is wrong in the places that took you longest to get right.&lt;/p&gt;

&lt;p&gt;Related, but a different question: &lt;a href="https://layerz.cc/blog/why-finance-agents-need-a-model-layer" rel="noopener noreferrer"&gt;why spreadsheet access alone is not enough for an agent&lt;/a&gt; covers what structure buys you during a session. This is about what has to be there before it starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; an edit that computes correctly and breaks a link you needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; ask what feeds gross margin, and what would change if you moved one assumption. An agent that answers from the model rather than from pattern matching has the structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The grain
&lt;/h2&gt;

&lt;p&gt;Monthly, quarterly, yearly, or a single constant. Where the model changes grain, and how the periods line up.&lt;/p&gt;

&lt;p&gt;Grain sounds like a detail until an agent projects a yearly assumption across twelve months by dividing, when your model ramps it. Or annualises a partial period without saying so. Both produce numbers that pass a sanity check and fail a review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; a plausible number in the wrong period. Hard to spot, easy to present.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; ask over which periods a given assumption applies, and what happens in the first partial year.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The values, kept separate from the structure
&lt;/h2&gt;

&lt;p&gt;A model has logic, and it has the numbers currently loaded into that logic. If those two are the same object, every scenario is a copy of the whole thing, and the copies drift.&lt;/p&gt;

&lt;p&gt;Keeping them separate is what makes "run this with a 3% ramp instead of 5%" a change to one input rather than a new file. It is also what makes a model reusable next quarter, when the structure still holds and every value has moved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; version proliferation. Six files, none of them clearly the reference, and the differences between them are undocumented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; change one assumption and see whether you produced a variant or a new file.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. The history
&lt;/h2&gt;

&lt;p&gt;What changed, when, and why.&lt;/p&gt;

&lt;p&gt;The first two are mechanical and most tools give you something. The third is the one that matters and the one that is almost never captured: an assumption that moved because the sponsor asked for it in a call is a different object from one that moved because someone was testing. Six weeks later they look identical.&lt;/p&gt;

&lt;p&gt;History is also what makes an AI-assisted model defensible rather than merely fast. When a board asks where a number comes from, "the model was built with AI" is not an answer. A traceable chain from output to assumption, with the reason attached, is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure mode:&lt;/strong&gt; you can see that something changed, and you cannot reconstruct whether it was a decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; ask what changed since last month and why. The "why" is the part that tells you whether history persists or only diffs do.&lt;/p&gt;




&lt;h2&gt;
  
  
  When none of this is worth it
&lt;/h2&gt;

&lt;p&gt;Most of the time, honestly.&lt;/p&gt;

&lt;p&gt;For a one-off analysis you finish in a single sitting, a chat window and a spreadsheet are the right tools, and any of this would be overhead. Same for exploration: when you do not yet know what you are building, structure is a cost with no return, and you should not pay it before the shape settles.&lt;/p&gt;

&lt;p&gt;This list starts paying when a model gets &lt;strong&gt;touched again&lt;/strong&gt;. By you next month, by a colleague, by an agent in a session you are not watching. The cost of reconstruction is roughly linear in how often that happens, and most finance models get touched far more often than the person who built them expected.&lt;/p&gt;

&lt;p&gt;The other honest case against: if your model genuinely lives in one person's head and always will, the constraint is not tooling. Writing the six items down would help that person more than any AI setup, and it would help them whether or not an agent ever reads it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;Persistence is not a feature you switch on. It is six specific things existing outside the conversation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;What it answers&lt;/th&gt;
&lt;th&gt;The failure when it is missing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Objective&lt;/td&gt;
&lt;td&gt;What is this for&lt;/td&gt;
&lt;td&gt;Elegant instead of defensible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conventions&lt;/td&gt;
&lt;td&gt;How to read a number&lt;/td&gt;
&lt;td&gt;Silent unit and definition errors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structure&lt;/td&gt;
&lt;td&gt;What depends on what&lt;/td&gt;
&lt;td&gt;Confident reconstruction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grain&lt;/td&gt;
&lt;td&gt;Over which periods&lt;/td&gt;
&lt;td&gt;Right number, wrong period&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Values&lt;/td&gt;
&lt;td&gt;What is loaded right now&lt;/td&gt;
&lt;td&gt;Version proliferation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;History&lt;/td&gt;
&lt;td&gt;What changed and why&lt;/td&gt;
&lt;td&gt;Cannot tell a decision from a test&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Open a new session and ask three questions with no context: what is this model for, what feeds gross margin, and what changed last. If the answers come from the model rather than from you, it persists. If you find yourself re-explaining, you have located exactly which of the six is missing.&lt;/p&gt;

&lt;p&gt;That is a more useful diagnosis than "the AI forgot."&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://layerz.cc/blog/why-finance-agents-need-a-model-layer" rel="noopener noreferrer"&gt;Why Finance Agents Need a Model Layer&lt;/a&gt; · &lt;a href="https://layerz.cc/blog/finance-md-standard" rel="noopener noreferrer"&gt;FINANCE.md: An Open Standard for Financial Modeling Conventions&lt;/a&gt; · &lt;a href="https://layerz.cc/blog/save-tokens-building-financial-models-with-ai" rel="noopener noreferrer"&gt;How to Save Tokens When Building Financial Models with AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Layerz keeps a financial model as structure separate from data, with its conventions in a &lt;a href="https://layerz.cc/finance-md" rel="noopener noreferrer"&gt;FINANCE.md&lt;/a&gt; and every change versioned with its reason. An agent reads all six at session start instead of reconstructing them. Excel export is clean, standard, and never paywalled. &lt;a href="https://layerz.cc/" rel="noopener noreferrer"&gt;Explore Layerz →&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>finance</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Your Client's Contract Says No AI. What You Can Still Do.</title>
      <dc:creator>anthomakr</dc:creator>
      <pubDate>Thu, 30 Jul 2026 19:05:48 +0000</pubDate>
      <link>https://dev.to/layerz/your-clients-contract-says-no-ai-what-you-can-still-do-50aa</link>
      <guid>https://dev.to/layerz/your-clients-contract-says-no-ai-what-you-can-still-do-50aa</guid>
      <description>&lt;p&gt;There is a pattern showing up in financial modeling that nobody predicted two years ago: experienced practitioners are using &lt;strong&gt;less&lt;/strong&gt; AI than they were, not more.&lt;/p&gt;

&lt;p&gt;Not because the tools got worse. Because the contracts changed. Engagement letters and NDAs increasingly carry a clause prohibiting confidential information from being entered into a generative AI system, and the practitioner who signed it now has a spreadsheet in one window, a chat interface in the other, and a rule against connecting them. The workaround is deliberately vague prompting: debug this formula, explain this accounting treatment, never a real number.&lt;/p&gt;

&lt;p&gt;That is a real constraint and it deserves a real answer, not a reassurance. This article is about what those clauses actually prohibit, what actually happens to data you send to a model provider, and which workflows stay inside the line. Sources are linked throughout, because on this topic a confident claim without a citation is worth nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  First: read the clause. Three different prohibitions get called "no AI"
&lt;/h2&gt;

&lt;p&gt;Practitioners tend to collapse three very different restrictions into one blanket "we can't use AI." They have different scopes and different remedies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. No training on our data.&lt;/strong&gt; The most common formulation. It prohibits your data being used to improve a model, not the act of inference itself. This one is often already satisfied by the commercial terms of the provider you were going to use anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. No consumer-grade or publicly available tools.&lt;/strong&gt; The second most common. Typical drafting: &lt;em&gt;the recipient shall not input confidential information into any publicly-available or consumer-grade generative artificial intelligence or large language model.&lt;/em&gt; This restricts the &lt;strong&gt;tier&lt;/strong&gt;, not the technology. A commercial API account under a data processing agreement is a different object from a personal Pro subscription, and the clause frequently says so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. No processing by any third party.&lt;/strong&gt; The broadest. This one genuinely rules out any hosted model, and the only remaining paths are a local model or no model at all.&lt;/p&gt;

&lt;p&gt;The distinction matters because the three clauses have different answers, and because the middle one is the most common while also being the one most often read as if it were the third. Before changing how you work, get the actual sentence in front of you and identify which of the three you are dealing with. If it is ambiguous, that ambiguity is a question for the client, not something to resolve by assuming the strictest reading.&lt;/p&gt;




&lt;h2&gt;
  
  
  Second: know what actually happens to the data
&lt;/h2&gt;

&lt;p&gt;Most of the fear in this area is calibrated to a 2023 understanding of how these services worked. The terms have changed, they are public, and they are specific. What follows is what the providers themselves document, with the nuances that get lost in summary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the commercial tier, your data is not training the model.&lt;/strong&gt; Anthropic's developer documentation states that retained data "is never used for model training without your express permission," and that inputs and outputs on the commercial API are deleted within 30 days by default (&lt;a href="https://platform.claude.com/docs/en/manage-claude/api-and-data-retention" rel="noopener noreferrer"&gt;Anthropic, API and data retention&lt;/a&gt;). OpenAI documents that since 1 March 2023, data sent to its API "is not used to train or improve OpenAI models (unless you explicitly opt in to share data with us)," with abuse-monitoring logs retained up to 30 days (&lt;a href="https://developers.openai.com/api/docs/guides/your-data" rel="noopener noreferrer"&gt;OpenAI, Data controls&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The consumer tier is a genuinely different product, and this is the one your clause is about.&lt;/strong&gt; Under the consumer terms announced in August 2025, users on Claude Free, Pro and Max choose whether their chats are used to improve the model, with retention of five years if they allow it against the standard 30 days if they do not. That update explicitly does not apply to services under Anthropic's Commercial Terms, including API use (&lt;a href="https://www.anthropic.com/news/updates-to-our-consumer-terms" rel="noopener noreferrer"&gt;Anthropic, 2025&lt;/a&gt;). If you are working from a personal Pro subscription, you are on the tier the clause was drafted to catch. That is worth sitting with, because it is the single most common gap between what practitioners believe about their setup and what is true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero data retention exists, and it is narrower than the name suggests.&lt;/strong&gt; Under a ZDR arrangement, prompts and responses are not stored at rest after the response is returned. But the documentation lists what the arrangement does not cover: consumer plans, the Claude Teams and Enterprise product interfaces, Console and Workbench, Claude for Excel, Managed Agents, third-party integrations, and the models designated Covered Models, which require 30-day retention. A separate eligibility table puts further features outside it, among them code execution, the Files API, batch processing, the MCP connector and Agent Skills. The trap is that using one of those does not fail loudly: nothing blocks the request, and the documentation is explicit that using an ineligible feature "is a choice to step outside your ZDR arrangement for that specific data." ZDR is enabled per organization and arranged through sales, not toggled in settings (&lt;a href="https://platform.claude.com/docs/en/manage-claude/api-and-data-retention" rel="noopener noreferrer"&gt;Anthropic, API and data retention&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nothing is absolute.&lt;/strong&gt; Anthropic documents that even with a ZDR or HIPAA arrangement, content flagged by automated trust and safety systems may be retained for up to two years. Any claim that data "never touches their servers" is false for every hosted model, and you should distrust any vendor who tells you otherwise.&lt;/p&gt;

&lt;p&gt;The honest summary: on a commercial tier with a DPA, your data is processed, retained briefly, not trained on, and subject to documented exceptions. That is a materially different risk profile from a consumer subscription, and it is checkable rather than assumed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Third: the obligation may exist even if the contract is silent
&lt;/h2&gt;

&lt;p&gt;For US CPAs there is a second layer that does not depend on what the client's contract says.&lt;/p&gt;

&lt;p&gt;The AICPA Confidential Client Information Rule (1.700.001) provides that a member in public practice shall not disclose confidential client information without the client's specific consent. Interpretation 1.700.040 addresses what happens when a third-party service provider is involved: before disclosing confidential client information to that provider, the member should &lt;strong&gt;either&lt;/strong&gt; enter into a contractual agreement with the provider to maintain confidentiality and give reasonable assurance of appropriate procedures, &lt;strong&gt;or&lt;/strong&gt; obtain specific consent from the client (&lt;a href="https://www.journalofaccountancy.com/issues/2015/mar/aicpa-confidentiality-rule/" rel="noopener noreferrer"&gt;Blatch, Journal of Accountancy, 2015&lt;/a&gt; · &lt;a href="https://www.journalofaccountancy.com/issues/2024/sep/outsourcing-and-professional-liability/" rel="noopener noreferrer"&gt;Journal of Accountancy, 2024&lt;/a&gt;). The Code's word is "should", not "must", and the interpretation predates generative AI: it does not name it, which is precisely why it applies to it.&lt;/p&gt;

&lt;p&gt;A hosted model provider is a third-party service provider on any plain reading, and the rule gives you two doors rather than one. The contractual door is a DPA with a commercial provider. The consent door is a conversation with your client. Neither of them is "stop using AI."&lt;/p&gt;

&lt;p&gt;Silence in the engagement letter is not permission, and it is not prohibition either. It is an unanswered question, and the profession's own rule tells you how to answer it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The four workflows that stay inside the line
&lt;/h2&gt;

&lt;p&gt;Ranked from the most restrictive constraint to the least.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Never send client numbers at all: build the structure, populate offline
&lt;/h3&gt;

&lt;p&gt;This is the one most people miss, and it is the one that works even under the broadest clause.&lt;/p&gt;

&lt;p&gt;A financial model is two things stacked together: a &lt;strong&gt;structure&lt;/strong&gt; (the logic, the formula relationships, the timeline, the ordering of a debt waterfall, the shape of a three-statement build) and &lt;strong&gt;data&lt;/strong&gt; (this client's actuals, this deal's assumptions). Confidentiality attaches to the data. It does not attach to the fact that interest expense is a function of average debt balance.&lt;/p&gt;

&lt;p&gt;So you can do the expensive part with AI on a structure that contains no client information, using placeholder or synthetic figures, then populate the real numbers in a separate step that no model ever sees. The AI does the work you actually wanted help with, which is the architecture and the formula logic, and the confidential figures never leave your environment.&lt;/p&gt;

&lt;p&gt;This is not a trick and it does not need a vendor. You can do it with a blank workbook. It does require a tool where structure and data are genuinely separable, because in a normal spreadsheet the logic and the numbers live in the same cells and there is no clean line to cut along.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Move to a commercial tier and paper it
&lt;/h3&gt;

&lt;p&gt;If the clause targets consumer-grade tools, the remedy is to stop using a consumer tool. A commercial API account or an enterprise agreement with a DPA, plus ZDR if your use case qualifies for it, addresses the substance of most clauses in this family, and it happens to be exactly the contractual-agreement limb of AICPA 1.700.040.&lt;/p&gt;

&lt;p&gt;Read the exclusion list before you rely on it. If your workflow depends on file uploads, code execution or a hosted connector, check whether those specific features are inside your arrangement.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Ask for consent, specifically
&lt;/h3&gt;

&lt;p&gt;The most underused path. Practitioners assume the answer is no and never ask.&lt;/p&gt;

&lt;p&gt;A specific request works better than a general one: name the tool, name the tier, name what data would be sent, name the retention and training terms, and offer the alternative. Clients who would refuse "can I use AI on your file" quite often approve "I would use a commercial account under a data processing agreement with no training on your data and 30-day retention, for the model structure only." You have also just created a written record, which is the thing your professional obligation actually wants.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Run a local model
&lt;/h3&gt;

&lt;p&gt;If the clause prohibits any third-party processing, a model running on your own hardware is the only remaining option that keeps AI in the workflow. The trade is real: local open-weight models are meaningfully behind frontier models on multi-step numerical reasoning, and financial reasoning is one of the areas where the gap shows. For structural work, boilerplate and formula debugging on a straightforward build, they are usable today. For a complex model, they are not a substitute.&lt;/p&gt;

&lt;p&gt;Most practitioners in finance do not know this is even possible. It is worth two hours of your time to find out where the ceiling is for your own work, rather than assuming it either solves everything or nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What not to do: the quiet regression
&lt;/h2&gt;

&lt;p&gt;The most common response to a restrictive clause is none of the four above. It is to keep using the same consumer tool, and simply be vaguer about it. Paste less. Describe the problem in general terms. Rename the client.&lt;/p&gt;

&lt;p&gt;This is the worst available option, and it is worth naming clearly.&lt;/p&gt;

&lt;p&gt;It does not actually achieve compliance, because "less confidential information" is not "no confidential information," and a pasted formula from a live client model with the numbers changed is still derived from confidential material. It removes the audit trail, because the work is now happening in a chat window nobody can reconstruct. And it degrades your output, because you have deprived the model of the context it needed while keeping every risk that mattered.&lt;/p&gt;

&lt;p&gt;It also has a measurable cousin. In one analysis of 22.4 million enterprise AI prompts and uploads, financial data (projections, investment analysis, sales pipeline) was the single largest category of sensitive information detected, at 16.6% of all exposures (&lt;a href="https://www.harmonic.security/resources/what-22-million-enterprise-ai-prompts-reveal-about-shadow-ai-in-2025" rel="noopener noreferrer"&gt;Harmonic Security, 2025&lt;/a&gt;, vendor telemetry rather than a representative panel). The vagueness strategy is how most of that happens: not deliberate exfiltration, just practitioners who believed they were being careful enough.&lt;/p&gt;

&lt;p&gt;Pick a real path. An informal one is not a path.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where a model layer helps, and where it does not
&lt;/h2&gt;

&lt;p&gt;Full disclosure of the obvious: we build &lt;a href="https://layerz.cc" rel="noopener noreferrer"&gt;Layerz&lt;/a&gt;, a workspace that holds a financial model as structure separate from data, which Claude drives from the outside through MCP. So take the following with the appropriate suspicion, and note what it does not claim.&lt;/p&gt;

&lt;p&gt;It does not make you compliant. If you point an AI at a model that contains your client's real numbers, those numbers go to the model provider exactly as they would from any other tool, and no architecture changes that. Anyone telling you otherwise is selling you something.&lt;/p&gt;

&lt;p&gt;What separating structure from data does change is that workflow #1 above stops being a discipline you have to maintain by hand and becomes the default shape of the work. The logic, the dependencies and the timeline are one object. The values are another. You can hand the first to an AI and keep the second out of scope, then export a clean Excel file and populate it where the confidentiality obligation lives. That is a narrow claim, and it is the only one worth making.&lt;/p&gt;

&lt;p&gt;The related question of whether the tool itself introduces new exposure, through dynamic code execution on files you did not author, is a different problem covered in &lt;a href="https://layerz.cc/blog/ai-confidential-financial-data-security" rel="noopener noreferrer"&gt;AI and Confidential Financial Data: What Actually Happens to Your Numbers&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The checklist
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;On the contract:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get the actual clause in front of you. Which of the three prohibitions is it?&lt;/li&gt;
&lt;li&gt;If it is ambiguous, it is a client question, not an assumption.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;On your setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tier are you on? Consumer subscription or commercial account with a DPA?&lt;/li&gt;
&lt;li&gt;If you rely on ZDR, have you checked your specific features against the exclusion list?&lt;/li&gt;
&lt;li&gt;Would you be able to describe your data flow to the client in three sentences? If not, you do not yet know what it is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;On the work:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which parts of this engagement need real numbers, and which are structural?&lt;/li&gt;
&lt;li&gt;Can the structural part be done on a model that contains no client data?&lt;/li&gt;
&lt;li&gt;Is there a record of what the AI touched, or only a chat history?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;A clause prohibiting confidential data in a generative AI system is not a prohibition on using AI. It is a constraint on &lt;strong&gt;which data&lt;/strong&gt;, on &lt;strong&gt;which tier&lt;/strong&gt;, and &lt;strong&gt;with whose consent&lt;/strong&gt;. Practitioners who read it as a total ban give up most of the value while frequently retaining the actual exposure, because the vagueness workaround is not compliance.&lt;/p&gt;

&lt;p&gt;The most durable answer is also the least technological: keep the confidential figures out of the part of the work you delegate. That was good practice before any of this existed. The tooling question is only whether your tools let you draw the line cleanly, or force you to hold it in your head.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Related: &lt;a href="https://layerz.cc/blog/ai-confidential-financial-data-security" rel="noopener noreferrer"&gt;AI and Confidential Financial Data&lt;/a&gt; · &lt;a href="https://layerz.cc/blog/shadow-it-ai-financial-modeling-risk" rel="noopener noreferrer"&gt;Shadow IT in Finance&lt;/a&gt; · &lt;a href="https://layerz.cc/resources/ai-financial-model-risk-statistics" rel="noopener noreferrer"&gt;AI Financial Model Risk and Governance: Statistics&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>finance</category>
      <category>privacy</category>
      <category>security</category>
    </item>
    <item>
      <title>The Finance Engineer Job Description Is a Spec for Infrastructure Nobody Has Built</title>
      <dc:creator>anthomakr</dc:creator>
      <pubDate>Mon, 27 Jul 2026 09:21:39 +0000</pubDate>
      <link>https://dev.to/layerz/the-finance-engineer-job-description-is-a-spec-for-infrastructure-nobody-has-built-kff</link>
      <guid>https://dev.to/layerz/the-finance-engineer-job-description-is-a-spec-for-infrastructure-nobody-has-built-kff</guid>
      <description>&lt;p&gt;VulnCheck, a security company in Boston, is hiring a Finance Engineer. The posting asks the hire to connect the GL, billing, CRM and spend management systems "via API/MCP." To build Claude-powered workflows that draft variance commentary and flag anomalies. And to own the financial model's technical architecture, "including version control and forecast logic."&lt;/p&gt;

&lt;p&gt;Read that last one again. Version control. For a financial model. Owned by someone whose team is listed as Finance.&lt;/p&gt;

&lt;p&gt;That is not really a job description. It is a systems requirement, written by a company that needed a capability, found no product that provides it, and hired a person instead.&lt;/p&gt;

&lt;p&gt;We went looking to see whether this was one unusual posting or a pattern. It is a pattern, and the pattern says something uncomfortable about the tooling underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the postings actually say
&lt;/h2&gt;

&lt;p&gt;So we counted. In July 2026 we queried the public job board APIs of 1,061 candidate employers across the US and Europe, scanned all 27,278 open postings on the 421 live boards that answered, filtered on the department each employer assigns to the posting itself, and coded every survivor from full text. That produced 37 qualifying requisitions across 26 employers, published with the full method, the adjudication rules and the corpus in &lt;a href="https://layerz.cc/resources/finance-engineer-statistics" rel="noopener noreferrer"&gt;The Finance Engineer Role: Job Posting Statistics&lt;/a&gt;. Three findings matter here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nobody agrees what to call it.&lt;/strong&gt; Thirty-seven requisitions, thirty-seven distinct titles. No two employers word it the same way, and exactly one calls the job plainly "Finance Engineer." The rest are Agentic Finance Engineer, Tech Lead for Finance &amp;amp; Supply Chain Engineering, Head of Engineering for Finance Systems, Finance System Architect Manager, Order to Cash Track Lead for Finance Engineering, and so on. Sixteen of the thirty-seven carry no finance word in the title at all: Brex's "Data Engineer," OpenAI's "Workday Engineer," Attentive's "Anaplan Application Developer," ElevenLabs' "Systems Architect," each sitting inside a finance or accounting department. A title search cannot find this population, which is the first thing anyone counting it should know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is also rare.&lt;/strong&gt; Of the 987 open finance-department roles across those 421 employers, 26 were engineering roles. That is 2.6%, or one in thirty-eight. This is not yet a wave. It is a small number of companies making a specific and expensive bet.&lt;/p&gt;

&lt;p&gt;And they are making it alone. The obvious alternative is to let a vendor deploy an engineer instead, which is exactly what the forward deployed engineer boom is for. On the same boards there are 348 open FDE postings across 66 employers. Precisely one requisition is finance-facing. Widen it to every deployment-shaped role, solutions architects and implementation engineers included, and you get 545 requisitions of which 14 touch finance, nearly all of them presales attached to a platform sale. Nobody is coming to build this for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And it is not only an American story.&lt;/strong&gt; A dedicated European pass over 91 additional employer boards found the role in Germany, the UK, Spain, Sweden and Poland: Helsing hiring a Finance Data Engineer in Munich, Zilch a finance analytics engineer in the UK, Celonis a Finance Systems Engineer in Madrid, Lovable a Financial Systems Engineer in Stockholm. Europe runs at 1.9% of finance-department openings against 2.6% in the US, so the gap is real but narrow. What Europe does not have is the vocabulary: not one European posting calls the job a finance engineer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It mostly, but not always, sits in Finance.&lt;/strong&gt; Twenty-six of the thirty-seven are placed by their employer in a Finance, Accounting or Finance Systems department: Anthropic, OpenAI, Coinbase, Databricks, Brex, Stripe, Twilio, Attentive, Cloudflare, SoFi, Mercor, Affirm, VulnCheck. Where a reporting line is spelled out, it names a finance leader: VP of FP&amp;amp;A, Head of Finance Systems, Senior Manager of Finance Data and AI.&lt;/p&gt;

&lt;p&gt;The eleven exceptions complicate the tidy version of this story. Klaviyo runs an entire "Finance Engineering" function out of &lt;strong&gt;IT &amp;amp; Security&lt;/strong&gt;. Block puts a Senior Finance Systems Engineer in &lt;strong&gt;Engineering&lt;/strong&gt;, CoreWeave and Epirus theirs in &lt;strong&gt;IT&lt;/strong&gt;, Harvey in &lt;strong&gt;Product&lt;/strong&gt;, Whoop in &lt;strong&gt;Business Intelligence&lt;/strong&gt;. So the direction of travel is real, and finance is staffing its own systems rather than filing tickets for them. But roughly one role in three is still owned outside finance, and anyone claiming the shift is universal has not counted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It wants two careers in one person.&lt;/strong&gt; Spring Health's Senior Finance Engineer posting asks for "4+ years designing and deploying automation, AI, and/or ML systems in Finance" &lt;em&gt;and&lt;/em&gt;, separately and additively, "4+ years in FP&amp;amp;A, Strategic Finance, Accounting, or Finance Transformation." Its named tool list runs NetSuite, Pigment, Airbase, Claude, ChatGPT, Gemini. Commercial LLMs, listed by name, in the requirements section of a finance role.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tell is in what these postings assume already exists
&lt;/h2&gt;

&lt;p&gt;Strip the postings down to their verbs and a shopping list appears. Across the corpus, employers casually assume the following are available to a finance team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Version control over a financial model.&lt;/strong&gt; Not over a file. Over the model: what changed, when, by whom, and what it moved downstream.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An API surface over financial logic&lt;/strong&gt;, not just over financial data. Model Context Protocol is now named by protocol in four postings across three employers, all inside finance departments: VulnCheck, ElevenLabs, and both of OpenAI's Enterprise AI Platform roles. An agent interoperability standard released in late 2024 has become a line item in corporate finance hiring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conventions that persist&lt;/strong&gt; between sessions and between people. When the posting says "assemble reporting packages," it assumes the definition of ARR used in October is the definition used in March.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An audit path&lt;/strong&gt; from an output number back to the assumption that moved it. Every posting mentioning close, variance commentary or ASC compliance assumes this implicitly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of those four is unremarkable in software engineering. Git, APIs, schemas, commit history: solved decades ago. None of the four is standard in finance. And the reason is not that finance teams are less sophisticated. It is the substrate.&lt;/p&gt;

&lt;p&gt;It is also expensive, and the shape of the expense is the tell. Seventeen postings disclose a US base range, spanning $112,000 to $385,000, with a median band midpoint of $231,500.&lt;/p&gt;

&lt;p&gt;The sharper number comes from OpenAI, which publishes structured bands on every role and has enough openings to compare like with like. Its five finance-department engineering roles carry a median band midpoint of $307,500. The other forty-five roles in the same finance department: $228,000. Its two hundred and ninety-seven product engineering roles: $309,000.&lt;/p&gt;

&lt;p&gt;So a finance-department engineer there is paid 35% above the rest of the finance organization, and within half a percent of a product engineer. The premium is not for finance expertise, and it is not a cost-centre discount. These companies are paying full engineering rates for engineering work that happens to sit in finance, which is what you do when you have concluded the capability has to exist and no vendor sells it to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The spreadsheet is an excellent calculator and a poor substrate
&lt;/h2&gt;

&lt;p&gt;This is worth saying plainly, because the anti-Excel genre is tiresome and mostly wrong.&lt;/p&gt;

&lt;p&gt;Excel is extraordinary at what it does. It is the lingua franca of finance, readable by anyone in the building without training, the format your investor and your auditor and your acquirer all accept, and the fastest way in the world to answer a question with numbers. Nothing here argues for replacing it as the deliverable. It is not going anywhere and it should not.&lt;/p&gt;

&lt;p&gt;But a spreadsheet has properties that make it a bad foundation for the four requirements above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A file copy is not a version.&lt;/strong&gt; &lt;code&gt;Model_v4_FINAL_rev2_JD.xlsx&lt;/code&gt; records that something changed. It does not record what, or why, or what it broke.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The API is over cells, not over logic.&lt;/strong&gt; You can read &lt;code&gt;D14&lt;/code&gt;. You cannot ask what &lt;code&gt;D14&lt;/code&gt; means, what feeds it, or whether it is an input or an output. That distinction does not exist in the file format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intent does not persist.&lt;/strong&gt; The reason a growth rate is 12% lives in the modeler's head, or in a comment, or nowhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;There are no types.&lt;/strong&gt; &lt;code&gt;0.12&lt;/code&gt; might be a tax rate, a margin, a churn assumption or a rounding artifact. A human infers it from context. An agent guesses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when a company writes "own version control and forecast logic for the financial model," the honest answer available to a finance engineer today is a stack of workarounds: a naming convention, a folder of &lt;code&gt;.xlsx&lt;/code&gt; files in a git repo that nobody can meaningfully diff, and a page of documented conventions that goes stale within a quarter. It works right up until someone changes an assumption and half the links quietly stop following.&lt;/p&gt;

&lt;p&gt;That is the gap the job postings are papering over with a hire.&lt;/p&gt;

&lt;h2&gt;
  
  
  "We will ask for examples"
&lt;/h2&gt;

&lt;p&gt;There is a second thing happening in these postings, and it is the part most likely to change how the role is filled.&lt;/p&gt;

&lt;p&gt;Finance hiring ran on credentials for a long time, and for a defensible reason: the work was invisible. It lived inside someone else's ERP, under an NDA, in a file you could not take with you. There was nothing to show, so people showed a CPA, an MBA, a bank on the résumé.&lt;/p&gt;

&lt;p&gt;The postings in this corpus are not asking for that. They are asking what you built. The automation you shipped, the close you cut from seven days to two, the agent workflow your team actually uses. That shift only works if the work is showable.&lt;/p&gt;

&lt;p&gt;Here is the problem: most finance work still is not showable. A spreadsheet is something you attach, not something you show. It carries your employer's real numbers, it takes forty minutes to explain, and its structure is inseparable from its data, so you cannot share the thinking without also sharing the confidential inputs.&lt;/p&gt;

&lt;p&gt;A model whose &lt;strong&gt;structure is separable from its data&lt;/strong&gt; is a different artifact. The logic, the dependency graph, the conventions, the timeline: shareable, forkable, reviewable, and provably yours, with nobody's actuals inside it. That is a portfolio piece. It is also, not coincidentally, the same property that makes version control and API access possible in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a substrate for this role would need
&lt;/h2&gt;

&lt;p&gt;If you are stepping into one of these roles, or writing one of these job descriptions, the underlying question is what you build on. The requirements are consistent enough now to name:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Structure separated from data&lt;/strong&gt;, so the logic can be versioned, reviewed and reused without dragging the numbers along.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A dependency graph that is explicit&lt;/strong&gt;, so a change to an assumption produces a knowable set of downstream effects rather than a surprise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conventions written down in a form the tooling reads&lt;/strong&gt;, not just the humans. This is what &lt;a href="https://layerz.cc/blog/finance-md-standard" rel="noopener noreferrer"&gt;FINANCE.md&lt;/a&gt; is for: currency, units, sign convention, what your organization means by ARR, carried with the model instead of in someone's memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agent-addressable interface&lt;/strong&gt;, because the postings already assume the LLM is in the loop. If your agent has to re-read the entire model to change one number, you will pay for it in tokens and in drift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Excel on the way out, always.&lt;/strong&gt; The deliverable is still &lt;code&gt;.xlsx&lt;/code&gt;. A substrate that traps you is worse than the spreadsheet it replaced.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Layerz is built for exactly this shape: structured models an agent drives over MCP, with the structure versioned separately from the data, and clean Excel export that is never paywalled. It is worth being clear about what it does not do. It is not an ERP and will not run your close. It does not replace NetSuite, Workday or your billing system, which are the systems most of these postings spend their time integrating. And if your work is genuinely one-shot analysis, a spreadsheet and a good prompt will beat it on speed every time.&lt;/p&gt;

&lt;p&gt;Where it earns its place is the part the postings keep describing and no spreadsheet can hold: a model that persists, that an agent can change without breaking, and that you can hand to someone else with the reasoning intact.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;The finance engineer role is real, it reports into Finance, and it is being asked to deliver software engineering guarantees on top of a substrate that offers none of them. Right now the gap is being closed by hiring unusually capable people and letting them improvise infrastructure out of file naming conventions.&lt;/p&gt;

&lt;p&gt;That works, for a while. It is not a foundation. The postings have already written the spec. The question is only whether the person filling the role has to build it from scratch.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Layerz is a financial modeling substrate that keeps a model's structure separate from its data, versioned, and drivable by any AI agent over MCP or REST. Finance teams use it as the layer their agents and their Excel exports both sit on top of. &lt;a href="https://layerz.cc" rel="noopener noreferrer"&gt;Explore Layerz&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;The corpus behind this piece is open: &lt;a href="https://layerz.cc/resources/finance-engineer-statistics" rel="noopener noreferrer"&gt;37 requisitions, 26 employers, method and exclusion rules published&lt;/a&gt;, with the coded data on &lt;a href="https://huggingface.co/datasets/layerz/finance-engineer-postings" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; under CC BY 4.0. Recount it and disagree if you think we drew the line in the wrong place.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>finance</category>
      <category>ai</category>
      <category>career</category>
      <category>data</category>
    </item>
    <item>
      <title>Why Finance Agents Need a Model Layer, Not Just Spreadsheet Access</title>
      <dc:creator>anthomakr</dc:creator>
      <pubDate>Thu, 02 Jul 2026 13:14:25 +0000</pubDate>
      <link>https://dev.to/layerz/why-finance-agents-need-a-model-layer-not-just-spreadsheet-access-27j2</link>
      <guid>https://dev.to/layerz/why-finance-agents-need-a-model-layer-not-just-spreadsheet-access-27j2</guid>
      <description>&lt;p&gt;You have built the agent. It calls a spreadsheet via API, reads the relevant cells, and produces something useful: a variance analysis, a scenario update, a summary for a board meeting. It works. Until you change the spreadsheet layout. Or until you start a new session and have to explain the model structure all over again. Or until the agent produces a number that is technically correct from the cell values it read, but violates a convention you have maintained for three years without anyone knowing to encode it.&lt;/p&gt;

&lt;p&gt;Connecting an AI agent to a spreadsheet is a reasonable first step. It is not a model layer. And the difference turns out to matter a lot for anything you would call real financial work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What spreadsheet access actually gives an agent
&lt;/h2&gt;

&lt;p&gt;When an agent reads a spreadsheet (through an API, a plugin, or a code execution tool), it gets cells. It can read values, detect patterns in ranges, and make inferences about structure from formatting and proximity. That is more than nothing.&lt;/p&gt;

&lt;p&gt;What it does not get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Types.&lt;/strong&gt; A cell with the value 0.12 could be a tax rate, a growth assumption, a margin, or a rounding artifact. The agent does not know.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependencies.&lt;/strong&gt; Whether that 0.12 feeds into three downstream formulas or is an isolated value, the agent cannot see this without parsing every formula string in the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeline semantics.&lt;/strong&gt; Which columns represent months vs. years, where the actuals end and the forecast starts, whether a value is per-period or cumulative: all inferred, none explicit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roles.&lt;/strong&gt; Whether a line is an input assumption, a formula driven by other lines, an aggregation, or an output: these are categories that do not exist in spreadsheet format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;History.&lt;/strong&gt; What the value was last week. What changed and why.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a one-shot query ("what is the EBITDA in 2026?"), this is fine. For anything iterative (updating assumptions across scenarios, understanding why a number changed, rebuilding context across sessions), spreadsheet access is a thin foundation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The session reset problem
&lt;/h2&gt;

&lt;p&gt;The most underrated cost of running agents on spreadsheets is the context overhead on every new session.&lt;/p&gt;

&lt;p&gt;A well-built financial model has logic that took days to develop: revenue drivers, cost structure dependencies, debt waterfall rules, EBITDA normalization conventions. An agent working on this model in session one learns all of this through your prompts and its own inference. Session two starts from scratch.&lt;/p&gt;

&lt;p&gt;You re-explain the model structure. You re-establish the conventions. You re-orient the agent toward the right interpretation of ambiguous cells. Then you do the actual work. For anyone running regular AI-assisted financial workflows, this overhead compounds quickly.&lt;/p&gt;

&lt;p&gt;A model layer solves this structurally. The model's structure (its variables, their types, their dependencies, their timelines) is stored and queryable. The agent reads it at the start of every session without explanation. The context is persistent, not reconstructed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The convention problem
&lt;/h2&gt;

&lt;p&gt;Financial models carry organizational conventions that are not visible in cell values.&lt;/p&gt;

&lt;p&gt;Your EBITDA excludes IFRS 16 lease costs, a decision made three years ago for comparability reasons. Your FX rates are ECB end-of-period, not average, because an auditor asked for it once and it became the standard. Restructuring charges from 2024 are excluded from adjusted figures: that was a board decision, documented in a memo nobody can find anymore.&lt;/p&gt;

&lt;p&gt;These conventions are real. They are defensible. They are the difference between your numbers and a competitor's numbers when a PE board asks why the EBITDA margins differ. And they exist nowhere in the spreadsheet.&lt;/p&gt;

&lt;p&gt;An agent working on your model does not know any of this. It calculates what the cells tell it to calculate. It reports what the formulas produce. If the conventions are not encoded somewhere the agent can read, every run is a convention violation waiting to happen.&lt;/p&gt;

&lt;p&gt;This is what FINANCE.md addresses: a structured file that encodes organizational financial conventions in a format any agent can read at session start. EBITDA definition, FX policy, restatement rules, declared once, versioned, queryable. The agent knows the rules before it touches the numbers. See the &lt;a href="https://github.com/layerzlabs/finance-md" rel="noopener noreferrer"&gt;FINANCE.md open standard&lt;/a&gt; for the specification.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a model layer actually provides
&lt;/h2&gt;

&lt;p&gt;A model layer sits between an agent and a data store. It exposes not just values, but structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Typed variables.&lt;/strong&gt; Every variable in the model has an explicit type: assumption, formula, aggregation, output. An agent knows whether it is looking at an input it can change or a derived value it should only read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependency graph.&lt;/strong&gt; The relationships between variables are explicit and traversable. An agent updating a revenue growth assumption knows which downstream variables will be affected before it makes the change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline semantics.&lt;/strong&gt; The model's temporal structure is declared: monthly, quarterly, annual, the start and end of the forecast, where actuals end. The agent does not infer this from column headers; it reads it from the model definition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query interface.&lt;/strong&gt; An agent can ask "what are the revenue drivers?" and get a structured answer, not a range of cells to interpret. It can ask "what changed since last week?" and get a diff, not a request to compare two file versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convention encoding.&lt;/strong&gt; The model layer stores not just the structure but the rules: what this organization means by EBITDA, how FX is applied, which items are normalized. These travel with the model, not with the analyst who built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  When spreadsheet access is enough
&lt;/h2&gt;

&lt;p&gt;This distinction only matters for agents doing iterative, multi-session financial work with real conventions and real stakes.&lt;/p&gt;

&lt;p&gt;For one-shot automation ("pull these ten values from this spreadsheet and put them in this report"), spreadsheet access is entirely sufficient. The agent reads cells, formats output, done. No model layer needed.&lt;/p&gt;

&lt;p&gt;The model layer becomes necessary when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The agent needs to &lt;strong&gt;modify&lt;/strong&gt; the model, not just read it, and modifications need to respect the model's logic&lt;/li&gt;
&lt;li&gt;The agent operates across &lt;strong&gt;multiple sessions&lt;/strong&gt; and cannot reconstruct context each time&lt;/li&gt;
&lt;li&gt;The model's &lt;strong&gt;conventions&lt;/strong&gt; need to be respected, not just its formulas&lt;/li&gt;
&lt;li&gt;Multiple people or agents work on the same model and need &lt;strong&gt;consistent interpretation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The model's &lt;strong&gt;history&lt;/strong&gt; matters: what changed, when, and why&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For finance professionals building agent workflows around their core models (budget, deal model, unit economics), these conditions are almost always present.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;The gap is not whether AI can work with financial data. It can. The gap is whether the infrastructure behind the agent is designed for financial logic: structured variables, typed dependencies, persistent conventions, traceable history.&lt;/p&gt;

&lt;p&gt;Spreadsheet access is a starting point. For agents doing real financial work (iterative, multi-session, convention-bound), it is not enough. The model layer is what makes the agent's output defensible, its context persistent, and its conventions consistent with what your organization actually means by its numbers.&lt;/p&gt;

&lt;p&gt;If you want the numbers behind this, we keep a source-backed library on &lt;a href="https://layerz.cc/resources/ai-in-finance-statistics" rel="noopener noreferrer"&gt;AI in finance&lt;/a&gt; and &lt;a href="https://layerz.cc/resources/ai-financial-model-risk-statistics" rel="noopener noreferrer"&gt;AI financial model risk&lt;/a&gt;, every figure linked to its primary source.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Layerz is a financial modeling infrastructure that exposes structured model layers to AI agents via REST API and MCP. Finance professionals use it to build agent workflows where context persists across sessions, conventions are encoded and versioned, and every output is traceable. &lt;a href="https://layerz.cc" rel="noopener noreferrer"&gt;Explore Layerz&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>finance</category>
      <category>agents</category>
      <category>api</category>
    </item>
  </channel>
</rss>
