Skip to main content

Tech and industry (Energy and utilities), Renewable share

Today's generation mix as a departures board: the share from renewables large on flaps as the headline, the mix by source (up to eight) as one bar and a board of rows with their shares, the date and the source, the supplier's notice at the foot throughout. The board ripples, each source is told in turn, before a tip, the button and the presenter. About eight to twelve seconds: it grows with the number of sources.

TemplateTech and industry (Energy and utilities), tpl_1aa6650d866f
VariantRenewable share
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length12 seconds

Example video​

The 1x1 cut of this variant, drawn from its own worked example. Open the video on its own.

What it accepts​

Today's generation mix as a departures board: the share from renewables large on flaps as the headline, the mix by source (up to eight) as one bar and a board of rows with their shares, the date and the source, your notice throughout. Each source told in turn, then a tip, the button and your presenter. Eight to twelve seconds, by the number of sources. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the share from renewables, the sources and their shares, the day and area, the source of the figures, the words on the board, the tip, the call to action and your notice.
clipData.sectiontextup to 32 charactersSection: The section in the header, painted as a sign beside your title line, such as Generation mix.
clipData.kickertextup to 40 charactersKicker: A short line above the headline, such as Electricity generation today.
clipData.headlinetextup to 64 charactersHeadline: The headline, set large. Say what the mix shows; it must agree with the share below.
clipData.daydatetimeyesDay: The day the mix is for, such as 2026-10-18T00:00:00+02:00. Only the date is read, as it is written here, and it is spelled out in the channel's language under the headline.
clipData.areatextup to 40 charactersArea: The grid or country the mix is for, shown after the date, such as Germany or Great Britain.
clipData.renewableSharenumberyesfrom 0, to 100, 1 decimalsShare from renewables: The share of today's generation that comes from renewable sources, in percent, as you state it, such as 62.4. It is the headline figure and is drawn exactly as sent: the template adds nothing up.
clipData.sourceslistyesat least 2, up to 8Sources of power: Two to eight sources in the order they should be shown, each with its share of generation in percent as sent (they should add up to 100). Each is a segment of the bar and a row of the board.
clipData.sources[]groupSource of power
clipData.sources[].nametextyesup to 24 charactersName: The source, such as Wind, Solar, Hydropower or Natural gas.
clipData.sources[].sharenumberyesfrom 0, to 100, 1 decimalsShare: Its share of generation in percent, drawn exactly as sent.
clipData.sources[].renewablebooleanRenewable: Marks the source as renewable: its row carries the renewable tag from your words below.
clipData.sourcetextyesup to 80 charactersSource: Where the figures come from, shown under the board, such as Source: ENTSO-E Transparency Platform, net public generation.
clipData.labelsgroupWords on the board: The words the board shows beside the figures, in your language.
clipData.labels.renewablestextup to 24 charactersRenewables: The caption over the headline share, such as Renewables.
clipData.labels.tagtextup to 16 charactersRenewable tag: Shown on the row of every source marked renewable, such as Renewable.
clipData.labels.nametextup to 24 charactersSource heading: The heading over the names, such as Source of power.
clipData.labels.sharetextup to 16 charactersShare heading: The heading over the shares, such as Share.
clipData.tiptextup to 120 charactersTip: One sentence shown at the end above the button, such as when power is greenest. Name nothing the mix does not show; never promise a saving.
clipData.ctagroupCall to action: The button at the end and the line under it, such as a web address, a handle or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 48 charactersLine under it: An address, a handle, an app, a phone number.
clipData.noticetextyesup to 300 charactersNotice: Who supplies, your licence or registration, and whether the mix is the grid's or your own supply's, as your regulator asks. Shown at the foot from the first frame to the last; a long notice is set smaller, never cut.
clipData.footnotetextup to 200 charactersSmall print: Any other line that must be shown, such as how the shares were measured or that they may be revised.
clipData.lookgroupLook: 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: dark, standard pace, softly rounded, text at the start.
clipData.look.themeenumbrand, light, dark, boldTheme: 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.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: 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.logoSizeenumauto, small, largeLogo 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.
metaDatagroupMeta 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.titletextup to 100 charactersTitle: 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.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium 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.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

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.

Ask Reelwire for the whole JSON Schema, the document your content is checked against, without signing in:

curl "https://app.reelwire.io/v1/formats/template/tpl_1aa6650d866f?variant=Renewable%20share&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": "Generation mix",
"kicker": "Electricity generation today",
"headline": "More than half of today's power is renewable",
"day": "2026-10-18T00:00:00+02:00",
"area": "Germany",
"renewableShare": 62.4,
"sources": [
{
"name": "Wind",
"share": 33.1,
"renewable": true
},
{
"name": "Solar",
"share": 17.6,
"renewable": true
},
{
"name": "Biomass",
"share": 6.8,
"renewable": true
},
{
"name": "Hydropower",
"share": 4.9,
"renewable": true
},
{
"name": "Lignite",
"share": 14.2,
"renewable": false
},
{
"name": "Natural gas",
"share": 12.1,
"renewable": false
},
{
"name": "Hard coal",
"share": 6.8,
"renewable": false
},
{
"name": "Other",
"share": 4.5,
"renewable": false
}
],
"source": "Source: ENTSO-E Transparency Platform, net public generation",
"labels": {
"tag": "Renewable",
"name": "Source of power",
"share": "Share",
"renewables": "Renewables"
},
"tip": "Wind and sun were strongest around midday. Run big appliances then.",
"cta": {
"label": "See today's mix",
"detail": "stadtwerke-lindenau.example/mix"
},
"notice": "Stadtwerke Lindenau GmbH, licensed electricity supplier under the German Energy Industry Act. The mix shown is that of the German public grid, not of the electricity we supply; the mix we supply is on your bill.",
"footnote": "Shares of net public generation, as published by the data provider and subject to revision.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "dark",
"corners": "soft",
"logoSize": "auto"
}
},
"metaData": {
"title": "Today's electricity mix: 62.4% renewable",
"captionTiny": "62.4% of Germany's electricity today comes from renewables: wind 33.1%, solar 17.6%. Source: ENTSO-E.",
"captionShort": "Today 62.4% of Germany's electricity comes from renewable sources. Wind leads with 33.1%, then solar with 17.6%. Wind and sun were strongest around midday: run big appliances then. Source: ENTSO-E Transparency Platform.",
"captionMedium": "The generation mix for Germany on 18 October 2026: 62.4% from renewables. Wind 33.1%, solar 17.6%, biomass 6.8%, hydropower 4.9%; lignite 14.2%, natural gas 12.1%, hard coal 6.8%, other 4.5%. Wind and sun were strongest around midday, a good time to run big appliances. Source: ENTSO-E Transparency Platform, net public generation. The mix shown is that of the German public grid, not of the electricity we supply.",
"captionLong": "The generation mix for Germany on Sunday 18 October 2026: 62.4% of the electricity fed into the public grid came from renewable sources. Wind led with 33.1%, followed by solar with 17.6%, biomass with 6.8% and hydropower with 4.9%. Lignite supplied 14.2%, natural gas 12.1%, hard coal 6.8% and other sources 4.5%. Wind and sun were strongest around midday, so that is a good time to run the washing machine, the dishwasher and the car charger. Source: ENTSO-E Transparency Platform, net public generation, subject to revision. The mix shown is that of the German public grid, not of the electricity we supply; the mix we supply is on your bill. Stadtwerke Lindenau GmbH, licensed electricity supplier under the German Energy Industry Act.",
"hashtags": [
"energy",
"renewables",
"windpower",
"solarpower",
"energytransition"
]
}
}
}

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.