Oulier Logo
💡 New Course Dates: Learn to tell stories with data
Consumer Prices Tracker Click for the full list
2024-02-28 women film column from 2016 with edits
Rhino poaching Feb 2024
FireSeason 2024-02-27
Marathon 2024-02-15

When programs such as Flourish or Datawrapper don’t have the map format you need, you can make your own custom map. Here’s how.

If you’re planning on building projects in SvelteKit, it needs a slightly different set-up to Leaflet.js. Here’s what you need to do to get it to work.

It has a pretty steep learning curve but it’s definitely worth the effort to learn OpenRefine if you need to clean large amounts of very messy data.

At The Outlier we publish a lot of static graphics and we like to apply our own styles. Here’s how we do it using Flourish and Figma.

Papers, PDFs and poorly scanned documents are the way most data journalism projects begin. But instead of typing up a new spreadsheet, here’s how to use Adobe Acrobat DC to do all the hard work for you.

Both Microsoft Excel and Google Sheets are powerful spreadsheet programmes for storing and sorting through mounds of data. Here are our favourite formulas for making sense of data.

In the latest in our series on creating African election maps, we explain how to find data on Zimbabwean elections and how to map it.

When we teach data journalism most people are eager to make a map but they’re usually unsure of where to get data for a map. And while there are many good sources for map data, if you’re looking for something, like a particular town or neighbourhood, that’s not always so easy. One solution is to […]

This is a simple(ish) guide to finding and extracting features from a larger map into a smaller one. In this example selected rivers in South Africa are copied into a new GeoJSON format file. Start with a shapefile and QGIS. This shapefile is of rivers in South Africa and is a good example of selecting […]

Although creating complex sites with multiple components in SvelteKit is pretty simple already, creating a library for your most regularly used components adds even more power to your projects. With a set of common components set up as an NPM package you can easily import them into your projects, and when you change one component […]

Streaming promises makes it simple to fetch data without having the page wait for non-essential data requests to complete before starting to render.

When you’re working with maps there are often parts you want to remove. For example, most maps of South Africa will include Marion and Prince Edward Island, two small research islands more than 2,000km off the coast of mainland South Africa. In most cases when mapping South African data you do not want to include […]

There are a number of reasons you may want to make a grid of points covering a geographic area. In my case, I wanted to work out which point in South Africa was the furthest from a police station. The idea was to create a grid with points 1km apart. Then I could compare the […]

Downloading data from a Google Spreadsheet is usually as easy as clicking file->Download->CSV But sometimes you need to automate the download. You can either do this by publishing a CSV version of the file (file→share→Publish to the web) if you have editing access to the file. If you don’t have editing access you can still […]

In mid-2022 we set out to build a new tool for collecting, sharing and publishing data, one specifically aimed at African journalists. The motivation to build the tool was born out of our experience tracking Covid-19 data in South Africa first and then across the continent. For two years from March 2020 we had collected Covid-19 […]

More Tools: Consumer Prices