Finance (Insurance), Cover comparison 1.0.0
| Template | Finance (Insurance), tpl_466386ca3ac5 |
|---|---|
| Variant | Cover comparison |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 11 seconds |
Example video
The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.
What it accepts
Two or three levels of cover side by side, soft columns with each level's name and price, the popular one raised on a tinted card, and two to eight rows with a tick or gentle cross under each level, all on the first frame. Each row is then lit in turn, then the button and agent. The disclosure stays on screen throughout. Seven seconds with two rows, a second more per row. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the section, the headline, the levels of cover with their prices, the features with their marks, the call to action and the disclosure. | |
clipData.section | text | up to 24 characters | Section: What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover. | |
clipData.headline | text | yes | up to 56 characters | Headline: The title of the post. |
clipData.plans | list | yes | at least 2, up to 3 | Levels of cover: Two or three levels of cover side by side, each a soft column with its name and its price. A popular one stands raised on a tinted card with its label above it. |
clipData.plans[] | group | Level | ||
clipData.plans[].name | text | yes | up to 20 characters | Name: The level's name, such as Essential or Premier. |
clipData.plans[].price | number | from 0, to 99999999 | Price: The price, such as 14 or 13.99, written the channel's way with the decimals it was sent with (a single decimal is written as cents). Left out, the price text is shown instead. | |
clipData.plans[].currency | text | up to 3 characters | Currency: The price's currency as its three-letter code, such as GBP or EUR, shown as its symbol. Left out, the figure alone. | |
clipData.plans[].period | text | up to 16 characters | Period: How often the price is paid, under it, such as a month or a year. | |
clipData.plans[].priceText | text | up to 24 characters | Price text: A price in words where there is no single figure, such as From 9 a month or Ask for a quote. Shown only where no price is sent. | |
clipData.plans[].popular | boolean | Popular: Raise this level on a tinted card, as the one most people choose. | ||
clipData.plans[].popularLabel | text | up to 20 characters | Popular label: The label above a popular level, such as Most chosen. Left out, the level is raised without one. | |
clipData.features | list | yes | at least 2, up to 8 | Features: Two to eight things the levels cover, each a row with a tick or a gentle cross under every level. All are there on the first frame, then each row is lit in turn. Where the frame is short of height the rows turn pages. |
clipData.features[] | group | Feature | ||
clipData.features[].label | text | yes | up to 40 characters | Label: What is covered, in a few words. |
clipData.features[].included | list | yes | at least 2, up to 3 | Included: Whether each level includes it, in the order of the levels: true for a tick, false for a gentle cross. A level left out shows no mark. |
clipData.features[].included[] | boolean | Included | ||
clipData.cta | group | Call to action: The button at the end and the line under it, such as a web address or a phone number. | ||
clipData.cta.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 48 characters | Line under it: An address, a phone number, an app, an office. | |
clipData.disclosure | text | yes | up to 300 characters | Disclosure: What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. With prices, also that they are examples and depend on the details and underwriting. On screen throughout, set smaller rather than cut. |
clipData.look | group | Look: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start. | ||
clipData.look.theme | enum | brand, light, dark, bold | Theme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page. | |
clipData.look.pace | enum | calm, standard, punchy | Pace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts. | |
clipData.look.corners | enum | square, soft, round | Corners: The shape of cards, pictures and buttons. | |
clipData.look.align | enum | start, centre | Text alignment: Where the text lines up. | |
clipData.look.logo | enum | auto, free | Logo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose. | |
clipData.look.logoSize | enum | auto, small, large | Logo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none. | |
metaData | group | Meta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data. | ||
metaData.title | text | up to 100 characters | Title: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes. | |
metaData.captionTiny | text | up to 200 characters | Tiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionShort | text | up to 500 characters | Short description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionMedium | text | up to 1500 characters | Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionLong | text | up to 4000 characters | Long description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.hashtags | list | up to 15 | Hashtags: Written without the #. Up to 15, which every platform takes. | |
metaData.hashtags[] | text | up to 60 characters | Hashtag |
locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.
A picture is always a file from your media library: media:// followed by its id or its name.
Anything the table does not list is refused, and so is anything over its limit, with a 400
schema_validation error that names the field.
The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 20,
"title": "Name",
"description": "The level's name, such as Essential or Premier."
},
"price": {
"type": "number",
"minimum": 0,
"maximum": 99999999,
"title": "Price",
"description": "The price, such as 14 or 13.99, written the channel's way with the decimals it was sent with (a single decimal is written as cents). Left out, the price text is shown instead."
},
"currency": {
"type": "string",
"maxLength": 3,
"title": "Currency",
"description": "The price's currency as its three-letter code, such as GBP or EUR, shown as its symbol. Left out, the figure alone."
},
"period": {
"type": "string",
"maxLength": 16,
"title": "Period",
"description": "How often the price is paid, under it, such as a month or a year."
},
"priceText": {
"type": "string",
"maxLength": 24,
"title": "Price text",
"description": "A price in words where there is no single figure, such as From 9 a month or Ask for a quote. Shown only where no price is sent."
},
"popular": {
"type": "boolean",
"title": "Popular",
"description": "Raise this level on a tinted card, as the one most people choose."
},
"popularLabel": {
"type": "string",
"maxLength": 20,
"title": "Popular label",
"description": "The label above a popular level, such as Most chosen. Left out, the level is raised without one."
}
},
"required": [
"name"
],
"additionalProperties": false,
"title": "Level"
},
"minItems": 2,
"maxItems": 3,
"title": "Levels of cover",
"description": "Two or three levels of cover side by side, each a soft column with its name and its price. A popular one stands raised on a tinted card with its label above it."
},
"features": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is covered, in a few words."
},
"included": {
"type": "array",
"items": {
"type": "boolean",
"title": "Included"
},
"minItems": 2,
"maxItems": 3,
"title": "Included",
"description": "Whether each level includes it, in the order of the levels: true for a tick, false for a gentle cross. A level left out shows no mark."
}
},
"required": [
"label",
"included"
],
"additionalProperties": false,
"title": "Feature"
},
"minItems": 2,
"maxItems": 8,
"title": "Features",
"description": "Two to eight things the levels cover, each a row with a tick or a gentle cross under every level. All are there on the first frame, then each row is lit in turn. Where the frame is short of height the rows turn pages."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a phone number, an app, an office."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. With prices, also that they are examples and depend on the details and underwriting. On screen throughout, set smaller rather than cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start."
}
},
"required": [
"headline",
"plans",
"features",
"disclosure"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, the levels of cover with their prices, the features with their marks, the call to action and the disclosure."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 20,
"title": "Name",
"description": "The level's name, such as Essential or Premier."
},
"price": {
"type": "number",
"minimum": 0,
"maximum": 99999999,
"title": "Price",
"description": "The price, such as 14 or 13.99, written the channel's way with the decimals it was sent with (a single decimal is written as cents). Left out, the price text is shown instead."
},
"currency": {
"type": "string",
"maxLength": 3,
"title": "Currency",
"description": "The price's currency as its three-letter code, such as GBP or EUR, shown as its symbol. Left out, the figure alone."
},
"period": {
"type": "string",
"maxLength": 16,
"title": "Period",
"description": "How often the price is paid, under it, such as a month or a year."
},
"priceText": {
"type": "string",
"maxLength": 24,
"title": "Price text",
"description": "A price in words where there is no single figure, such as From 9 a month or Ask for a quote. Shown only where no price is sent."
},
"popular": {
"type": "boolean",
"title": "Popular",
"description": "Raise this level on a tinted card, as the one most people choose."
},
"popularLabel": {
"type": "string",
"maxLength": 20,
"title": "Popular label",
"description": "The label above a popular level, such as Most chosen. Left out, the level is raised without one."
}
},
"required": [
"name"
],
"additionalProperties": false,
"title": "Level"
},
"minItems": 2,
"maxItems": 3,
"title": "Levels of cover",
"description": "Two or three levels of cover side by side, each a soft column with its name and its price. A popular one stands raised on a tinted card with its label above it."
},
"features": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"title": "Label",
"description": "What is covered, in a few words."
},
"included": {
"type": "array",
"items": {
"type": "boolean",
"title": "Included"
},
"minItems": 2,
"maxItems": 3,
"title": "Included",
"description": "Whether each level includes it, in the order of the levels: true for a tick, false for a gentle cross. A level left out shows no mark."
}
},
"required": [
"label",
"included"
],
"additionalProperties": false,
"title": "Feature"
},
"minItems": 2,
"maxItems": 8,
"title": "Features",
"description": "Two to eight things the levels cover, each a row with a tick or a gentle cross under every level. All are there on the first frame, then each row is lit in turn. Where the frame is short of height the rows turn pages."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a phone number, an app, an office."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. With prices, also that they are examples and depend on the details and underwriting. On screen throughout, set smaller rather than cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, round corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, the levels of cover with their prices, the features with their marks, the call to action and the disclosure."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
}
},
"additionalProperties": false
},
"propertyNames": {
"enum": [
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu",
"zh-CN",
"zh-TW",
"pt-BR"
]
}
}
},
"required": [
"clipData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
Ask Reelwire for the same document yourself, without signing in:
curl "http://localhost:4000/v1/formats/template/tpl_466386ca3ac5?variant=Cover%20comparison&version=1.0.0"
Delivery JSON
Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to
that stream draws it with its template. data is the document described above; a stream with an
empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate,
which answers the same without publishing anything. Streams and feeds
explains the rest, including how to map a document of your own shape instead.
{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"section": "Home insurance",
"headline": "Which level of home cover is right for you?",
"plans": [
{
"name": "Essential",
"price": 9,
"period": "a month",
"currency": "GBP"
},
{
"name": "Standard",
"price": 14,
"period": "a month",
"popular": true,
"currency": "GBP",
"popularLabel": "Most chosen"
},
{
"name": "Premier",
"price": 22,
"period": "a month",
"currency": "GBP"
}
],
"features": [
{
"label": "Fire, flood and storm damage",
"included": [
true,
true,
true
]
},
{
"label": "Theft and break-ins",
"included": [
true,
true,
true
]
},
{
"label": "Accidental damage",
"included": [
false,
true,
true
]
},
{
"label": "Home emergency help",
"included": [
false,
true,
true
]
},
{
"label": "Legal expenses",
"included": [
false,
false,
true
]
},
{
"label": "Belongings away from home",
"included": [
false,
false,
true
]
}
],
"cta": {
"label": "Compare and get a quote",
"detail": "harbourmutual.example/home"
},
"disclosure": "Prices are examples for a three-bedroom house; yours depend on your details and underwriting. Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions and exclusions of your policy.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "Essential, Standard or Premier: which home cover is right for you?",
"captionTiny": "Essential from 9, Standard from 14, Premier from 22 a month. Accidental damage and emergency help from Standard, legal cover in Premier.",
"captionShort": "Which level of home cover is right for you? Essential, from 9 a month, covers fire, flood, storm, theft and break-ins. Standard, from 14 a month and our most chosen, adds accidental damage and home emergency help. Premier, from 22 a month, adds legal expenses and your belongings away from home. Prices are examples; yours depend on your details and underwriting.",
"captionMedium": "Which level of home cover is right for you? All three of our levels cover the big things: fire, flood and storm damage, and theft and break-ins. Essential, from 9 a month, stops there and suits a tight budget. Standard, from 14 a month and the one most of our customers choose, adds accidental damage, for the spilt paint and the dropped television, and home emergency help for a burst pipe or a broken boiler. Premier, from 22 a month, adds legal expenses and cover for your belongings away from home. Compare the levels and get a quote at harbourmutual.example/home. Prices are examples for a three-bedroom house; yours depend on your details and underwriting. Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions and exclusions of your policy.",
"captionLong": "Which level of home cover is right for you? Choosing insurance should not mean reading three policy documents side by side, so here is the difference in one picture. All three of our levels cover the big things: fire, flood and storm damage, and theft and break-ins, including the damage done getting in. Essential, from 9 a month, stops there, and it suits a tight budget or a home with few valuables. Standard, from 14 a month and the one most of our customers choose, adds accidental damage, for the spilt paint, the dropped television and the football through the window, and home emergency help, so a burst pipe or a broken boiler in the middle of the night is somebody else's problem. Premier, from 22 a month, adds legal expenses, for disputes with neighbours or builders, and cover for your belongings away from home, from your phone to your bike. You can move between levels at renewal, and our team is happy to talk it through. Compare the levels and get a quote at harbourmutual.example/home. Prices are examples for a three-bedroom house; yours depend on your details and underwriting. Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions and exclusions of your policy.",
"hashtags": [
"homeinsurance",
"comparecover",
"insurancetips",
"homecover",
"peaceofmind"
]
}
}
}
The delivery names no version: which build draws it is the channel's choice, the newest of its
variant or the one it is pinned to. eventId is a ULID you make once per event: sending the same
one again changes nothing. occurredAt is when the thing happened, not when you sent it. locale
is the language of the text in data, and data.locales carries other languages beside it.