docs/internal/company-monitoring/provider-policy.md
cm_eval_v1This review freezes the policy and price inputs used by the Company Monitoring Stage 0 decision. It is not legal advice or a durable provider guarantee. Provider terms, prices, declared use cases, and model endpoints must be refreshed before any paid runtime is enabled.
The Exa adapter remains dark while
COMPANY_MONITORING_ROLLOUT_FLAGS.exaProvider in
convex/config/productCatalog.ts is false.
Sources: Exa pricing, Search API, Contents API, and rate limits.
The X adapter remains dark while COMPANY_MONITORING_ROLLOUT_FLAGS.xProvider
in convex/config/productCatalog.ts is false. Activation must retain the
content-handling controls below.
Before activation, runtime enforcement must cover offline edit, deletion, protection, and withholding handling plus the model-training prohibition.
Sources: X pricing, usage and billing, search access, Developer Policy, Developer Agreement, and Batch Compliance.
Status: the dedicated runtime contract is implemented; empirical use remains blocked by the frozen Stage 0 decision.
The cost model uses OpenRouter's deepseek/deepseek-v4-flash price snapshot:
$0.09 per million input tokens and $0.18 per million output tokens, plus the
5.5% credit-purchase fee. Reasoning is disabled for this extraction/classification
shape.
Every Company Monitoring request must:
provider.zdr: true or an equivalent enforced organization guardrail;The provider result must separately mark the route approved and prove all four runtime controls: ZDR, no prompt training, disabled reasoning, and pinned model and provider routing. Declaring those requirements in policy without runtime enforcement remains blocked.
OpenRouter states that its own prompts are not retained unless prompt logging is
enabled, supports request-level zero-data-retention routing, and conservatively
marks endpoints with unknown policy as retaining and training. The dedicated
Company Monitoring client now sends provider.only with one configured route,
allow_fallbacks: false, require_parameters: true, data_collection: deny,
and zdr: true. It sends temperature: 0, disables reasoning, requests router
metadata, and fails closed unless the response proves the requested model,
direct single-attempt route, selected endpoint, expected resolved provider, no
transformation pipeline, and request cost. Live admission requires both
COMPANY_MONITORING_CLASSIFIER_PROVIDER_ROUTE and
COMPANY_MONITORING_CLASSIFIER_RESOLVED_PROVIDER; a key and model alone no
longer enable admission classification. Admission receipts include the
requested route and the attested resolved provider in their model-version
identity.
These request controls do not override the checked-in protocol. While Stage 0 is
STOP, the worker's checked-in classifier runtime gate remains false, and the
offline prediction command exits before it loads credentials or sends a paid
request. Provisioning the key, model, and route therefore cannot activate live
classification. Account-level activity-logging state also remains an external
attestation; no score can infer it from a successful model response.
Sources: OpenRouter zero data retention, provider logging, pricing, and DeepSeek V4 Flash pricing.
The model covers exactly one account-level shared-discovery workload of 500 companies for a 30-day month. It is a budget envelope, not measured capacity or a promise of provider yield.
| Component | Frozen assumption | Monthly cost |
|---|---|---|
| Exa Search | 12 searches/day, 25 results/search; $0.007 base plus 15 additional results at $0.001 each | $7.92 |
| Exa content | One content type for 25 pages across 12 searches/day at $0.001/page | $9.00 |
| X Post reads | 250 Posts/day at $0.005/Post | $37.50 |
| X User reads | 500 User reads/month at $0.010/User | $5.00 |
| Model | 250 candidates/day, 4,000 input and 1,000 output tokens each, plus 5.5% fee | $4.27275 |
| Allocated infrastructure | Convex, Railway, storage, and telemetry envelope | $25.00 |
| Subtotal | Before contingency | $88.69275 |
| Contingency | 25% | $22.1731875 |
| Total | 500 companies | $110.8659375 |
The frozen ceiling is $125 per account-month, or $0.25 per monitored company. The modeled total is $0.221731875 per company and therefore passes the arithmetic gate. This does not override the Stage 0 stop. Before paid beta, the fourteen-day tracer must replace every volume assumption with measured requests, returned resources, caps, tokens, storage, and retry cost. Any changed provider price or workload shape requires a new cost-package version and product-owner decision. In particular, changing the portfolio size from 500 or modeling more than one account cannot reuse this package.
Provider access, retention, compliance, and model-routing requirements are part of the frozen approved-threshold projection. Runtime status, evidence digests, and enforcement flags live in a separate mutable result record. That separation permits honest evidence to arrive without changing the approved threshold digest while preventing a status-only promotion.