BookmarkSubscribeRSS Feed

The Visual Analytics Alphabet Series – The Data

Started ‎05-07-2026 by
Modified ‎08-21-2026 by
Views 532

Because the Visual Analytics Alphabet Series was inspired at the screening of a horror movie (see A is for Aggregated Data), most of the data used in this series is horror based.

 

HORROR_MOVIES

HORROR_MOVIES from Kaggle, a data set of horror films from 1950 – 2022, was extracted from The Movie Database (TMDB) using the TMDB API. The Movie Database is a community built movie and TV database that contains information about movies, TV shows, cast, and community reviews.

If you would like to use the TMDB API for your own data adventures, check out the documentation.

 

Name Label Description Unique Count Range
id Movie ID Unique ID for TMDB, used to construct link to movie page 32,540  
original_title Original Title Original movie title 30,294  
title Movie Title Movie title 29,563  
original_language Original Lanugage Language in which the movie was made (for example, en for English, no for Norwegian, de for German) 97  
overview Description Description of movie 31,021  
tagline Tagline Tagline of movie 12, 514  
release_date Release Date Release date (mm/dd/yyyy) 10,999  
poster_path Poster Image Unique name of the movie poster. This can be used to generate a link to the poster image. 28,049  
popularity Popularity Score Lifetime popularity score generated by the community. For movies, this is based on daily metrics (like number of votes, number of views, times favorited, times watchlisted), release date, total votes, and the previous day’s score. Higher scores indicate movies that have been widely viewed, rated, and engaged with over time.   0 - 5,088.584
vote_count # User Ratings Number of user ratings for movie   0 - 16,900
vote_average User Score (1-1) Average rating for movie. Ratings range from 1 to 10 stars.   0.5 - 10
budget Budget (in $) Budget of movie in US dollars   $1 - $200,000,000
revenue Revenue (in $) Revenue made from movie in US dollars   $1 -$701.842,551
runtime Movie Runtime (min) Official runtime of movie (in minutes)   1 - 683
status Movie Status Status of movie (Released, In Production, Post Production, Planned) at time of extract (late 2022) 4  
adult <not used> <not used> <not used>  
backdrop_path Backdrop Image Unique name of movie backdrop image. This can be used to generate a link to the poster image. 13,537  
genre_name Genre(s) List of movie genres 772  
collection Collection ID ID of the collection, used to construct link to collection page. 816  
collection_name Collection Name Name of collection 816  

 

A few data cleansing techniques needed to be applied to the HORROR_MOVIES table to get the data report ready:

  • Several measures were set to zero when data was not available for those movies (for example, vote_average, budget, revenue, and runtime). These zeros were replaced with missing values.
  • Year had to be created from release_year to join the table with KILLCOUNTS
  • Some of the titles had to be modified to match the title with KILLCOUNTS

For some articles, additional steps were necessary:

A is for Aggregated Data

  • The HORROR_MOVIES and KILLCOUNTS tables were joined with an inner join on Movie Title and Year.
  • Two calculated items were created:
    • # of Movies – an aggregated measure that calculates the distinct count of movies 
      # of Movies calculated item# of Movies calculated item
    • Average Kill Count – an aggregated measure that calculates the total kill count per each distinct movie
      Average Kill Count aggregated measureAverage Kill Count aggregated measure
      For more information about creating calculated items, see E is for Expression Editor.

A is also for APIs

  • A data filter was added to the data source to only display movies that are in a specific collection. 
    Data filter using Collection ParameterData filter using Collection Parameter
  • Three calculated items were created:
    • IMDb Rating – a category data item that displays a star icon, followed by the IMDb score out of ten (for example, ⭐7.2/10) 
      IMDb Rating calculated columnIMDb Rating calculated column
    • Movie Runtime – a category data item that displays movie runtime in hours and minutes (for example, 1h 39m) 
      Movie Runtime calculated columnMovie Runtime calculated column
    • Release Year (numeric) – a measure data item that converts Release Year to a number. This data item can be used to sort data in objects. 
      Release Year (numeric) calculated columnRelease Year (numeric) calculated column
      For more information about creating calculated items, see E is for Expression Editor.

