Opens in a new tab
Use Case

How to Get Live Data Feed Stats into a Lower-Third Before the Next Break

Published October 15, 2026Last modified October 19, 2026

A stat from a live data feed can reach a lower-third with Templater, but it arrives as a rendered video file, not as a live keyed graphic. That one fact decides everything else that follows. If your break leaves room for a render and your playout can take a file, Templater Bot can carry the number from the feed to the screen without anyone retyping it. If you need the number to change on screen the instant the feed changes, you need a real-time graphics engine, and we will say plainly where that line sits.

This guide is written for the person who runs graphics on a stream or a broadcast and gets a stats feed from a scoring system, a league, or a spreadsheet that a statistician keeps open. You already have a lower-third design. You want the numbers in it to stop depending on a human copying them at the worst possible moment. Here is how the pieces fit together, where the delay actually lives, and how to know before the break starts whether the graphic will be ready.

What “live” really means when After Effects renders the graphic

Templater is an After Effects plugin. You build the lower-third once as an After Effects composition, rig the text and image layers so they accept data, and pair the template with a data source. When data arrives, Templater applies it to the master composition and produces a video. That is the whole mechanism, and it explains both the strength and the limit.

The strength is that the design is yours. Every font, every animation curve, every wipe and transition you can build in After Effects is available, and the data fills it in. Nobody has to rebuild the look in a second tool, so the graphic that goes to air matches the one your designer approved.

The limit is that a render takes time. A render is a short job, but it is a job. So the path from the feed to the screen has stages, and each one adds a little to the wait.

First, the number lands in a data source. Second, Templater Bot notices it. Third, After Effects renders the lower-third with that number in it. Fourth, the finished file goes to wherever your playout picks it up. Only the second and third stages belong to Templater. Our product pages list Vimeo, JW Player, Frame.io and AWS S3 as destinations for Projector. They do not list playout servers or video switchers, so the handoff from the finished file to your on-air system is something you set up yourself, with your own scripts or your own folder watching.

We have written about a streaming team that runs this way. They stream live for twelve hours a day and fill the gaps between segments with graphics, including contest promos, the schedule of what is next, and lower thirds that carry player names and statistics. Their designers built the templates in After Effects and linked them to Google Sheets, so the people on the customer experience side fill in a spreadsheet and the graphics come out in minutes instead of hours. You can read how they do it in our post on winning back time with Templater. The thing to notice is the shape of the workflow. A person or a feed updates a sheet. The sheet drives the render. The render becomes a file the stream uses.

So the honest definition of “live” here is this. The data can be current right up to the moment a render starts. The graphic is a file that was true at that moment. For most sports lower-thirds, such as leaders, season averages, standings, and the line under a player’s name, that is exactly what you want. A stat that changes every few seconds during play is a different problem, and a render-based tool is the wrong shape for it.

Build the data path so a change in the feed becomes a render

The feed is only useful if Templater can read what it produces. The good news is that the list of data sources Templater accepts covers most of what a stats system hands out.

Templater reads Google Sheets in the cloud, tab-separated files exported from Excel, Apple Numbers or Google Sheets, and a plain text file holding a JSON object array. It also reads JSON feeds. If your scoring system exposes a JSON endpoint, that is the cleanest route, because nobody has to export anything. If it only produces spreadsheets, the sheet becomes the bridge, and a small script or a person pastes the latest figures into it.

Two limits are worth knowing now, because they bite late. Templater cannot read an Excel file directly. You export to a tab-delimited file first. And Templater maps to a single worksheet inside a Google Sheet, and pulls from a single data source overall. If your stats live on three tabs, one tab has to become the one that drives the graphic. Plan for that when you design the sheet, because it is far easier to build one tidy tab than to untangle three under pressure.

The automatic part comes from Bot. Pro lets you batch render or batch replicate with a click. Bot goes further and checks periodically for incoming data, then starts the customization and rendering process by itself. It runs as a background process and handles very large data sets. You can also push data into it from the command line, which suits a feed handler that wants to say “render this now” instead of waiting for the next check.

That word “periodically” matters. Bot looks at the data source on a cycle, so there is a short gap between a row appearing and Bot noticing it. The gap is small compared with a render, but it is not zero, and you should include it when you work out your time budget later.

