Sweetfish Intelligence
Intelligence v—
Intelligence
Clients
Data Quality
System
checking...
SYSTEM

Cockpit

Four numbers, plain language, drill-down on click. The one-page health check before any customer demo. Translations, Mappings and Rule Precision are scoped to the active client (EMPET — All Rows). Concepts stay global.

Loading…
INTELLIGENCE

Prospects

Evaluate revenue opportunity for prospective clients

New prospect evaluation

⇥

Drop any invoice file here

or browse for a file

.csv .tsv .xlsx — any PMS, any language

Run simulation for
—
Simulating…

Every number comes from SQL against this prospect's invoices. Click Show the math to see the exact query.

Past evaluations

Loading...

PROSPECT ONBOARDING

Onboard a new practice

Six steps. We'll walk you through each one.

Loading…

Revenue modelling

Scenario Modeller

1. 2.
Analysis window

 

Model realistic deployment

Choose which rules to deploy in each phase, set per-rule target compliance, and see revenue build up phase by phase. Save multiple scenarios and compare them side by side for board presentations.

Quick start: Select a prospect run, click "+ New scenario" to create from defaults, then adjust per-rule parameters. Revenue updates live as you edit.

Showing:
Off = showing every invoice, including bundled packages. On = bundled invoices removed (smaller, conservative number).
Review session: — 0 / 0
Filter:
Click Open ⬢ on any rule to expand the in-place canvas — products, rule shape, review notes, re-run. Ctrl+Enter in canvas marks reviewed and advances.
🧪

Lab — experimental rules

NOT in scenario

These rules are still in the lab. They came from Stage 4 discovery, blind mining, or the LLM proposer — but no clinician has signed off yet. They cannot appear in a customer scenario or carry a revenue figure until Senior Vet has reviewed them and they pass the audit gate (Phase 3 — ≥1 passing/warning audit in the last 7 days). Run an audit, then promote.

Click Refresh above to load experimental rules, or pick a source from the dropdown at the top.

Portfolio

Clients

Client portfolio

Each row is a veterinary group using Sweetfish. Click Dashboard to see performance data, upload monthly reports, and get Gemini analysis.

Class (ADR-035) tells you what the entity is: CUSTOMER (signed pilot or contract — popups flowing), PROSPECT (evaluating; uplift modelled, popups not yet), CORPUS (anonymised reference market for cross-market mining).

Reporting is a separate operational signal — green REPORTING means a monthly performance report has been uploaded; — means awaiting the first upload.

Provision a new client

HOME

Sweetfish at a glance

Is the system OK? What changed this week? Where should I look?

Loading health snapshot…

Loading activity feed…

Library and runs

Loading…

Smart concept review queue

Concept Triage

What is this?

Every clinic has tens of thousands of products. Most don't matter for billing accuracy — but a few hundred do, and getting their concept assignment right unlocks every rule downstream. This page ranks the top canonicals to review, so you spend the vet's time on the highest-value ones first.

How the rank is computed: 50% by money-weight (how often it's billed × typical price), 30% by audit flag (the rule auditor sees a problem with this concept), 20% by low embedding-confidence (it doesn't sit close to anything else, so the auto-mapper guessed). Vet-confirmed canonicals are excluded — no point re-reviewing them.

Bulk-edit is dry-run only in Phase 0. The pattern panel below shows what would change without writing anything. Phase 1 adds a commit option with cascade-revoke wiring.

Senior Vet review queue

Clinical Judge

What is this?

Gemini Pro reads stratified samples of real invoices and asks "what is clinically missing from this basket?" It surfaces patterns below the statistical threshold of pattern mining but above what a senior vet notices by inspection. Each finding below is an aggregated cluster — review and decide whether to promote it to a proposed clinical assertion (which can later become a rule), reject it, defer it, or flag it for the next Nic session.

Promote does NOT create a rule — it creates a proposed clinical assertion. Authoring a rule from a confirmed assertion is a separate step with its own dual-gate review.

Daily review queue

Predicted Misses

What is this?

Every night the Stage 4a model scores yesterday's invoices and flags baskets where a rule's required item is probably missing. Each card below is one prediction. Decide whether the model got it right (accept), got it wrong (reject), or you'd like to come back to it later (defer). Every click writes a label that the next weekly retrain consumes — this is the closed-loop channel.

Plain English: p_accept = how confident the model is that this is a genuine miss (0 = definitely fine, 1 = definitely a miss). Predicted value = the typical line value of the missing item on this client. Rule = which rule fired. Missing concept = what the model thinks should have been on the invoice.

Keyboard: J / K to move between cards. A / R / D to accept / reject / defer the focused card. ? for help.