B is for Best Practices

  • The HORROR_MOVIES and KILLCOUNTS tables were joined with an inner join on Movie Title and Year. 
  • Two custom categories were created:
    • Decade – groups release years into categories: Before 1980, 1980s, 1990s, 2000s, 2010s, and 2020s
    • Subgenre – groups movie collections (franchises) into categories, like Vampires, Iconic Horror, Found Footage, Zombies, and Killer Dolls & Objects.
      For more information about how subgenres were created using SAS Viya Copilot, see C is also for SAS Viya Copilot.
  • Four calculated items were created:
    • Movie (Release Year) – a category data item that combines Movie Title and release year (as some movies have the same name).
       Calculation for Movie (Release Year)Calculation for Movie (Release Year)
    • Kills per Minute – a measure data item that calculates the kill count per minute
      Calculation for Kills per MinuteCalculation for Kills per Minute
    • ROI – a measure data item that calculates the return on investment for each movie
      Calculation for ROICalculation for ROI
    • # of Movies – an aggregated measure that calculates the distinct count of movies
      Calculation for # of MoviesCalculation for # of Movies
      For more information about creating calculated items, see E is for Expression Editor.
  • A hierarchy (Collection Hierarchy) was created of Subgenre, Collection Name, and Movie (Release Year). 
  • Two common filters were created:
    • Non-missing ROI – to show only movies that have an ROI value that is not missing
    • Revenue-Makers – to show only movies that have a revenue that is not zero or missing

C is for Customizations

  • A data filter was added to the data source to only display movies that are part of collections and that were originally made in English.
    Data filterData filter
  • The following list of subgenres were provided to assist SAS Viya Copilot in creating the value groups for Subgenre:
    • Animal Attack
    • Anthology Horror
    • Extreme Gore
    • Slasher
    • Comedy Horror
    • Found Footage
    • Ghosts & Hauntings
    • Holiday Horror
    • Iconic Horror
    • Infection
    • Killer Dolls & Objects
    • Monsters & Creatures
    • Occult & Folklore
    • Supernatural & Possession
    • Apocalypse
    • Urban Legend
    • Vampires
    • Zombies
      For more information about how subgenres were created using SAS Viya Copilot, see C is also for SAS Viya Copilot.
  • Seven calculated items were created:
    • Release Year - a category data item that displays a four digit year. This must be a category data item so we can create a custom category from a selection.
      Calculated item: Release YearCalculated item: Release Year
    • Movie (Release Year) - a category data item that combines Movie Title and release year (as some movies have the same name)
      Calculated item: Movie (Release Year)Calculated item: Movie (Release Year)
    • Budget (in $) - a measure data item that replaces budgets of zero with a missing value
      Calculated item - Budget (in $)Calculated item - Budget (in $)
    • Profit - a measure data item that calculates the profit for each movie
      Calculated item: ProfitCalculated item: Profit
    • ROI - a measure data item that calculates the return on investment for each movie
      Calculated item: ROICalculated item: ROI
    • Runtime - a measure data item that replaces runtimes of zero with a missing value
      Calculated item: RuntimeCalculated item: Runtime
    • User Score (1 - 10) - a measure data item that replaces vote_averages (user scores) of zero with a missing value
      Calculated item: User ScoreCalculated item: User Score
      For more information about creating calculated items, see E is for Expression Editor.
  • Two common filters were created:
    • Holiday Horror - to show only movies in the Holiday Horror subgenre
    • Iconic Horror - to show only movies in the Iconic Horror subgenre

C is also for SAS Viya Copilot

  • A data filter was added to the data source to only display movies that are part of collections and that were originally made in English.
    Data filterData filter
  • The following list of subgenres were provided to assist SAS Viya Copilot in creating the value groups for Subgenre:
    • Animal Attack
    • Anthology Horror
    • Extreme Gore
    • Slasher
    • Comedy Horror
    • Found Footage
    • Ghosts & Hauntings
    • Holiday Horror
    • Iconic Horror
    • Infection
    • Killer Dolls & Objects
    • Monsters & Creatures
    • Occult & Folklore
    • Supernatural & Possession
    • Apocalypse
    • Urban Legend
    • Vampires
    • Zombies