Bot also needs to know which rows are ready. It reads a render-status column in the data source to decide whether to render a given row. If that column is missing, Bot will stop with a Google ScriptError, and the same thing happens when a Bot name is set in preferences but the sheet has no column with the header bot. Both come up in our FAQ, and both are one missing column. The practical use of the status column is better than the error. Your feed handler can write a new row with the status set to “ready,” and Bot will render it and mark it done, so a half-written row never goes to air. If you want to understand the column names Templater reserves, our post on using flags in data sources is the place to start.

If your feed is large or comes from several places, QUE is worth a look. QUE is Dataclay’s JSON-based data manager, and it has an API that receives data from web, mobile or other apps. You create jobs, group them into campaigns, and assign computers running After Effects and Templater, which QUE calls satellites, to process them. The QUE Dash shows each job’s status and how busy the rendering machines are, so the person watching the board can see what is waiting. QUE does not balance load between satellites on its own. You assign jobs to specific machines and make sure each one has the fonts and plugins the job needs. For a single lower-third on one machine, QUE is more than you need. For a multi-camera, multi-template night where several graphics are queued at once, a view of what is pending is worth having.

Design the lower-third for the worst stat line, not the average one

Real feeds produce awkward rows. A player with a long hyphenated surname shows up. A team name runs to four words. A stat line that is usually two digits is suddenly three. A lower-third built around the average row will break on one of these, and the break will happen on air.

Templater has two features aimed at exactly this. Layout rules resize and reposition dynamic layers relative to their containing composition and to each other, so a long name pushes the background plate wider instead of overflowing it, and the stat field slides to follow. Time Sculpting is the timing counterpart. It uses time-based rules to crop, trim, shift and stretch layers, so a lower-third that holds longer for a longer line of text keeps its animation in and out intact. Both are set up when you rig the template, not discovered during the show.

Text itself is forgiving. Templater reads the text as it appears in your sheet, so commas, quotes, apostrophes and line breaks come through, and characters from any language work if your installed fonts have the glyphs. Right-to-left scripts are supported too. A feed that carries accented names will not need cleaning for the graphic to display them. The font still has to contain the characters, so check that before the night, not at the moment a name with an unusual letter appears.

One limit belongs in the design phase. A single text layer takes one font, size, weight and style. If you want a name in bold and a team in a lighter weight on the same line, you need two text layers placed next to each other. It is not elegant, and our FAQ calls it a partial workaround, but it works and it is predictable.

Then test with ugly data on purpose. Templater lets you preview compositions with your data before rendering, so you can step through rows and see how each one fits. Pro and Bot also have spot checks, which export still images or short clips of specific frames from the merged compositions. You choose the frames with named composition timeline markers, or Templater samples at even intervals. Run a spot check against a sheet that contains your longest name, your biggest number and a blank field, and you will see the failures while they are cheap. Our post on generating spot checks shows how.

Last, keep the template light. Templater looks at every layer in the project, so unused layers, effects and compositions are work the machine does on every render. A lower-third has few layers by nature, so this is easy to get right, and the saving repeats on every update. Pre-compose any layer that is scaled far down or only partly visible, and crop it. The ratio of dynamic frames to static frames also affects render time, which is another reason to keep a lower-third short and its changing portion clearly bounded on the timeline. Our guide to speeding up After Effects exports goes through these steps in more detail.

Work out the time budget before the break arrives

The question in the title is a timing question, and it has an answer you can measure. Nobody can promise you a render time without testing, because it depends on the length of the graphic, the output resolution, the speed of your hardware, how much of the timeline changes, how heavy the effects are, and how the template is built. Change any of those and the answer moves.

Dataclay’s own method is the pre-flight. Render one lower-third, or a small batch, on a machine comparable to the one you will use on the night. Choose a row that looks like the rest, not the shortest and simplest. Note the time. That number is the center of your budget.

Now add the stages around it. How long does your feed take to reach the data source? How long is the gap before Bot checks? How long does the finished file take to reach your playout? Only you can measure the first and last, and they are often larger than the render itself. A lower-third that renders quickly but sits in a folder that nobody’s playout watches for a while has not met the deadline.

Here is a worked example with no numbers pretended. Say a basketball stream has a short break at the end of each quarter, and the producer wants a leaders graphic ready as the stream comes back. The statistician’s feed finishes the quarter. The handler writes the five leaders to the sheet and sets the status to ready. Bot picks it up, After Effects renders one lower-third with five lines, and the file lands in the folder the playout watches. In rehearsal the producer times each stage on three real quarters of data and finds the render is the smallest part and the folder hand-off is the largest. The fix is on the hand-off, not on the template. That is the value of measuring each stage instead of guessing.

