Skip to main content

Metric Anomaly Detector (Claude Skill)

This skill scans your portfolio company metrics for values that are probably wrong, shows the evidence for each one, and sends the corrections you confirm to the Visible AI Inbox.

Written by Nick Kramer

Bad data hides in plain sight: a cash balance entered in thousands, YTD revenue typed into a quarterly field, a burn number with the wrong sign. This skill checks every company's metrics against each other and against their own history, then gives you a numbered report with the specific numbers behind each flag. Nothing changes in Visible unless you confirm it.
​

Setup

  1. Download this Skill file: Anomalydetector.skill
    ​

  2. Upload it in Claude under Settings > Capabilities > Skills.

  3. Make sure the Visible for Investors connector is connected in Claude. The skill reads company profiles, metric definitions, and metric values directly from Visible, so there's nothing to export or paste in.

  4. On first run, Claude matches your workspace's metrics to the ones the checks use: ARR, MRR, Revenue, COGS, Gross Margin, EBITDA, Net Income, Cash Balance, Net Burn, Runway, Headcount, and Churn. Your names don't have to match exactly. "Cash & Cash Equivalents" or "Net Burn Rate" will be found on their own.

  5. If something is ambiguous, Claude asks once. For example, which of two similar cash metrics to use, or whether a positive burn number means cash going out. Your answers are remembered, so future runs skip straight to the checks.

Running it

Tell Claude something like:

  • "Run the anomaly detector"

  • "Check our metrics for errors"

  • "Are any of these numbers in thousands instead of actuals?"

  • Type the / command and find the skill

Scope. By default it scans your whole active portfolio. Name one or more companies ("Run the anomaly detector on Acme and Globex") to scan only those.

This doesn't run on a schedule by itself. It only checks when you trigger it. A good habit is running it after a reporting cycle closes, or before you pull numbers for an LP update or board meeting.

The ten checks

Every check runs on every company that tracks the metrics it needs. If a company doesn't track something, that check is skipped for that company.

Check

What it looks for

Default tier

1. Sign errors

Negative values in metrics that can't be negative (Cash, Revenue, ARR, Headcount, Runway). Burn, EBITDA, or Net Income flipping sign against the company's own history.

Critical, or Review for sign flips

2. Scale and unit errors

A value roughly 1,000x or 1,000,000x off its neighbors, the classic "entered in thousands" mistake. Values about 10x off are flagged for review.

Critical at 1,000x, Review at 10x

3. Impossible percentages

Gross Margin or Churn over 100%, or negative Churn.

Critical

4. ARR vs MRR

ARR more than 10% away from MRR x 12, or off by about 12x (the two swapped).

Review, Critical at 12x or 1,000x

5. Runway vs cash and burn

Reported Runway more than 25% away from Cash divided by monthly burn.

Review, Critical at 3x or more

6. Cash change vs burn

Cash moving by a different amount than burn says it should, or cash rising while the company is burning.

Review

7. YTD values in a period series

Values that climb all year and reset at the start of the fiscal year, meaning YTD totals were entered as period values.

Review

8. Quarterly figures in a monthly series

Quarter end months that are about 3x the months around them.

Review

9. Suspiciously round numbers

Cash, Revenue, COGS, or Burn that is an exact round figure in 2 or more of the last 6 periods. A weak signal, so never Critical.

Review

10. Duplicate metrics

The same data tracked in two metrics with near-identical names, like "Revenue" and "Total Revenue."

Review

Critical vs Review

Every flag gets exactly one tier.

  • Critical means almost certainly wrong. The value is impossible (negative cash, margin over 100%), or two metrics contradict each other by a wide margin with no reasonable explanation.

  • Review means worth a look. The value is unusual or matches a known data entry pattern, but it could be real.

When the evidence is borderline, Claude downgrades to Review rather than overstating it. For example, a value that jumps 10x and then holds at the new level for three or more periods is more likely a real change than a typo.
​

What it actually does

The instructions below are packaged into the skill file. You don't need them to use it, but here's what's happening under the hood.
​

