Answers You Can Trust
Any AI can write a confident paragraph about your numbers. The hard part — the part that decides whether you can act on the answer — is knowing when to trust it. That is what PlaidCloud is built for.
When you ask a connected AI assistant to explain your data, PlaidCloud doesn’t just hand back a figure. It grades how much to trust that figure, tells you in plain language where the ground is soft, reconciles its own arithmetic, and refuses to make anything up. This is the difference between an assistant that sounds right and one you can put in front of a CFO.
Every Answer Carries a Confidence Signal
Section titled “Every Answer Carries a Confidence Signal”PlaidCloud rates its own answers — High, Medium, or Low confidence — and says why. A clean, fully-attributed result comes back as High. If the two periods you’re comparing aren’t equally complete, or part of a change can’t be pinned to a single cause, PlaidCloud says so and lowers its own confidence rather than presenting a shaky number as a certain one.
You never have to wonder whether the assistant is sure. It tells you, up front, in the answer.
The rating says what it covers. An answer opens with a one-line summary that can name a likely cause, point at the member behind most of the movement, and size the change against last year — and then close with a confidence rating. That rating covers one thing: how the change was broken down into the parts that contributed to it, and traced back through the steps that produced it. It is not a verdict on the causes named above it. The line now says so — “Confidence in the decomposition, not in why it moved: high” — and leaves off the second half where the summary named no cause, so it never disowns a claim it did not make. This matters most because that summary is the part most likely to be forwarded on its own, or read by an assistant with none of the page around it.
Anything qualifying the rating follows as its own sentence, headed “Caveats:”. The rating and its qualifications used to be joined by a dash, which reads as because — so a high rating followed by a dash and a limit parsed as a rating resting on the very limit standing beside it. They are now two sentences, which claims no relation between them at all. The qualifications themselves are unchanged, and they are still set out in full further down the answer.
The reason for a lowered rating is a stated limit, not a footnote on the grade. Where part of a change comes from several effects moving at once rather than from any one of them, that share is what holds the rating below High — and it is stated under Honest limits, with what it means and what it bears on, alongside every other limit the answer carries. The rating itself keeps a short label. An answer covering several columns states the range it measured across them on the rating line instead, because no single figure there would be about all of them.
Where the columns disagree, the reason is the one from the column that most needs it. An answer covering several value columns graded alike used to take whichever column came first and give that column’s reason, and its own residual share, as the answer’s — so an answer whose worst column had most of its movement in the part no single factor accounts for could be published as mostly clean with a small share quoted beside it. Where any column’s movement is dominated by effects that cannot be separated, that is now the reason stated, and no share measured over the other columns is quoted with it.
It does not say a change was offset by opposite moves and then rate that same breakdown a clean one. Where one member’s own change comes out larger than the whole net change, movement in both directions has partly canceled — and the line naming that member said so as soon as its change edged past the net, while the rating beside it only counted that offsetting as material a good deal further on. So an answer whose largest member came in a fraction over the net said the movement was offset and rated the same breakdown clean on the same page, and nothing said which to believe. That line now says moves offset each other only where the offsetting is large enough to lower the rating. Below that it gives the member’s share instead — “line=PERSONAL_AUTO = 101.6% of the delta — that is its own change, not its share of the pool shifting” — to one decimal place where it goes above 100%, so the small excess over 100% is not distorted by rounding. Answers where the offsetting is material read exactly as before, and the separate line naming which factor moved is untouched.
A summary states its confidence wherever the answer carries a limit. The rating was left off altogether where no step behind an answer raised a warning of its own — even where the answer as a whole carried a limit, such as a change that could not be sized against last year. That line is the one most often forwarded on its own, so its silence read as nothing to say rather than as the limit is set out further down. The summary now states the rating and names the limit: “Confidence in the decomposition: high. Caveats: this movement is not sized against the previous year’s change.” An answer with nothing to flag still closes without one.
A stated depth says how much of it carried a figure. The summary closes by saying how many steps back the answer traced — and that count is the only thing on the line that says how far it got, so a reader takes it as corroboration. A step the trace reached but got no number back from is not that. Where any traced step came back empty, the line now says how many of them returned a figure: “Traced 2 stages upstream; only 1 of the 2 came back with a figure — no figure at all for the remainder.” A step whose change was measured but could not be pinned on a single producing step still counts, because a measured change is evidence — that it could not be attributed is stated separately, under Honest limits. A summary whose steps all returned a figure reads exactly as before.
It Tells You When to Be Careful
Section titled “It Tells You When to Be Careful”Instead of burying assumptions, PlaidCloud surfaces them as plain-language heads-up notes attached to the answer:
| When an answer flags… | It means… |
|---|---|
| “This describes the whole pool” | The figure is a total; to see how it shifts between members (regions, products, cost centers), ask about a specific one. It appears only where the answer shows you no member breakdown — where one is shown, that note is not true of it and is not printed. Where the note names an earlier step in the chain — it opens “Stage 2 (…)” — narrowing your question won’t reach that step, so trace its own table instead. |
| “These periods aren’t equally complete” | One period may be a partial month or a short window, so part of the movement could be missing data rather than a real change. The row counts it quotes are for the whole result — on a table that recombines several allocation branches, they cover every branch together. |
| “The pieces don’t fully reconcile” | The detailed breakdown doesn’t perfectly sum to the headline number — treat the split as indicative, not exact. |
| “The precise cause is partial” | The totals are correct, but the exact driver of the change can’t be fully attributed from the data on hand. |
| “Some targets couldn’t be measured” | On a what-if, the calculation for one step failed, so the results it writes carry no figure at all rather than a guess. The totals cover what was measured, and anything downstream of that step is left out rather than estimated from it. |
| “Estimated on today’s shares” | A what-if estimate splits the change across the affected results by each one’s current share of the pool — so the figures add up — and reflects how your model is configured today, not a precise forecast of a future in which the shares may have moved. |
These aren’t fine print. They’re the safeguards that keep a confident-sounding answer from quietly overstating what the data actually supports.
A note that describes only part of the result says which part. A note can be raised by one part of a result rather than by all of it, and its figures then belong to that part alone — so it opens by naming it. On a result that combines several allocation branches that reads “Branch 4 (admin costs): …”; on one allocating several value columns at once it names the column, “Column margin: …”. Read an unprefixed note as being about the result you asked for, and a prefixed one as being about that part of it.
Where it applies to more than one part, it names them all — “Columns revenue, margin: …”. So a column missing from that list is a column the note does not apply to, which is the point of listing them: on a three-column result where two share a note, naming one of them would leave the other reading as exempt. A note raised by every part carries no prefix at all, since there is nothing to distinguish.
One case reads differently, and deliberately. Where the parts each raised the note with their own figures, the note shown is one part’s, and quoting several names in front of one part’s numbers would misattribute them — so it names that part and lists the others after it: “Column revenue (also raised by margin): …”. The figures in that sentence are revenue’s; margin raised the same kind of note with figures of its own.
It Says What It Compared, and Does Not Call It Time
Section titled “It Says What It Compared, and Does Not Call It Time”Asking why a figure moved means naming two things to compare it between. That is usually two periods — last month against this one, 2025 against 2026 — and the answer is written for that: it names the periods, sizes the change against the same window a year earlier, and warns you if one period looks less complete than the other.
But the two things need not be periods. Point the comparison at a scenario, a version, a case, or budget against actual, and you get a perfectly sound account of the difference between them — which of the two moved, what drove it, and which members carry it. This works, and it is worth using.
What went wrong was the wording around it. Comparing version 7 with version 8, the answer stepped back one and reported a “year-over-year” verdict sizing the change against version 6 — “275% the size of last year’s move; 6 → 7 moved -$400,000” — with every figure in it correct and the subject of the sentence wrong. It spoke of the two versions as periods, and of the one with fewer rows as possibly still loading.
An answer now works out whether the column it is comparing across is a period at all, from the column’s type, its name, and the shape of the values you gave it. Where it is not:
- The opening line says Values compared, naming the column and its two values, rather than Periods compared.
- No year-earlier verdict is offered. There is no prior year to step back to, and the answer says so under Honest limits rather than leaving the comparison unmeasured without explanation. No figure is withdrawn.
- A difference in row counts between the two sides is described as a difference in what each side covers, not as a period that may still be loading — between two scenarios the smaller side is often the intended one.
The test is deliberately cautious: a column counts as a period if its type says so, or its name does, or the values you gave look like dates, months, quarters or years. Any one is enough, so a whole-number fiscal_year and a text 2026-03 are both still read as periods, and comparisons across a date, period, month, quarter or year column are unchanged.
It Says Which Population It Measured
Section titled “It Says Which Population It Measured”Two answers over one table can look alike and mean quite different things: one covering every row, another covering a single line of business, entity or programme. Read one after the other, the narrowed figure is easily taken for a slice of the wider one — and it need not be, because the members left out can move the other way, sometimes far enough that the narrowed change is larger than the whole table’s.
Each answer says which it is, in its opening line. An unnarrowed answer states that its figures are the table’s own totals in each period, with every member included. A narrowed one states that its figures are that member’s own totals in each period, with the rest of the table set aside, and — where the figures are positive — that its percentage compares those two totals rather than measuring a share of anything larger. Where a narrowed answer’s figures are negative at both ends, that last note is left off: the answer already tells you the balance went further below zero, and calling the percentage an ordinary comparison there would blunt the point.
Neither line says anything about how the members left out moved. The answer did not measure them, so it does not characterise them.
The unnarrowed line is left off where the answer has already reported a gap in its own working. A question about a table that recombines several allocations is answered branch by branch, and where one of those branches could not be attributed the answer says so further down. Stating that every member is included, in the opening line above that, would be read as a claim that nothing at all had been left out. The same applies where the recombined table’s own change could not be read: there is then no whole-table figure for the line to describe.
It Says How the Whole Table Moved
Section titled “It Says How the Whole Table Moved”A figure for one line of business means little on its own. A line that grew 4.2% inside a book that shrank 6.2% is a different story from one that grew inside a book that grew — and the same number describes both. The narrowed answer used to give you that number and leave the comparison to you, while naming the whole table’s change as the very thing it had measured the narrowed change against.
So a narrowed answer now lists, beside its own figures, how the whole table moved over the same periods on each column it reports. The narrowed rows are part of that total, and the answer says so rather than leaving you to work it out. Where the two disagree in sign — the line negative at both ends of the period while the table is positive at both — that is stated in words, not left to a minus sign you might not notice.
Nothing new is measured to do this. The whole-table figures were already what the narrowed change was compared against; they were simply never shown.
Two figures beside one another still leave a subtraction, though, and it is the subtraction that carries the story. A line that rose by more than its whole table rose means everything outside that line came down — the line gained share in a pool going the other way, which is the opposite of how a rising figure reads on its own. So where the movement outside the narrowed rows runs against them, the answer now states it: the amount, its direction, and the column it belongs to. Where it runs the same way, which is the ordinary case, nothing is added — a remainder moving with the line tells you nothing you would act on. Both figures it is drawn from are printed above it, so you can check the arithmetic without asking for anything further.
An unnarrowed answer does not get this block: it already reports the whole table, so repeating it would be the same figure twice under two labels.
An answer over a table that recombines several allocations gets a version of its own. Its branches are separate tables, so there is no single whole table to name — and each branch line names the change in its pool as the thing that branch was measured against. A narrowed answer over such a table now lists each branch’s whole table over the same two periods, with the table named on every line and the narrowed rows included in it. Asking why German cost fell on one real model returned four branches down about 58% each, inside four tables that had themselves fallen by about the same proportion — so whatever moved, it was not something that happened to Germany alone, and the answer no longer leaves that to be worked out from figures it does not show.
Its Member List Says Whose Change It Breaks Down
Section titled “Its Member List Says Whose Change It Breaks Down”The member list is the part of an answer most likely to be copied out whole, and it was headed by the breakdown alone — “All movers by account” — with nothing saying which population those rows belong to. On a narrowed answer the whole table’s change on the same column is printed above that heading, so the last scope you pass on the way down names the wrong one, and the rows do not add up to the figure above them.
Nothing about that looks wrong. The rows are exact and they add to the narrowed change exactly, so a reader reconciling from the top gets a self-consistent wrong answer with nothing to prompt a second look — and each member’s share of the company-wide move comes out wrong by whatever the rest of the table did — overstated where the rest of the table moved the other way, understated where it moved further the same way.
A narrowed answer’s member list now names its population in the heading, between the breakdown and the column the rows are ranked on: “All movers by account within entity=EU_DIST”, “All movers by branch within lob=COMMERCIAL — net_contribution”. It reads within rather than for because the breakdown is often by account, and “by account for entity=EU_DIST” is read as the verb before it is read as the scope.
The scope goes ahead of the column and ahead of “(largest shown)” deliberately. After the column it is read as part of the column’s name; after “(largest shown)” it trails a statement about completeness that it has nothing to do with.
An answer covering the whole table is unchanged: its rows are the table’s already, and a scope there would name the only population there is.
It Says What Its Ranking Subtracts
Section titled “It Says What Its Ranking Subtracts”Where a table reports several columns at once — income alongside the charges deducted from it, or revenue alongside cost — the member list beside the answer is ranked on one of them. That list and the rest of the answer can then appear to disagree. A branch named as most of the change in a charge column can sit last in the ranking, because a member whose charges fell alongside its income nets out to almost nothing. Both statements are true, and read together with nothing between them the natural conclusion is that one of them must be wrong.
So the member list now says, above its rows, which columns the ranking subtracts — and therefore that a member large in those columns can rank small in the list. A member large in a charge and small on the net then reads as arithmetic rather than as a mistake.
The line states what can happen, not what did. Saying that a particular member’s movements cancelled needs a measure the answer does not always have, and a sentence that named one member would point at the wrong one on tables where the member worth reading about is a different one. Naming the relationship lets you apply it to whichever member you are looking at.
Two answers do not get this line. One whose columns do not add up to one another gets nothing, because there is nothing in those figures that identifies a charge and the answer does not guess. Neither does one where no member is reported as concentrated in any column, since there is then no second statement for the ranking to appear to contradict.
It Checks Its Own Math
Section titled “It Checks Its Own Math”When PlaidCloud explains why a number moved, it doesn’t stop at the first plausible story. It reconciles the parts back against the whole and, if they don’t line up, it says so and dials back its confidence — so a subtle gap in the data shows up as a caveat, never as false precision.
It Never Invents a Number
Section titled “It Never Invents a Number”Every figure comes from a real query against your data. If a question needs data you don’t have access to, or the data simply isn’t there, PlaidCloud tells you plainly instead of guessing. PlaidCloud invents nothing: no hallucinated totals, no invented account names, no made-up trends.
The Written Summary Is Checked, Not Just Written
Section titled “The Written Summary Is Checked, Not Just Written”When an assistant turns an analysis into a readable paragraph, there’s a quiet risk: the prose drops a caveat, or rounds a figure into something the data never said. PlaidCloud closes that gap. Alongside the structured result it can return a plain-language summary built directly from the analysis — one that states the confidence level, carries every caveat, and contains no figure that didn’t come from a real query against your data.
It comes with a companion faithfulness check your assistant can run on its own reworded version: did it keep the confidence level, keep every caveat, and avoid inventing a figure? If the rewrite drifts, the check catches it. The result is a narrative that’s provably faithful to the numbers underneath — not merely fluent.
It Suggests the Next Question
Section titled “It Suggests the Next Question”A good analyst doesn’t just answer — they tell you what to ask next. Each summary suggests the natural follow-up, drawn from what the analysis actually found: scope to a single member when the figure is a whole-pool total, break the change down by a dimension when one looks like it’s driving it, or point at a specific step when a result table is built by more than one. You can act on the suggestion without knowing the exact wording — just ask for it.
Those all answer which — which member, which field, which step. A further one answers when. Where an answer names a leading factor and puts a percentage on it, that percentage is measured once, across the whole of the period you compared — so a move that happened in one jump and one that built steadily give the same figure. The assistant offers to re-run over several narrower periods and compare those against each other, which is what separates the two; one narrower period on its own is the same two-point comparison again. It says in the same breath that the narrower figures will not sum to the one above, because each period is measured on its own — the pool, the driver and the split are all re-derived for it, so those shares are their own answer rather than a division of the wider one. It names no particular period, because which part of the range matters is yours to choose and guessing at it would be a finding the analysis has not made. Where you compared two things that are not periods — two scenarios, two versions, budget against actual — the suggestion does not appear at all, because there is no narrower range to run and the assistant does not describe that comparison as time.
It is withheld in two further cases, both because the suggestion would otherwise point away from the answer you asked for. Where the answer has already reported that one of the two periods holds far fewer rows than the other, and asked for the load to be checked before the change is relied on, splitting that period into narrower ones scatters the shortfall rather than resolving it — and the row count that raised the doubt gets weaker in every narrower window. And where an answer covers several value columns and the column it leads with carries no percentage of its own, every percentage the suggestion would qualify belongs to a column you did not ask about, so it reads as a limit on the answer while touching none of it. An answer whose own leading column states a percentage still gets the suggestion.
A suggestion is also left out where running it would return what you are already looking at. On an answer covering a single column, the field the assistant picked as the best explanation is the field the member table is already grouped by, so “break the change down by that field” came back with the same table — and the note beside it said the figures would not match the ones on the page, when they match exactly. Where the breakdown would genuinely answer on a different column, the suggestion stays.
Where the analysis found several candidates it won’t guess between — two steps that both build a table, or several fields too close to separate as the explanation for a change — it offers each of them as a separate suggestion rather than asking you to pick without saying what there is to pick from. Suggestions you can act on exactly as written come first.
A search that found nothing is still worth telling you about. Where you don’t name a field to break the change down by, the assistant looks for the one that best explains it — and where nothing it tried explained the change well enough to report, it says so rather than going quiet: the change reads as a broad move across the whole pool, and here is the field that came closest, naming its largest member and the share of the change that member accounts for. The member is named because this is the one finding the answer is unsure of, so it is the one you most need to be able to check — and it is what makes the accompanying warning, that a follow-up may lead with a different member, something you can test. That field is offered as a suggestion you can run as written, described as the strongest of a weak field rather than as a close call, because the search judged it non-explanatory. Confidence in the figures is not reduced for it — nothing was chosen, so there is no guess to discount.
These last two are different outcomes, and the wording keeps them apart: several fields scoring equally well gets you one suggestion each, while none scoring well enough gets you a single closest-thing offered as exactly that.
On a result with several value columns, the note names the column it searched. Those results — cost, revenue and margin side by side, say — are searched one column at a time, while the answer itself leads with the summary column. A “nothing found” result therefore says which column’s change it covers, rather than reading as a verdict on the whole result. Read it for what it names: another column of the same result may well have a field that explains it, and asking for that breakdown directly will tell you.
Two percentages that look alike are told apart. When the assistant picks the field that best explains a change, the figure it reports is that field’s shift in share of the pool. When you break the change down by a field yourself, the figure is each member’s own change. These are different measurements over different totals, and both are correct — so each says which one it is rather than both reading as a plain percentage of the change. What neither of them does is promise that the two numbers will differ. No member breakdown prints a per-member percentage at all — its rows are amounts — so a warning phrased as a mismatch sent you looking for a comparison you could not make, and a warning you cannot check is one you learn to ignore. Each says what the two measures are and stops there.
That holds for the closest-candidate note above as well, where the search settled on nothing: the share it quotes for the field that came closest is a shift in share too, and a breakdown by that field reports the other measure. Being below the bar is a statement about the search, not a ceiling on what the breakdown will show.
Why This Is Different
Section titled “Why This Is Different”Most AI analytics tools are confident whether or not they’re right. A generic chatbot bolted onto a dashboard will produce a fluent, authoritative-sounding answer — and give you no way to tell a solid one from a wrong one. To that kind of tool, every number is just a number.
PlaidCloud is built the other way around. Confidence grading, self-reconciliation, and honest caveats are part of every answer, because an answer you can’t trust isn’t worth having. That honesty is the whole point: it’s what lets you take an AI-generated explanation and actually use it — in a board deck, a forecast, a decision — without re-checking it by hand.
Works With the AI You Already Use
Section titled “Works With the AI You Already Use”You don’t adopt a new tool to get this. PlaidCloud’s honest analysis comes through whichever assistant your team already lives in:
Related
Section titled “Related”- Tracing Allocations — see honest confidence and caveats at work on a real allocation question
- Analysis Paths — name your key tables so you can just ask “why did this change?”
- Microsoft 365 Copilot — bring honest AI analysis to your whole team