Live spread comparison
Current spread per firm on one instrument, with the tightest marked and the difference spelled out.
- Works well in
- Firm review articlesBest-of round-upsArticle sidebars
Embed live spread comparisons, trading cost calculators, provider comparisons and PropSpread Scores with a few lines of code. No account, no API key, no build step.
Live widget, not a mockup
This is the real embed running against the same data your readers would see.
Comparison articles age badly. A widget that reads live data does not.
A reader can change position size in the calculator and see the cost move. That is something a static comparison table in a review article cannot do.
Spread and cost figures come from the same feed the PropSpread board reads, so a widget in a two year old article shows today's numbers without you editing the post.
Every figure carries its own state. Where a number is stale, the market is closed, or a comparison is not valid, the widget says so instead of showing a confident number.
Firm names link to their PropSpread profile, so a reader who wants the full picture has somewhere to go without leaving your article for a marketing page.
Costs, scores and rankings inside a widget are computed by the same engine and the same published methodology as propspread.com. Your readers can check the working.
There is no key to rotate, no bundle to update and no version to pin. A v1 embed keeps receiving v1 responses.
Every preview here is the real runtime rendering the real widget. Scroll and they load as you reach them.
Current spread per firm on one instrument, with the tightest marked and the difference spelled out.
Spread cost plus commission for the same trade at each firm, so two desks are compared on equal terms.
An interactive calculator your reader drives. Position size and trade count in, estimated cost out.
One firm at a glance: PropSpread Score, published facts, live spread and estimated cost.
A two firm table with rules, payouts, platform and cost rows. Unverified cells are labelled, never blank.
A compact score badge that links to the firm's profile and names the methodology behind the number.
Six types cover comparison, cost and score placements. Pick the one that answers the question your article is already asking.
Choose the firms, the instrument, the theme and which sections to show. The builder previews the real widget at desktop and mobile widths while you work.
Copy the generated snippet into your page. There is no key to add and no build step to run.
Put the container where the widget should appear. The script goes anywhere on the page, once.
<div
data-propspread-widget="live-spread-comparison"
data-providers="if,ftmo"
data-instrument="EURUSD"
></div>
<script async src="https://www.propspread.com/widgets/embed.js"></script>The same snippet everywhere. What changes is where it goes and what your platform allows.
Any hand-written page, static site generator or template.
Put the container where the widget should appear. The script goes anywhere on the page, once.
<div
data-propspread-widget="live-spread-comparison"
data-providers="if,ftmo"
data-instrument="EURUSD"
></div>
<script async src="https://www.propspread.com/widgets/embed.js"></script>Both render the same widget from the same data. Choose on what your page allows.
Best for
Trade-off: Needs a script tag on the page. Some CMS plans and security plugins strip those from post content.
Best for
Trade-off: Uses a fixed height unless you add the optional auto-height snippet, and each iframe fetches its own data rather than sharing a batch.
For pages that block third-party scripts. Responsive in width, fixed height by default.
<iframe
src="https://www.propspread.com/widgets/live-spread-comparison?providers=if%2Cftmo&instrument=EURUSD"
loading="lazy"
title="Live spread comparison for EURUSD by PropSpread"
style="width:100%;border:0;overflow:hidden"
height="286"
></iframe>Adds height messaging. The origin check is not optional — without it any frame on your page can resize your layout.
<script>
window.addEventListener('message', function (event) {
if (event.origin !== "https://www.propspread.com") return;
var data = event.data;
if (!data || data.type !== 'propspread:widget:height') return;
var frames = document.querySelectorAll('iframe[src^="https://www.propspread.com/widgets"]');
for (var i = 0; i < frames.length; i++) {
if (frames[i].contentWindow === event.source) frames[i].height = String(Math.ceil(data.height));
}
});
</script>Widgets show what PropSpread has measured, label what it has not, and refuse comparisons that would not be honest.
The full method is published at propspread.com/methodology, and every widget links back to it.
A closed set of approved options, because an embed renders on a page PropSpread has never seen.
| Option | Values | Notes |
|---|---|---|
| Theme | light, dark, auto | Auto follows the reader's own system preference, not your page's CSS. |
| Layout | compact, standard, expanded | Not every type uses all three. The builder shows what changes as you switch. |
| Corner radius | none, small, medium, large | A closed set of approved radii, not a free CSS length. |
| Sections | per widget type | Hide optional sections you do not want. Unknown keys are ignored rather than rendered. |
| Badge shape | horizontal, square | Score badge only. A square badge is a different silhouette, not a denser one. |
There is no custom CSS field, no custom HTML field and no custom link target. Widgets render inside a shadow root, so your page styles cannot reach in and the widget's styles cannot leak out. That isolation is what makes an embed safe to paste into a page nobody at PropSpread has seen.
What the widgets do, what they cost today, and what they will not claim.
The widgets are currently available at no cost and without an account. PropSpread has not set a long term commercial policy for embeds, so this page does not promise they will always be free. If that changes, existing embeds will not break without notice.
No. There is no key, token or account to configure. The public widget API is unauthenticated and rate limited per IP, and nothing in the embed code is confidential.
Yes. Include the script once and add as many containers as you need. Identical and concurrent data requests are de-duplicated and coalesced into a single batched call, so five badges for the same firm cost one request rather than five.
Yes. Each widget fetches current data when it mounts, so a reader opening a two year old article sees today's figures. Responses are cached briefly and carry their own freshness label.
You can choose light, dark or auto, pick a corner radius, choose a layout and hide optional sections. There is no custom CSS field. Arbitrary styling from a third party page is the attack surface this platform is built not to have.
The loader is 1.1 kB gzipped and loads asynchronously. A page with one score badge downloads about 14 kB gzipped in total. Widget code loads only for the types present on the page, no web fonts are downloaded, and skeletons match the final content height so the layout does not shift.
Yes, through a Custom HTML block. There is no PropSpread WordPress plugin. Some themes and many security plugins strip script tags from post content, and WordPress.com plans below Business block custom scripts, so use the iframe embed if the script does not run.
Yes. Every widget has an iframe version for pages that block third-party scripts. It is responsive in width and uses a sensible fixed height, with an optional snippet for automatic height that verifies the message origin before resizing anything.
No. Each widget carries one attribution link back to the source of the data, and there is no configuration option to remove or redirect it. It is a single visible link, never hidden or duplicated.
No. Rankings, scores and cost calculations are computed from measured data under a published methodology. The optional campaign label you can set on an embed is recorded for attribution only, and the widget data service never reads a tracking field when building a response.
The widget says so. A missing value renders as a dash rather than a zero, a stale value is labelled and excluded from comparisons, and a comparison that cannot be made honestly is refused with a stated reason instead of a number. If data cannot be loaded at all, the widget shows a short card linking to PropSpread rather than an error in your article.
Open the gallery and check whether the same widget type renders there. That separates a problem with your page from a problem with the widget. Then contact PropSpread with the page URL, the widget type and the snippet you pasted.
Configure a widget, copy the snippet, publish. If you run a directory, a review site or a large affiliate property and need something the builder does not cover, get in touch.
Widgets are served from www.propspread.com. Embedding one does not create an account, set a cookie on your readers, or place any identifier on your page.
This tool provides an indicative comparison of spreads and estimated execution costs based on periodic snapshots from connected data feeds and normalized trade assumptions. Displayed values are not tradable quotes and may differ from prices available on any provider's live accounts. Spreads vary by account type, server, liquidity conditions, and time of day. Competitor names and marks belong to their respective owners; no affiliation or endorsement is implied. The "Average Prop Firm" benchmark is a computed composite of sampled competitor feeds, not the published pricing of any specific firm. Cost estimates use a normalized trade scenario and do not constitute financial advice or a prediction of trading results.