Pulling only what it needs. Claude looks up your metric definitions fresh on every run, then pulls 15 months of values for just the metrics the checks use. Large portfolios are processed about 10 companies at a time.

Respecting fiscal years. Each company's fiscal year end is taken into account, so a June year end means the YTD and quarter end checks look for resets in July, not January. Periods in the report always use the label you see in Visible (for example "Q2 FY2026"), not a calendar date.
​

Never mixing currencies. Units are set per company, so the same metric can be USD for one company and CAD for another. Claude never compares or combines values with different units.
​

Reporting each error once. A single bad value often trips several checks. A cash balance entered in thousands can fail the scale, runway, and cash change checks at the same time. Claude reports it once, under the check that best explains it, and lists the other checks it affects.
​

Knowing where each value came from. Every flagged value is tagged by source:

  • Manual values (typed in, submitted through a request, or extracted by the AI Inbox) can be corrected through the AI Inbox.

  • Formula values can't be overwritten directly. Claude recommends checking the formula and its inputs, and points to any flags on those inputs.

  • Integration values come from a connected system. Claude recommends fixing them at the source, since a correction in Visible would be overwritten on the next sync.

Not judging performance. This skill checks whether numbers are consistent and plausible, not whether they're good. A real 40% ARR drop that lines up with every other metric isn't an anomaly here. For threshold alerts on performance, see MCP Metric Alerts.
​

The report

Results show up in your Claude chat, not anywhere else. Flags are grouped by tier, then by company, and numbered straight through so you can confirm corrections by number. Every flagged value links back to its source in Visible.

Metric Anomaly Report, [Date]
Scanned [N] companies, [N] metrics, [start period] to [end period].
[N] Critical, [N] Review.CRITICAL[Company]
1. [Metric], [period]: [value]
   Failed: [check]. [e.g. "MRR is 42,000, so expected ARR is about 504,000.
   Reported ARR is 504,000,000, about 1,000x higher."]
   Also affects: [other checks the same error trips]
   Source: [Manual / Formula metric / Provider integration]
   Likely cause: [e.g. entered in actuals instead of thousands]
   Proposed correction: [value, or "needs the company to confirm"]REVIEW[Company]
2. [same format]NOTES
[Workspace-level notes, e.g. metrics not tracked, naming cleanup]

A correction is only proposed when the evidence points to a specific value: a clean 1,000x ratio, YTD values that can be differenced, or a quarterly total that can be divided by 3. When two metrics disagree and it isn't clear which side is wrong, Claude says which values conflict and recommends confirming with the company instead of guessing.
​

If nothing is flagged, the report says so. A clean scan is a good result.
​

What lands in Visible

Nothing, until you say so twice.

  1. Confirm the corrections. Reply with "all," "all Critical," specific flag numbers, or an edited value ("use 1,250,000 for #3"). A general "looks good" about the report isn't treated as confirmation. Claude repeats the confirmed list back: company, metric, period, current value, corrected value.

  2. Approve sending. Claude then asks whether to send them to the AI Inbox. Say yes and it creates one inbox item per company, named "[Company] metric corrections, [Date]." Say no and you get the corrections as a table to fix by hand.

Each inbox item holds only the corrected values, written in full with the unit stated ("1,250,000 USD," not "1.25M"), so extraction can't introduce a new scale error. Old values are left out so there's only one number to pick up.

Corrections land in the AI Inbox for review like any other item. They aren't applied to your metrics until they're processed there. Formula and integration values are never sent, since those have to be fixed at the formula or the source system.
​

Worth knowing

  • Everything up to the report is read-only. Creating AI Inbox items is the only write action, and it only happens after both confirmations.

  • Claude never edits or overwrites metric values directly, even if a tool for it is available.

  • This covers portfolio company metrics only. It doesn't check investments, rounds, securities, or cap table data.

  • Claude won't invent a comparison. If a metric needed for a check is missing, that check is skipped and called out in Notes, not assumed.

  • Checks get sharper with more history. A company with only two periods of data in the 15-month window has fewer points to compare against, so some swings won't be evaluated.

Attachment icon
Did this answer your question?