D is for Display Rules

  • A data filter was added to the data source to only display movies that are part of collections and that were originally made in English.
    Data filter for English movies in a collectionData filter for English movies in a collection
  • The following list of subgenres were provided to assist SAS Viya Copilot in creating the value groups for Subgenre:
    • Animal Attack
    • Anthology Horror
    • Extreme Gore
    • Slasher
    • Comedy Horror
    • Found Footage
    • Ghosts & Hauntings
    • Holiday Horror
    • Iconic Horror
    • Infection
    • Killer Dolls & Objects
    • Monsters & Creatures
    • Occult & Folklore
    • Supernatural & Possession
    • Apocalypse
    • Urban Legend
    • Vampires
    • Zombies
      For more information about how subgenres were created using SAS Viya Copilot, see C is also for SAS Viya Copilot.
  • Seven calculated items were created:
    • Movie (Release Year) - a category data item that combines Movie Title and release year (as some movies have the same name).
      Movie (Release Year) calculated itemMovie (Release Year) calculated item
    • Budget (in $) - a measure data item that replaces budgets of zero with a missing value.
      Budget (in $) calculated itemBudget (in $) calculated item
    • Revenue (in $) - a measure data item that replaces revenues of zero with a missing value.
      Revenue (in $) calculated itemRevenue (in $) calculated item
    • ROI - a measure data item that calculates the return on investment for each movie.
      ROI calculated itemROI calculated item
    • User Score (1 - 10) - a measure data item that replaces vote_averages (user scores) of zero with a missing value.
      User Score (1 - 10) calculated itemUser Score (1 - 10) calculated item
    • Budget per Movie - an aggregated measure that calculates total budget for each group divided by number of movies in that group.
      Budget per Movie calculated itemBudget per Movie calculated item
    • Revenue per Movie - an aggregated measure that calculates total revenue for each group divided by number of movies in that group.
      Revenue per Movie calculated itemRevenue per Movie calculated item
      For more information about creating calculated items, see E is for Expression Editor.

