Sign inStart free

Every testimonial, accounted for.

Proof Impact ties published-widget impressions to the conversions observed after them — 3 attribution views, per-event lookback windows, and exports your finance team will actually open.

Free plan, no card · attribution on Premium at $49/mo
Lookback4 hours–30 days per event
IdentitySame-tab or consented identity
Models3 included
Proof Impact · illustrative product preview/example project
observed attribution · fractional
Illustrative attributed value
$1,240Observed credit
EXAMPLE · ONE CONVERSION
Credit split evenly across every qualifying touch. The total stays the same — the models only argue about who gets credit.
Credit by touchpoint
Wall of Love · /customers
$310
Pricing carousel · /pricing
$310
Founder video · /product
$310
Rating badge · /checkout
$310
Illustrative conversion feedexample data
13:42:08Replaced three tools in one move.Wall of Love · /customers+$248
13:42:03Paid for itself almost immediately.Pricing carousel · /pricing+$49
13:41:51Setup took one coffee break.Founder video · /product+$1,240
13:41:44Worth every dollar.Rating badge · /checkout+$49
13:41:32Our sales team stopped repeating themselves.Pricing carousel · /pricing+$248
Simulated preview · Nothing is saved or sent.
Proof Impact reports observed attribution, not causal or incremental lift.
01The problem

Your testimonials are off the books.

Every other line on the marketing report has a number next to it. Social proof — the thing your visitors actually read before they buy — usually has a question mark. So it gets defended with vibes, and cut first.

Proof Impact gives testimonials their own line: which accepted widget impressions were observed before each configured conversion, under that event’s same-tab or consented-identity scope. Attribution credit you can inspect — not a causality claim.

FLOWLINE INC
Q3 · MARKETING SPEND vs RESULTS · EXAMPLE
Google Ads$48,2002.7×
LinkedIn Ads$22,5001.9×
SEO content$18,0004.2×
Email$2,40011.9×
Webinars$6,8002.7×
Testimonials$840/mo?← invisible to finance
TOTAL TRACKED$297,100
** REPORT INCOMPLETE WITHOUT PROOF IMPACT **
02How it works

From impression to observed outcome in four entries.

first-party context · configured per event
01

Impression

A published widget records an accepted embed view — with the page, widget, and matching rule attached.

published widgets
02

Conversion

The outcome reaches the ledger your way: a browser call to window.retestimonial.convert(), a server key, or a signed order from your backend.

3 ingestion paths
03

Attribution

Durable background jobs credit qualifying impressions under each event's lookback window and identity scope. Minutes, not milliseconds — and never a silently dropped event.

retries built in
04

Ledger

5 dashboard views — Overview, Attribution, Experiments, Data Quality, Auto-Optimize — plus CSV, raw-ledger, and JSON exports.

5 views + exports
$POST/api/public/proof/convert·{ event: "purchase_completed", value: 49, currency: "USD" }accepted · attribution pending
03The event catalog

Define the outcome before you instrument it.

Conversions aren’t loose strings here. Each outcome is a configured event with a role — Primary, Secondary, or Guardrail — and a value policy, created from 9 starter templates or from scratch. Fire a dry-run test conversion to verify the wiring before anything counts.

9 starter templates

Completed purchase

configured before instrumented

A customer completes a paid order.

Event keypurchase_completed
RolePrimary outcome
Value policyValue required
Lookback options4 hours · 1 day · 7 days · 30 days
Identity scopeSame-tab or consented identity
STRICT mode: event keys that were never configured are rejected with a 422 — a typo can’t quietly pollute the ledger. Switch an event to DISCOVERY mode when you’re still exploring.
await window.retestimonial.ready();
await window.retestimonial.convert({
  event: "purchase_completed",
  idempotencyKey: order.id, // Stable across retries and reloads.
  value: order.total,
  currency: "USD",
  widgetKey: "your-widget-key",
});
Simulated preview · Nothing is saved or sent. Example snippets — your dashboard generates these with your real embed key.
04The models

3 ways to read the same ledger.

same total · different credit

Last-touch

All credit to the proof seen closest to the conversion.

Use forBottom-of-funnel closers.

First-touch

All credit to the proof that opened the journey.

Use forTop-of-funnel discovery.

Fractional

Credit split evenly across every qualifying touch.

Use forMulti-touch journeys.
Ledger definitions · printed on purpose
Attributed conversionsUnique included conversions with at least one qualifying proof impression under that event's snapshotted identity scope and configured attribution window.
Attribution coverageUnique attributed conversions divided by all included conversions. This is observational coverage, not causal lift.
Attributed valueValidated single-currency recognized conversion value, after accepted signed order refunds/cancellations, allocated across qualifying proof touches under the selected attribution model. Revenue trust is disclosed separately; browser-reported value remains observational and this is not incremental revenue.
The same definitions the dashboard shows. If a metric needs a footnote, we print the footnote.

Give proof its own line on the revenue report.

Start free — no card
05Revenue trust

Refunds un-count themselves.

Attribution numbers only matter if the revenue underneath them is honest. Signed order lifecycle events — HMAC-SHA256 signatures, timestamped requests, monotonic revisions — keep the ledger reconciled when orders change: COMPLETED, PARTIALLY_REFUNDED, REFUNDED, CANCELLED.

