Bare Facts First

How Reuters uses Datawrapper to create, automate and disseminate hundreds of charts each week

By • Data Visualization Society in New York City

Slides

Show the extracted slide text

Slide 1

Bare Facts First
How Reuters uses Datawrapper
to create, automate and disseminate
hundreds of charts each week

Slide 2

Who I am
I’m Ben Welsh.

I joined Reuters in 2023 after 15
years leading data projects at
the Los Angeles Times.

I’m helping our team create
more of what we call “news
applications.”

Slide 3

What is Reuters?
❖ Founded in 1851, Reuters is the world’s
  largest international multimedia news
  provider.

❖ Each day 2,500 journalists in nearly 200
  locations around the globe produce news in
  16 languages.

❖ Financial professionals receive exclusive
  news and data from Reuters via the LSEG
  terminal.

❖ More than 2,000 newsrooms republish our
  work via a wire service.

❖ Breaking news, analysis and special reports
  are available for free on reuters.com.

❖ A legally binding vow requires we uphold
  trust principles valuing independence,
  integrity and freedom from bias.

Slide 4

Our mission
❖ Breaking news was at the core from the
  beginning.

❖ An 1883 memo spelled out the London
  office’s expectations for correspondents.

❖ At that time, stories were sent by telegram.

❖ The editors asked “that the bare fact be first
  telegraphed with the utmost promptitude.”

Slide 5


Slide 6


Slide 7

What you’re in for
❖ How Datawrapper charts created by
  Reuters staff are distributed to the world

❖ How we extended that system to automate
  routine charts

❖ Your questions

Slide 8


Slide 9


Slide 10

Before Datawrapper
❖ High-caliber graphics team
  spread thin by requests for
  simple charts

❖ Too many good charts not
  getting made due to backlog

❖ Zero-sum competition between
  simple stuff and ambitious
  enterprise

❖ Frustrated reporters
  bootlegging charts with trashy
  tools

Slide 11

The requirements in theory


     Self-hosted and embeddable HTML




     Raster and vector images




      Editable source code




      Light and dark modes

Slide 12


Slide 13

Hooking up
Datawrapper’s custom
webhooks will send a ping after
you publish or unpublish a
chart.
It passes along the unique
identifier of the chart that’s
been edited.
Jon McClure wrote code that
that picks up published charts
and moves them into Reuters
systems.

Slide 14

What that looks like


          API

Slide 15

Custom fields come in handy

 API

Slide 16

The requirements in practice

Slide 17

Teams too




    ✨Bonus: Need a Teams klaxon? Ours is free!
     reuters-graphics.github.io/teams-klaxon/

Slide 18

After Datawrapper
❖ We have an end-to-end
  pipeline to deliver any
  Datawrapper chart
❖ McClure’s team has trained
  800+ reporters and editors
❖ Reporters can publish charts
  on their “patch”
❖ Graphics staff fielding far
  fewer requests

Slide 19


Slide 20

Text is automated
When Ben arrived at Reuters, he
learned it already had a text
automation system.

It’s called Lynx Insight. It fits
data to pre-defined templates
using carefully tailored logic.

This story is filed immediately
after new US employment
numbers are released each
month.

Slide 21

Why not graphics?
The graphics department head,
Matt Weber, long wanted to
automate graphics too.

As with Lynx Insight, it could
boost speed, increase volume
and allow highly-skilled talent
to focus on higher-skill work.

So Ben set out to try.

Slide 22

Feeding the funnel
Ben learned how Jon’s
distribution tools work.

His life flashed before his eyes.

Jon’s ingestion system for
Datawrapper was, in the
metaphorical parlance of Ben’s
tronc overlords, a funnel.

Ben just needed to figure out
how to feed it.

Slide 23

Enter the API
APIs allow programmers to
access online services with
code.

Datawrapper’s API allows users
to automatically generate
charts and maps.

All Ben had to do was send
instructions over the web with a
special access token.

Slide 24

Python is cool
Sergio Sánchez Zavala created
an open-source package that
lets you access the API using
the Python programming
language.

If you know Python, it’s easy to
use.

Ben knew Python.

Slide 25

Our advantage
Reuters is the exclusive news
provider for LSEG, a financial
service that competes with the
infamous Bloomberg Terminal.

That means we have access to
a high-quality, rapidly updating
feed of newsmaking numbers.

It’s the top source for Reuters
graphics, but reporters have to
claw out data files and paste
them into Datawrapper.

That’s slow.

Slide 26

Another API
Ben learned that the LSEG
system also offers an API.

He found its open-source
Python package.

He got excited.

Slide 27

The missing link
Ben realized that Python code
could download data from
LSEG’s API and then upload
charts to Datawrapper’s API.

All he needed was an “ETL”
pipeline that connected the two
systems.

So he wrote it.

Slide 28

The pipeline in theory

Slide 29

The pipeline in reality

Slide 30

For example
Here is Python code that —
using a set of custom ETL
helpers — creates a line chart of
the unemployment rate.

It’s just one small snippet within
a large system, but it shows the
basic bits needed for each chart
template.

Slide 31

Actions as platform
The system is run via Actions,
the powerful task runner
included with GitHub.

Yes, Actions is the production
environment.

Yes, it works.

Yes, it’s virtually free.

Yes, you should do this.

Slide 32

Down the funnel
After an Action makes a new
chart via the Datawrapper API,
Jon’s system picks it up and
does the rest.

The templated charts drop into
our graphics pool, just like the
custom charts made by our
staff.

Slide 33

Speed wins
The result is that when a
newsmaking number hits LSEG,
an automated chart can be
ready in minutes.

We’re seeing our charts land
even faster than our text
stories.

Slide 34

Scary scale
The templates can easily be
extended to sibling data series.

This allows our system to scale
far beyond what any human
could do.

A powerful example is our bar
chart template for corporate
earnings reports.

It can instantly make a chart for
each of the thousands of stocks
tracked by LSEG.

Slide 35

Freedom rings
Ally Levine had to log on early
on Fridays to manually make
that unemployment rate chart.

Now the robot does the work.

Ally gets to sleep in and do
things like this instead.

Slide 36

Putting up numbers
We’ve been up and running for a
little more than six months.

Thus far, we have nearly 60
templates, including a few that
branch out beyond LSEG and
Datawrapper.

All told we’ve pushed through
roughly 25,000 charts.

Slide 37

Merging back
Ben teamed up with Sergio to
expand and improve the
Datawrapper package for
Python.

It now covers 100% of API
features.

Slide 38

Python API code in reality

Slide 39

Python API code in theory

Slide 40

You must learn
Ben and Sergio created a
tutorial that shows newbies
how to use the Datawrapper API
with Python.

It was a standing-room only
event at the recent NICAR
conference in Baltimore.

It’s fully scripted and free to all
on Ben’s website.

Slide 41

Thank you!
Slides available at bit.ly/bff-dvs

Downloads

Slides PDF · Extracted slide text