If one machine is the limit, you have two choices. You can run Bot on several machines at once, and our FAQ is plain about the arithmetic: two machines cut the production time in half, three cut it to a third. The data source needs to be set up for multiple Bots, and the FAQ links to the guides for that. Or you can use Projector, which renders several customized videos at the same time on one machine, one per core, and can transcode as part of each job. Projector reads from Google Sheets or QUE, and it is a local desktop application, so your assets stay on your machine. Parallel rendering helps when several graphics are waiting at once. It does not shorten a single lower-third, so a single graphic on a deadline is better served by trimming the template than by adding machines.

Be equally plain about when this is the wrong approach. If your graphic needs to update continuously while it stays on screen, a running score or a clock, use a real-time graphics engine for that element. Use Templater for the graphics that are true at a moment and then replaced: the leaders, the matchup, the stat line under a name, the post-game summary. Many productions end up with both, and that is the sensible answer.

Before the first live night, run the whole chain with a rehearsal feed. Include a late correction, because a feed will eventually correct itself, and watch what happens when a row is rewritten after Bot has rendered it. Decide in advance who sets the status column back to ready and who confirms the new file replaced the old one. A process that survives a correction is a process you can trust on a busy night.

The bottom line is simple. Templater turns a feed into on-brand lower-thirds without anyone retyping, and it does so by rendering, so the honest promise is “ready after a measured delay,” not “instant.” Measure each stage once, fix the slow one, and use a real-time engine for anything that must change while it is on screen. If your breaks are long enough for a render and your playout takes files, this approach will take a repetitive job off the graphics operator’s plate. If they are not, you have learned that cheaply, in rehearsal, which is the point of rehearsing.

A few questions come up every time a producer asks us about feeds and lower-thirds. Here are the short answers.

Frequently Asked Questions

Can Templater update a lower-third while it is on screen?

No. Templater produces a rendered video file from an After Effects template and your data. The graphic is true at the moment its render started. For an element that must change continuously while visible, such as a running score or a clock, use a real-time graphics engine and keep Templater for graphics that are true at a moment and then replaced, like leaders, matchups and stat lines.

What data sources can carry a stats feed into a lower-third?

Templater reads Google Sheets, tab-separated files exported from Excel, Apple Numbers or Google Sheets, JSON files, and JSON feeds. QUE, our JSON-based data manager, also works as a source and has an API. Templater cannot read an Excel file directly, and it maps to one worksheet and one data source at a time, so plan one tidy tab that drives the graphic.

How does Templater Bot know a row is ready to render?

Bot reads a render-status column in your data source. When your feed handler writes a row and sets the status to ready, Bot renders it and updates the status. If the column is missing, Bot stops with a Google ScriptError. Using the column on purpose keeps half-written rows off air.

How do I know whether a render will finish before the break ends?

Run a pre-flight. Render one lower-third on a machine comparable to your production one, using a row that looks like the rest. Then add the time your feed takes to reach the data source, the gap before Bot checks, and the time for the file to reach your playout. Measure each stage in rehearsal, because the hand-off is often the slowest part.

Will a very long name or a three-digit stat break the design?

Not if you rig for it. Layout rules resize and reposition dynamic layers relative to each other, and Time Sculpting adjusts timing for longer content. Test with spot checks against a sheet that contains your longest name, your biggest number and a blank field. One text layer can only use one font, size and weight, so mixed styling needs two layers.

Does Templater send the finished lower-third to our playout system?

Our product pages do not list playout servers or video switchers as destinations. Projector lists Vimeo, JW Player, Frame.io and AWS S3. Templater also supports event scripts and a command line, so you can write your own hand-off, for example moving the finished file into a folder your playout watches.

Do I need more than one machine for lower-thirds?

Often not. A single lower-third has few layers and renders quickly once the template is trimmed. More machines help when several graphics are waiting at once. Bot on two machines cuts total production time in half, and Projector renders one video per core on a single machine. A single graphic on a deadline is better helped by trimming the template.

Leave the first comment

Sign up

Stay up to date with Datclay's newsletter. We won't spam your inbox.

Newsletter Signup
Name
Name
First
Last

By submitting your email, you agree to our Terms and Privacy Policy. You can opt out at any time.