Two trust tiers, always visible
Browser-reported values stay flagged as unverified; values from rtpi_ server keys and signed orders are marked server-authenticated.
Exact money, no fiction
Integer minor units, ISO-4217 currencies, no implicit FX. Mixed currencies suppress the total instead of faking a sum.
Keys you can rotate
Server API keys are shown once and stored only as hashes. Rotate or revoke from Developer settings any time.
Order ledger · exampleSIGNED · V1
rev 1COMPLETED$149.00 attributed+$149.00
rev 2PARTIALLY_REFUNDED$99.00 attributed−$50.00
rev 3REFUNDED$0.00 attributed−$99.00
Attributed value follows the money — automatically, with example data shown here.
06Privacy

Attribution without the creepy parts.

Read the Proof Impact Privacy & Data Guide
No cookies
Session context lives in same-tab sessionStorage; at most one first-party visitor alias in localStorage, and only after consent allows it.
GPC & DNT honored
Global Privacy Control and Do Not Track are honored by default; your workspace's privacy-signal posture is set in Developer settings.
Hashed identities
Consented identity aliases are stored as per-project HMAC hashes with a dedicated salt. Raw emails and phone numbers are never stored as aliases.
Fail-closed resolution
If identity resolution can't run safely, attribution falls back to same-tab session scope instead of guessing.
Never on the menu
No fingerprinting
No probabilistic matching
No cross-site tracking
No raw email or phone aliases
Consent mode and an origin allow-list are configured in Developer settings; each event picks same-tab or consented-identity scope.
07Methodology

Numbers you can defend in a data review.

Most attribution tools oversell what observation can prove. We wrote the boundary into the product instead — the same sentence appears on this page, in the dashboard, and in the docs:

Proof Impact reports observed attribution, not causal or incremental lift.
Causal liftNot claimed
Incremental revenueNot claimed
Automatic winner promotionDisabled pending experiment rollout
ExperimentsAnalysis beta · Business plan

Why buy attribution that refuses to overclaim? Because the first hard question in every revenue review is “where did this number come from?” — and this one has an answer.

08Plans

Attribution starts on Premium.

start free · upgrade when ready
Capability
Free
$0
Pro
$29/mo
Premium
$49/mo
Business
$79/mo
Widgets, forms & Wall of Love
Observed attribution · 3 models
Conversion event catalog + dry-run test
Server API keys & signed orders
Attribution summary, ledger & JSON exports
Experiments (analysis beta)
Auto-Optimize (no live promotion)
Every limit, side by side — compare full plans on the pricing page.
09Questions

Asked before buying.

Is this causal attribution — does it prove a testimonial drove revenue?

No, and the product says so on every surface: Proof Impact reports observed attribution, not causal or incremental lift. Proof Impact shows which accepted widget impressions were observed before a configured conversion, under each event's lookback window and identity scope. That's evidence you can inspect and defend — not a causality claim. Randomized experiments (an analysis beta on Business) are the path toward lift questions.

How much setup work is it?

Three steps. Publish a widget (the embed you likely already have), create a conversion event — 9 ready-made templates like customer_signup and purchase_completed cover the common outcomes — and add one conversion call where the outcome happens. The dashboard generates copy-paste snippets with your real embed key, and a dry-run test conversion verifies the wiring without storing anything.

Do I need a cookie banner for this?

Proof Impact sets no cookies. It uses same-tab sessionStorage, honors Global Privacy Control and Do Not Track by default, supports an explicit consent mode and an origin allow-list, and stores consented identities only as salted, per-project hashes. The details live in the Proof Impact Privacy & Data Guide at /privacy/proof-impact.

Which plan do I need?

Attribution is included on Premium ($49/mo) and above — all 3 models, the event catalog, server keys, and exports. Business ($79/mo) adds the experiments analysis beta and Auto-Optimize. You can start on Free with widgets and testimonial collection, then upgrade when you want the attribution ledger.

What happens when an order is refunded?

Attributed value follows the money. The signed order lifecycle accepts COMPLETED, PARTIALLY_REFUNDED, REFUNDED, and CANCELLED states with monotonic revisions, and reconciles attributed value when an order changes — a refunded order stops counting. Browser-reported values are always flagged separately from server-authenticated ones.

Does it work with my stack?

If the widget embeds on your site, Proof Impact works there. Conversions arrive three ways: a browser call (window.retestimonial.convert), a server-to-server call authenticated with a rtpi_ API key, or signed order lifecycle calls from your backend. Getting data out is just as open: attribution summary CSV, a raw ledger export, and a full JSON export for your BI tool.

How fast do conversions show up, and how far back does attribution look?

Conversions are accepted immediately and attributed by durable background jobs — typically within minutes, with automatic retries so nothing is silently dropped. Lookback is configured per event: 4 hours–30 days per event, with 4 hours, 1 day, 7 days, 30 days windows to choose from.

Connect proof to the outcomes observed after it.

Publish a widget, define your first conversion event, add one call where the outcome happens — then read the ledger in last-touch, first-touch, fractional views.

MethodObserved attribution
SetupA widget + one conversion call
AttributionPremium · $49/mo
StartFree plan · no card
Keep exploring