D is also for Data-Driven Content

  • The following list of subgenres were provided to assist SAS Viya Copilot in creating the value groups for Subgenre:
    • Animal Attack
    • Anthology Horror
    • Extreme Gore
    • Slasher
    • Comedy Horror
    • Found Footage
    • Ghosts & Hauntings
    • Holiday Horror
    • Iconic Horror
    • Infection
    • Killer Dolls & Objects
    • Monsters & Creatures
    • Occult & Folklore
    • Supernatural & Possession
    • Apocalypse
    • Urban Legend
    • Vampires
    • Zombies
      For more information about how subgenres were created using SAS Viya Copilot, see C is also for SAS Viya Copilot.
  • Six calculated items were created:
    • Movie (Release Year) – a category data item that combines Movie Title and release year (as some movies have the same name).
      Movie (Release Year) calculated itemMovie (Release Year) calculated item
    • Movie Runtime (min) – a measure data item that replaces movie runtimes of zero with a missing value.
      Movie Runtime (min) calculated itemMovie Runtime (min) calculated item
    • Movie Runtime – a category data item that displays movie runtime in hours and minutes (for example, 1h 39m).
      Movie Runtime calculated itemMovie Runtime calculated item
    • Budget (in $) – a measure data item that replaces budgets of zero with a missing value.
      Budget (in $) calculated itemBudget (in $) calculated item
    • Revenue (in $) – a measure data item that replaces revenues of zero with a missing value.
      Revenue (in $) calculated itemRevenue (in $) calculated item
    • User Score (1 – 10) – a measure data item that replaces vote_averages (user scores) of zero with a missing value.
      User Score (1-10) calculated itemUser Score (1-10) calculated item
      For more information about creating calculated items, see E is for Expression Editor.
  • Five parameters were created to display category values using the Text object:
    • Collection Name Parameter – a character parameter that contains the name of the collection for the selected movie
    • Genre(s) Parameter – a character parameter that contains the genre(s) of the selected movie
    • Movie Runtime Parameter – a character parameter that contains the movie runtime of the selected movie
    • Original Language Parameter – a character parameter that contains the original language of the selected movie
    • Release Year Parameter – a character parameter that contains the release year of the selected movie
      Note: Only measures or parameters can be displayed in a Text object. Category values were assigned to parameters (using control objects) and referenced within text objects, which enables custom formatting options that are not available in other object types.
  • A link to the poster image of the movie can be generated by concatenating the base URL (https://image.tmdb.org/t/p/w500) with the Poster Image path (/xOjcaWBNG2PvylJOhlkaqaAAKUr.jpg).
  • A link to the backdrop image of the movie can be generated by concatenating the base URL (https://image/tmdb.org/t/p/original) with the Backdrop Image path (/58BUQzjN6TH0bLe6JEfgMbHc55u.jpg).

E is for Expression Editor

  • A data filter was added to the data source to only display movies that are part of collections and that were originally made in English.
    Data filterData filter
  • Six calculated items were created:
    • Budget (in $) - a measure data item that replaces budgets of zero with a missing value
      Budget (in $) calculated itemBudget (in $) calculated item
    • Revenue (in $) - a measure data item that replaces revenues of zero with a missing value
      Revenue (in $) calculated itemRevenue (in $) calculated item
    • User Score (1-10) - a measure data item that replaces vote_averages (user scores) of zero with a missing value
      User Score (1-10) calculated itemUser Score (1-10) calculated item
    • ROI - a measure data item that calculates the return on investment for each movie
      ROI calculated itemROI calculated item
    • IMDb Rating - a category data item that displays a star icon, followed by the IMDb score out of ten (for example, ⭐7.2/10)
      IMDb Rating calculated itemIMDb Rating calculated item
    • Budget per Movie - an aggregated measure that calculates total budget for each group divided by the number of movies in that group
      Budget per Movie calculated itemBudget per Movie calculated item
  • An expression-based parameter was created:
    • Total Ratings (All Data) - a measure parameter that calculates the total number of ratings in the table
      Total Ratings (All Data) expression-based parameterTotal Ratings (All Data) expression-based parameter

KILLCOUNTS

KILLCOUNTS from Github, a data set of horror films from 1922-2025, was sourced from community projects (like Dead Meat, MovieBodyCounts, List of Deaths Wiki, and work done by Randal Olson.

 

Name Label Description Unique Count Range
title Movie Title Movie Title 469  
year Release Year Release year 63  
count Kill Count Total confirmed kills   1 - 4,295
tmdb_id TMDB ID The Movie Database (TMDB) unique ID 482  

 

A few data cleansing techniques needed to be applied to the KILLCOUNTS table to get the data report ready:

  • In the original table, year is stored as a category. It was converted to a date in Visual Analytics using the DateFromMDY and TreatAs functions.
    Data_YearCalculation.png

 

HAUNTED_PLACES

HAUNTED_PLACES from Kaggle, a data set of haunted places in the United States was compiled by Tim Renner using The Shadowlands Haunted Places Index.

 

Name Label Description Unique Count Range
city City City where the haunted place is located 4,285  
country Country Country where the haunted place is located (all United States) 1  
description Description Description of the haunted place 10,979  
location Location Name of the haunted place 9,691  
state State US state where the haunted place is located 51  
state_abbrev state_abbrev US two-letter state abbreviation where the haunted place is located 51  
longitude Location Longitude Longitude of the haunted place   -164.7224104 - -66.6667528
latitude Location Latitutde Latitude of the haunted place   19.632069 - 66.8925886
city_longitude City Longitude Longitude of the city center   -164.7238888 - -67.8402316
city_latitude City Latitude Latitude of the city center   19.5756191 - 66.8983333

 

A few data cleansing techniques needed to be applied to the HAUNTED_PLACES table to get the data report ready:

  • Location values were modified to ensure consistency. For example, Saint Peters Catholic Church was standardized to St Peters Catholic Church.
  • Unique ID was created when importing the Microsoft Excel file by selecting Create unique ID column in the Import Data window. This creates a column that has a unique value for each row, which can be used for text analytics.
  • AI was used to group locations into 9 distinct Haunting Locations:
    • Cemeteries & Graveyards
    • Homes & Residences
    • Hospitals & Asylums
    • Hotels & Lodging
    • Parks & Natural Areas
    • Roads, Bridges & Paths
    • Schools & Universities
    • Theatres & Entertainment
    • Other Buildings/Places
  • AI was used to group descriptions of hauntings into 8 distinct Haunting Categories:
    • Auditory Phenomena
    • Entity-Based
    • Environmental Effects
    • Experiential States
    • Narrative/Historical
    • Physical Interactions
    • Visual Manifestations
    • Mixed/Unclassified
  • AI was used to group descriptions of hauntings into 14 distinct Haunting Types:
    • Animal Spirit
    • Apparitions & Full-Body Ghosts
    • Child Spirit
    • Demonic or Malevolent Entity
    • Disembodied Sounds & Voices
    • Environmental & Emotional Sensations
    • Lights, Orbs & Shadow Phenomena
    • Location-Bound Entity
    • Poltergeist/Object Movement
    • Residual/Repeating Event
    • Sleep & Bedroom Encounters
    • Tragic Death Residual Haunting
    • Other/Mixed Phenomena
    • Unspecified

 

This product uses the TMDB API but is not endorsed or certified by TMDB.

Data_TMDBLogo.png

Contributors
Version history
Last update:
‎08-21-2026 11:50 AM
Updated by:

Viya Copilot Motion Graphic.gifViya Copilot Motion Graphic

Ready to see what SAS Viya Copilot can do?

Visit the Tips & Tricks page for setup guidance, demos, and practical examples that show how Copilot supports your workflows.

Get Started →

SAS AI and Machine Learning Courses

The rapid growth of AI technologies is driving an AI skills gap and demand for AI talent. Ready to grow your AI literacy? SAS offers free ways to get started for beginners, business leaders, and analytics professionals of all skill levels. Your future self will thank you.

Get started

Article Tags