Keyboard shortcuts
  • J / K — next / previous card
  • A — accept (was a real miss)
  • R — reject (not a miss)
  • D — defer
  • ? — toggle this help
  • Esc — close help
Cross-market generalisation

Cross-Market Suggestions

What is this?

Every night the Cross-Market engine reads acceptance data from other live markets (default: IVC ES + IVC PT) and flags rules where the target client's compliance is materially below what other markets have already achieved. Each card is one suggestion: "raise this rule's target — here's the gap-share estimated uplift if you do."

Plain English: Source acceptance = how often the popup is accepted in the source markets. Target current = the target client's current compliance for this rule. Proposed target = what we suggest raising it to. Estimated uplift = the §13 gap-share value (full_potential × (target − current) / (1 − current)) — never full × target. Norwegian-trap score = Build 7 trap-risk filter (we only show suggestions with score < 0.5).

Click ✓ Accept to write the proposed target through to the active scenario. Click ✗ Reject to dismiss. Click Compose Notion ask to copy a Q-S14-NN-style block to the clipboard for posting.

Suggestion caps (advanced) — limit what the engine may propose, per rule

What is a suggestion cap?

A suggestion cap limits the target the cross-market engine is allowed to propose for a rule. When a source market shows 100% acceptance (which happens when a rule fires sparingly), proposing 100% is unrealistic and inflates the estimated uplift. The cap is your judgement on the highest realistic compliance any client could hit for this rule.

This is not the customer target. The compliance target the customer is held to lives in the Scenario Modeller. This cap only bounds the suggestions shown above. Blank = no cap.

Side effect: changing a cap marks any pending suggestions for that rule as superseded — re-run derivation above to refresh.

Cross-market scoping

Rule Scope

What is this?

Each rule can be scoped to a specific list of clients (markets). A rule with no scope is universal — it fires on every client. A rule with an explicit scope fires only on the listed clients; the engine, the simulator, the cross-market suggester, and the auditor all skip clients NOT in the list.

When to scope: when the rule's base concept is empty on a client (e.g. ivft on IVC Spain, dispensing_fee on EMPET-Headers) and the right fix is "this rule doesn't apply here" rather than "populate the concept".

What this is NOT for: intentional clinical decisions ("Mediterranean parasites don't apply on Nordic clients"). Those need Senior Vet sign-off and a different audit trail; raise them via Notion.

Audit trail: every change emits an audit.rule_events row with action rule.client_scope_changed + before/after JSONB + the reason you supply.

CONCEPTS & KNOWLEDGE

Blind Labelling

Label each product cold — from its name and price alone. Pick the one concept you would assign, or say you are unsure. You will not see the system's answer; that is the point. Every choice saves as you go, so you can stop and come back any time.

Loading…
CONCEPTS & KNOWLEDGE

Coverage

Have we found all the products that should be under each concept? The page surfaces canonicals near a concept's centroid in embedding space that aren't yet mapped to it — review and accept to extend the concept.

Loading…

Concepts to review

Grouped by L1 category. Click a category header to expand · click any concept to review its candidates on the right.
← Pick a concept on the left to see its description, mapped products, and pending candidates.
Veterinary intelligence

Clinical Knowledge

The brain behind the rules

Clinical assertions from your veterinary experts and guidelines. Every assertion feeds into Sweetfish's AI — improving rule generation, blind discovery triage, prospect analysis, and concept mapping.

How to use: Add a knowledge source (e.g. Nick), then paste a conversation transcript or upload a guideline. Gemini extracts structured assertions. Review and confirm each one — confirmed assertions immediately improve every AI call.

Add knowledge

Review queue

Confirmed assertions

Concept proposals are reviewed in the Global Concepts tab where you can see similar existing concepts side-by-side.

Sweetfish Intelligence library

Rule Library

What is a rule?

A rule describes a billing pattern that should hold — e.g. every surgery should also have an anaesthesia line. When the pattern is violated on an invoice, the vet sees a pop-up at billing time.

Rule types explained:

Same invoice Between visits Recurring schedule Clinical pathway Portfolio gap Peer outlier

Provenance badges: 🧠 Sweetfish Intelligence core Sweetfish-authored rules; ⬆ Promoted · <client> discovered by another customer and shared. Lifecycle (active / candidate / deprecated / etc.) shows in its own column.

Rule trust — per client

How much can we trust each rule for the selected client? A rule that is healthy in one market is not automatically healthy in another, so this lens is never pooled — pick a client and see that client's signal.

Health (live, from the nightly auditor): compliance %, a risk bucket, and the latest audit verdict. Precision band is the share of fires that were genuine misses. Precision is the Gemini self-audit number and is on the sunset path — it will be replaced by real popup feedback. Treat it as a hint, not ground truth.

