TL;DR

Click a bookmark → paste four numbers → instantly know whether two conversion rates are meaningfully different.

No tools. No spreadsheets. No dashboards. Just your browser.


Why?

Have you ever been in a meeting, a Slack thread, or staring at an A/B test dashboard and thought:

“2.3% vs. 2.7% — is that actually meaningful, or just noise?”

Well then this bookmarklet is for you! Other recipients include but are not limited to…

  • Product managers sanity-checking A/B tests
  • Marketers comparing conversion rates
  • Analysts who want a quick second opinion
  • Anyone who does not want to open R, Python, Excel, or a stats website

You click a bookmark, paste four numbers, and immediately get:

  • the absolute difference in conversion rates
  • a p-value
  • a plain-English interpretation of significance

How?

Copy the code below → add it to your browser as a bookmark (as URL/Location) → click the bookmark whenever you need it.

  • No installation
  • No external website
  • Everything runs locally in your browser
javascript:(function(){function e(e){var t=e<0?-1:1;e=Math.abs(e);var a=.254829592,n=-.284496736,r=1.421413741,o=-1.453152027,i=1.061405429,l=.3275911,s=1/(1+l*e),u=1-((((i*s+o)*s+r)*s+n)*s+a)*s*Math.exp(-e*e);return t*u}function t(t){return.5*(1+e(t/Math.SQRT2))}function a(e){return(100*e).toFixed(2)+"%"}function n(e,t){return(Math.abs(e)>=1e3?e.toLocaleString():e.toFixed(t||4))}function r(e){return"string"==typeof e?parseFloat(e.trim().replace(",",".")):NaN}function pValueLabel(p){return p<.01?"Very significant":p<.05?"Significant":p<.1?"Barely significant":p<.15?"Probably different":"No clear difference"}try{var o=prompt("Please enter values in the format: Size A ; Rate A (in %) ; Size B ; Rate B (in %)\nExample: 10000 ; 2.5 ; 9500 ; 3.1","10000 ; 2 ; 10000 ; 3");if(!o)throw new Error("No input");var i=o.split(/;/);if(4!=i.length)throw new Error("Format error");var l=r(i[0]),s=r(i[1])/100,u=r(i[2]),c=r(i[3])/100;if(!isFinite(l)||!isFinite(u)||!isFinite(s)||!isFinite(c)||l<=0||u<=0||s<0||c<0)throw new Error("Invalid input");var f=Math.round(s*l),d=Math.round(c*u),m=f/l,h=d/u,v=(f+d)/(l+u),w=Math.sqrt(v*(1-v)*(1/l+1/u));if(!(w>0))throw new Error("Standard error is zero");var y=(h-m)/w,A=2*(1-t(Math.abs(y))),x=Math.sqrt(m*(1-m)/l+h*(1-h)/u),E=h-m-1.96*x,M=h-m+1.96*x,N=h-m,S=m>0?h/m-1:NaN,T=['📊 Two-sample proportion z-test (two-sided)','','--- Result ---','Difference (B − A): '+a(N)+'  (relative: '+(isFinite(S)?(100*S).toFixed(2)+"%":"n/a")+')','z = '+n(y,4),'p-value = '+n(A,6)+' → '+pValueLabel(A),'95% CI (B − A): ['+a(E)+', '+a(M)+']','','--- Input ---','Group A: n = '+Math.round(l)+', rate = '+a(m)+' (x = '+f+')','Group B: n = '+Math.round(u)+', rate = '+a(h)+' (x = '+d+')'].join("\n");try{navigator.clipboard.writeText(T)}catch(B){}alert(T+"\n\n(Result copied to clipboard)")}catch(B){alert("Error: "+B.message)}})();

How? (a bit more detailed)

  1. Create a new browser bookmark

  2. Name it something like Proportion Test

  3. Paste the JavaScript code above into the URL / Location field

  4. Open any webpage (content does not matter)

  5. Click the bookmarklet

  6. Enter values in the format:

    Size A ; Rate A (in %) ; Size B ; Rate B (in %)

Press Enter to see the result.
The output is also copied to your clipboard.


What is actually happening here?

This bookmarklet performs a two-sample z-test for proportions (two-sided).

It answers the question:

If the true conversion rates were equal, how likely would we be to observe a difference at least this large?

That likelihood is the p-value.

Interpreting the p-value

p-value Interpretation
< 0.01 Very significant
0.01–0.05 Significant
0.05–0.10 Barely significant
0.10–0.15 Probably different
≥ 0.15 No clear difference

Further reading