Product · Order-to-cash
Value Lens Private beta
The Margin Leak Finder for Order-to-Cash.
Value Lens reads SAP-like sales, pricing, cost and agreement facts through read-only tools, computes margin in exact integer cents under a versioned policy, and raises evidence-backed cases your finance team can accept or dismiss with a reason. Agents explain. Humans decide. SAP stays the system of record.
Private beta on synthetic SAP-like data. Production SAP connector in development. Detection rules are ours, not customer-approved accounting logic.
A 45-minute call with an architect, not a salesperson. Replies within one business day. How we run engagements
| Case | Severity | Rule | Leakage | Coverage | Status |
|---|---|---|---|---|---|
| VL-0231 | HIGH | net_loss | 12,406.18 | 0.94 | Open |
|
Sources
Calculation · Policy v1.3
Timeline
|
|||||
| VL-0228 | HIGH | excessive_ |
7,930.00 | 0.88 | Open |
| VL-0225 | MEDIUM | cost_above_ |
2,114.55 | 0.91 | Reviewed(checked) |
| VL-0219 | MEDIUM | excessive_ |
1,480.00 | 0.97 | Dismissed · reason: approved promotion |
Numbers from deterministic code. The model explains; it never calculates.
The question
Where Did We Lose Money This Week That We Should Not Have Lost?
Standard SAP reporting tells you margin by product, customer and period. It does not tell you which orders shipped below cost, which discounts exceeded the agreement, or which cost updates landed after pricing, until the quarter closes and someone reconciles by hand. Value Lens asks the question every week, answers it with source records, and leaves the decision to a person.
Orders priced below the cost that applied at the time.
Discounts beyond the agreement or policy threshold.
Cost changes after pricing that nobody re-priced for.
Rule set in the beta. Thresholds are policy-versioned; severity is MEDIUM or HIGH.
How it works
Six Steps, One Audit Trail.
-
01
Read, read-only.
Facts come in through read-only MCP business tools:
sales_order.search,sales_order.get,pricing.get,cost.get,agreements.get. No tool in the product can write. -
02
Calculate deterministically.
A margin engine in exact integer-cent arithmetic under a versioned policy (
POLICY v1.3in the beta). The same inputs always produce the same number. The LLM never touches it. -
03
Detect by rule.
Net-loss, excessive-discount and cost-drift rules with MEDIUM and HIGH thresholds raise candidate cases.
-
04
Build the evidence.
Every case carries its source references, a calculation snapshot and a coverage score that says how much of the picture the tools could see.
-
05
Investigate within bounds.
A host-mediated agent may run a bounded number of authorised reads to propose a hypothesis. It has no financial authority and its hypotheses are labelled as hypotheses.
-
06
Review by a person.
The findings queue is sorted by severity and leakage. A reviewer marks a case reviewed or dismisses it with a reason. Every action lands on the case timeline.
Inside the beta
One Case, End to End.
This is the first golden case the beta reproduces exactly, on synthetic SAP-like data under the demo policy. Every number below is produced by deterministic code and can be recomputed from the stored inputs.
Synthetic order line · Demo policy
| Fact | Value |
|---|---|
| Quantity | 10 EA |
| List unit price | $100 |
| Allowed discount (demo policy) | 10% |
| Recorded discount | 20%, no override, no eligible agreement |
| Charged unit price | $80 |
| Net goods total | $800 |
| Reference unit cost | $60 |
Result
-
$300
expected margin
-
$200
actual margin
-
$100
discount variance, the leakage
-
MEDIUM
severity
Rules fired: net leakage (R-01) and excessive discount (R-02). Evidence: 4 of 4 checklist items resolved, coverage 100%. Annualised exposure, illustrative 52-week extrapolation: $5,200. The reviewer can mark the case reviewed or dismiss it with a reason; neither action changes a single cent.
Demo policy, not customer-approved accounting logic. Synthetic data. USD and EA only in the beta.
Architecture
Four Parts, One Direction of Trust.
Each part can only do what the part before it allows. The browser renders; the backend calculates; the tools read; the adapter is the only code that touches a source.
Browser
Displays backend results. Holds no policy, no fixtures, no calculation and no model credentials.
Backend
Normalises the retrieved facts, runs the calculation and detection engines, creates cases and persists them with their audit events. All financial fields are owned by code.
MCP tool server
Exposes a small catalogue of read-only business tools over a real MCP transport. Every request and response is schema-validated; unknown keys, oversized pages and out-of-scope dates are rejected.
Source adapter
The only code that reads a source. Synthetic SAP-like records in the beta; a production SAP connector replaces it without moving SAP concepts into the calculation or the screen.
Tools
Five Tools. All of Them Read.
-
sales_order.search
bounded business filters, 5 rows by default, 25 at most
-
sales_order.get
-
pricing.get
price stages and conditions for one line
-
cost.get
reference and current unit cost
-
agreements.get
eligible agreements, or an explicit 'none' the case can rely on
There is no generic query tool, no raw table access and no write tool. Scope, tenant and actor are set by the backend, never by a user or a model.
Detection
Nine Rules. Deterministic Severity.
Detection turns a valid calculation into a finding. The beta ships the first two rules end to end and the remaining seven across eleven synthetic scenarios.
Rules
- R-01 net leakage on the line
- R-02 excessive discount
- R-03 to R-09: further price, cost, charge and agreement causes, plus two repeated-pattern rules across lines (customer and material)
Severity (demo policy)
- Below $50: no finding
- $50 to $99.99: LOW
- $100 to $199.99: MEDIUM
- $200 and above: HIGH
Boundaries are exact to the cent and configured, never model-selected.
Queue order is fixed: severity, then leakage, then transaction date, then case ID. Re-running the same source, policy and rule versions produces the same cases and no duplicate exposure.
Evidence
Coverage Is Counted, Never Estimated.
Each case carries an evidence checklist. Coverage is the share of applicable checks whose source records resolved: 4 of 4 is 100%, 3 of 4 is 75%, and a case with nothing applicable shows NOT ASSESSED rather than a number. A missing cost never earns a score, and no narrative can make a gap disappear.
- 4 of 4 resolved100%
- 3 of 4 resolved75%
- nothing applicableNot assessed
Design principles
Trust Cannot Be Retrofitted.
| Principle | In the product |
|---|---|
| Numbers from code, never from the model | Deterministic engine, integer cents, versioned policy |
| Agents explain, humans decide | Bounded investigation, labelled hypotheses, reviewer actions only |
| Every case traceable | Source references and calculation snapshot on every case |
| Read-only by design | No write tool exists in the catalog |
| Complete audit trail | Case timeline with tools called, policy version, decisions, timestamps |
| SAP-agnostic domain contracts | Replaceable adapter; the production SAP connector is in development |
Agent
The Agent Explains. It Cannot Decide.
After a case exists, a model may investigate it. What it may read, say and never touch is fixed in code.
What it may read
Up to three additional authorised reads per case, inside the case's customer, material and week, through the same tool catalogue, with provenance on every read.
What it may say
A hypothesis, approved observation and action categories, and references that must resolve to real evidence. Numbers in its text are bound by code to the stored calculation.
What it can never touch
Money, severity, approval, review status or any source record. Invented records and contradictions are rejected. If the model is unavailable, the case stays complete and useful.
Retrieved documents are treated as untrusted text. Model credentials stay on the server and never appear in prompts, errors or audit records.
Audit
Every Case Can Be Rebuilt from Its Trail.
Each run records an attempt and an outcome for every tool call, the normalised inputs, the calculation snapshot with its policy and rule versions, each rule evaluation, the coverage assessment, each model request and result, and each reviewer action. Run, case, tool and investigation IDs are correlated. The case timeline shows what was read, calculated, detected, explained and reviewed, and a reconstruction check recomputes the stored cents from the stored inputs.
Review actions
Mark reviewed, or dismiss with a reason. The action and its audit event commit together; if either fails, nothing changes.
What a review cannot do
Alter a source, a calculation, a rule result or an exposure. Reviews survive restarts and reruns of the same version.
Also from SVLS LABS
Building the integrations around it?
Scope
In the private beta (phase A)
- Synthetic SAP-like order-to-cash data set
- Read-only tool catalog (search, get, pricing, cost, agreements)
- Deterministic margin engine, policy v1.x
- Net-loss, excessive-discount and cost-drift rules with MEDIUM/HIGH thresholds
- Evidence-backed cases with coverage scores
- Bounded agent investigation with labelled hypotheses
- Findings queue, review actions, case timeline
We update this list when the product changes, and we would rather show you a shorter list that is true.
Phase A · 15 milestones · 47 tasks
- M0Bootstrap
- M1Domain contracts
- M2Synthetic SAP-like records
- M3Source adapter
- M4Read-only MCP tools
- M5Deterministic calculation engine
- M6Detection and rules
- M7Case generation
- M8First working screen
- M9Evidence and calculation detail
- M10Agent investigation
- M11Audit trail completion
- M12Remaining scenarios
- M13Testing and hardening
- M14Demo readiness
The first usable screen arrives at M8, the investigator at M10, and the complete eleven-scenario demonstration at M12. After Phase A: the production SAP connector, customer accounting policy, production identity and hosting, and write-side controls.
Private beta on synthetic SAP-like data. Production SAP connector in development.
Guardrails
What We Refuse to Build into the Beta.
- No real SAP integration or customer data in Phase A
- No SAP writes, postings or execution of recommendations
- No financial arithmetic, thresholds, severity or coverage inside the model
- No generic query tools or raw table access
- No hidden calculations: inputs, signed results and versions stay inspectable
- No invented evidence, approvals or numeric claims
- No multi-agent choreography or plugin platform
- No production authentication or hosting decision yet
Stack
- TypeScript monorepo
- Next.js and React
- Node.js API
- MCP server on the TypeScript MCP SDK
- Runtime-validated contracts
- Integer-cent money
- SQLite in the beta
- Vitest and Playwright
- Provider-neutral model gateway (local or hosted model)
Private beta
Request Beta Access.
The beta is a guided walkthrough on synthetic order-to-cash data, followed by an early-access seat. You will receive the Value Lens beta brief first: what the beta covers, what data it needs, and what it will not do yet.
Private beta on synthetic SAP-like data. Production SAP connector in development.
A 45-minute call with an architect, not a salesperson. Replies within one business day. How we run engagements
Questions
Is this connected to my SAP system?
Not yet. The beta runs on synthetic SAP-like data; the production SAP connector is in development.
Can it change anything in SAP?
No. There is no write tool in the product, and none is planned.
Where do the numbers come from?
Deterministic code, integer cents, versioned policy. Never from the model.
Are the detection rules our accounting policy?
No. They are our rules with configurable thresholds. Customer-specific policy configuration is on the roadmap.
Who reviews a case?
Your finance reviewer. Value Lens raises and explains; it does not decide.
What does the beta cost?
Beta participation terms are agreed per organisation. Participation is priced per organisation; no prices are published on this site.
Why integer cents?
Because $0.01 matters in a margin bridge. Money crosses every boundary as an integer string in minor units, and every expression uses exact integer operations. No floating point, no rounding surprises.
What happens when data is missing?
The case is blocked and says so. A missing cost, a total that does not reconcile or a failed read never becomes a zero-loss result or an empty success.
Can we bring our own accounting policy?
That is the point of the versioned policy. The beta ships a demo policy; a customer policy is configured, versioned and recorded on every calculation it touches.
Which SAP editions will the connector support?
The adapter boundary is edition-neutral. The production connector is in development; we will confirm editions with beta participants.
Next step
Agents Explain. Humans Decide. SAP Stays the System of Record.
Private beta on synthetic SAP-like data. Production SAP connector in development.
A 45-minute call with an architect, not a salesperson. Replies within one business day.