Unknown-unknowns

Blind Discovery

What is this?

Statistical mining finds billing patterns nobody wrote as rules. For every concept pair, we compute co-occurrence confidence, lift, and support across all invoices. Gemini then triages each candidate with real invoice samples to classify it as leakage, bundle, clinical variation, or unclear.

Click any row to drill into the evidence: trigger/base products, sample invoices (compliant and violating), and Gemini's reasoning.

Intelligence layer

Global Concepts

The master clinical categories your rules use — affects all clients. L1 categories, L2 concepts: add, rename and edit here freely. (Merge & Retire are temporarily disabled — they arrive with the Phase 1 safety work: warnings + automatic recalculation.) Matching one client's products to these categories lives on the Product Mapping tab.

Add a new concept

Add a new category (L1)

Intelligence layer

Product Mapping

Match one client's products to the master categories (the categories live on the Global Concepts tab).

Pick a concept on the left to see the products mapped to it for the selected client. Right-click a product (or the ⋯) to edit its tags.
Loading…
Select a concept on the left.
Products flagged for review for the selected client — low confidence, audit-flagged, LLM disagrees, or billed-but-unmapped. Ranked by money weight. Edits are auditable (§20). This is the concept work queue.
Trust rebuild · Phase 1 part 2

Concept Review

Row-by-row review of borderline concept assignments and unmapped billed products.

What this surface is for

The system has flagged thousands of concept mappings as below 80% confidence, plus 6,765 unmapped products. To make this tractable we filter down to the genuinely impactful rows: mappings whose concept appears in an active or candidate rule, where the product has been billed at least once, plus all unmapped products that show up on real invoices.

Each row is one explicit decision. No bulk apply, no embedding propagation. Choices are: Keep (concept is right, just confirm) · Move (concept is wrong, pick a better one) · Unmap (this product shouldn't be in any concept). Every action lands in audit.rule_events and is reversible.

Loading...

Upload monthly report (advanced)
⇥

Drop IVC files here

Revenue + Dismissals (xlsx or csv)

or browse for files

Popup feedback

Rule Feedback

Live popup acceptance per rule — shown / accepted / dismissed and revenue retrieved, from real vet feedback (weekly_rule_stats).

Advanced: Manual retrain trigger

Runs the closed-loop learning cycle: aggregates popup events, auto-pauses low-performing rules, flags anomalies. In production this runs automatically.

Self-diagnosis

Anomalies

What are rule anomalies?

If a rule's acceptance rate suddenly jumps or dips (by 10 percentage points or more week-over-week), something changed — a locum joined, a new accounting code appeared, a PMS update mangled a product category. Anomalies surface those jumps so you can investigate.

How to use: click Diagnose on a row; Gemini reads the before/after stats for that rule and returns a plain-English explanation. You don't need clinical knowledge — the diagnosis is written for an admin audience.

Rules whose week-over-week compliance moved by ≥10 pp. Click "Diagnose" to ask Gemini why.

Administration

System Debug checking…

Suggested-base matview

Powers the Vet's-Eye View popup. Rebuilt nightly (02:00 UTC); refresh a tenant on demand here.

§10 KPI spot-check — do all surfaces agree on the headline?

Click Run check when you suspect a number on the UI is recomputed instead of read from the snapshot. Mismatches also land on the error log as warnings.

Source Data Inventory — ingest lossless check

Compares source-file row counts to what landed in each prospect schema. Drops > 5% with no documented reason render red — that's a §11 violation (the bug that hid 88% of EMPET's catalogue for weeks).

Client Data Inventory

Registered Users

⚑ Findings — the brain (cross-cutting insights tagged with patterns)

Patterns (durable) live in docs/findings/PATTERNS.md. Findings (dated, specific) are queryable here. Each finding tagged with one or more patterns. Click a row to open full body + evidence.

Error & Warning Log

Pattern intelligence

Discovery Lab

Discovery Lab

Statistical mining combined with Gemini triage surfaces candidate billing patterns. Each card below is a pattern found in client data. Promote a pattern to make it a live rule, Investigate to drill deeper, or Reject to dismiss it.

Needs review
--
Promoted
--
Rejected
--
Data Quality

Product Audit

Total products
--
Mapped to concept
--
auto by AI
Validated
--
human-confirmed
Unmapped
--

Mapped vs Validated: "Mapped" means the AI assigned a concept; "Validated" means a human confirmed it. Low Validated % is normal — only borderline mappings get queued for human review (see Concept Review).

Loading...
SYSTEM

Documentation

User Manual (how to use Sweetfish) and Technical Documentation (what does what, where data lives, what depends on what). Updated every session per the end-session skill.

Loading…