dataCubes:
  - name: covid19
    title: COVID-19
    description: |
      Data on COVID-19 (coronavirus) by [Our World in Data](https://github.com/owid/covid-19-data/tree/master/public/data).
      ---
      Hasell, J., Mathieu, E., Beltekian, D. et al. A cross-country database of COVID-19 testing. Sci Data 7, 345 (2020).
      [https://doi.org/10.1038/s41597-020-00688-8](https://doi.org/10.1038/s41597-020-00688-8)

    clusterName: native
    source: assets/data/owid-covid-data-2021-01-29.json
    timeAttribute: time

    refreshRule:
      rule: fixed
      time: 2021-01-29T00:00:00.000Z

    introspection: no-autofill

    defaultDuration: P1Y
    defaultSelectedMeasures: [ "cases", "deaths", "tests", "vaccinations" ]
    defaultPinnedDimensions: [ "location" ]

    subsetFormula: $location.in(["World"]).not()

    dimensions:
      - name: time
        title: Time
        formula: $time
        kind: time
        granularities: [ 'P1D', 'P1W', 'P1M', 'P3M', 'P1Y' ]
        timeShiftDurations: [ 'P1W', 'P1M', 'P3M', 'P6M' ]
        latestPeriodDurations: [ 'P1D', 'P1W', 'P1M', 'P3M', 'P1Y' ]

      - name: geography_group
        title: Geography
        dimensions:
          - name: location
            title: Location
            description: Geographical location, typically country name.
            formula: $location
          - name: continent
            title: Continent
            description: Continent of the geographical location.
            formula: $continent

      - name: population_group
        title: Population
        dimensions:
          - name: population
            title: Population
            description: Population in 2020 (millions)
            formula: $population.divide(1000000).fallback(-1)
            kind: number
          - name: population_density
            title: Population Density
            description: Number of people divided by land area, measured in square kilometers, most recent year available.
            formula: $population_density.fallback(-1)
            kind: number
          - name: reproduction_rate
            title: Reproduction Rate
            description: |
              Estimate of the effective reproduction rate (R) of COVID-19 (percent)
              [https://doi.org/10.2139/ssrn.3581633](https://doi.org/10.2139/ssrn.3581633).
            formula: $reproduction_rate.multiply(100).fallback(-1)
            kind: number
          - name: life_expectancy
            title: Life Expectancy
            description: Life expectancy at birth in 2019 (years).
            formula: $life_expectancy.fallback(-1)
            kind: number
          - name: median_age
            title: Median Age
            description: Median age of the population (years).
            formula: $median_age.fallback(-1)
            kind: number
          - name: aged_65_older
            title: Aged 65 Or Older
            description: Share of the population that is 65 years and older (% of population).
            formula: $aged_65_older.fallback(-1)
            kind: number
          - name: male_smokers
            title: Male Smokers
            description: Share of men who smoke, most recent year available (% of population).
            formula: $male_smokers.fallback(-1)
            kind: number
          - name: female_smokers
            title: Female Smokers
            description: Share of women who smoke, most recent year available (% of population).
            formula: $female_smokers.fallback(-1)
            kind: number
          - name: diabetes_prevalence
            title: Diabetes Prevalence
            description: Diabetes prevalence (% of population aged 20 to 79) in 2017
            formula: $diabetes_prevalence.fallback(-1)
            kind: number
          - name: cardiovasc_death_rate
            title: Cardiovasc Death Rate
            description: Death rate from cardiovascular disease in 2017 (annual number of deaths per 100,000 people)
            formula: $cardiovasc_death_rate.fallback(-1)
            kind: number

      - name: development_indicators_group
        title: Development Indicators
        dimensions:
          - name: gdp_per_capita
            title: GDP Per Capita
            description: Gross domestic product at purchasing power parity (thousands).
            formula: $gdp_per_capita.divide(1000).fallback(-1)
            kind: number
          - name: extreme_poverty
            title: Extreme Poverty
            description: Share of the population living in extreme poverty (% of population).
            formula: $extreme_poverty.fallback(-1)
            kind: number

          - name: human_development_index
            title: Human Development Index
            description: |
              Summary measure of average achievement in key dimensions of human development: a long and healthy life,
              being knowledgeable and have a decent standard of living (scale 0-100).
            formula: $human_development_index.multiply(100).fallback(-1)
            kind: number

          - name: stringency_index
            title: Stringency Index
            description: |
              Government Response Stringency Index: composite measure based on 9 response indicators including
              school closures, workplace closures, and travel bans,
              rescaled to a value from 0 to 100 (100 = strictest response).
            formula: $stringency_index.fallback(-1)
            kind: number

    measures:
      - name: cases_group
        title: Cases
        measures:
          - name: cases
            title: Cases
            formula: $main.sum($new_cases)
          - name: cases_per_million
            title: Cases Per Million
            formula: $main.sum($new_cases_per_million)

      - name: deaths_group
        title: Deaths
        measures:
          - name: deaths
            title: Deaths
            formula: $main.sum($new_deaths)
          - name: deaths_per_million
            title: Deaths Per Million
            formula: $main.sum($new_deaths_per_million)

      - name: tests_group
        title: Tests
        measures:
          - name: tests
            title: Tests
            formula: $main.sum($new_tests)
          - name: tests_per_thousand
            title: Tests Per Thousand
            formula: $main.sum($new_tests_per_thousand)
          - name: tests_per_case
            title: Tests Per Case
            formula: $main.average($tests_per_case)
          - name: positive_rate
            title: Positive Rate
            formula: $main.average($positive_rate)
            format: '0.00%'

      - name: vaccinations_group
        title: Vaccinations
        measures:
          - name: vaccinations
            title: Vaccinations
            formula: $main.sum($new_vaccinations)
          - name: vaccinations_per_million
            title: Vaccinations Per Million
            formula: $main.sum($new_vaccinations_smoothed_per_million)

      - name: patients_group
        title: Patients
        measures:
          - name: hosp_patients
            title: Hospital Patients
            formula: $main.sum($hosp_patients)
          - name: hosp_patients_per_million
            title: Hospital Patients Per Million
            formula: $main.sum($hosp_patients_per_million)
          - name: icu_patients
            title: ICU Patients
            formula: $main.sum($icu_patients)
          - name: icu_patients_per_million
            title: ICU Patients Per Million
            formula: $main.sum($icu_patients_per_million)

      - name: count
        title: Records count
        formula: $main.count()

  - name: unemployment
    title: Unemployment Across Industries
    description: |
      Data cube with unemployment count across industriess in 2000-2010.
      ---
      *Based on vega-datasets*. [Source repository](https://github.com/vega/vega-datasets/blob/master/data/unemployment-across-industries.json)
    clusterName: native
    source: assets/data/unemployment-2016-02-18.csv
    timeAttribute: date

    refreshRule:
      rule: fixed
      time: 2010-02-01T08:00:00.000Z

    defaultDuration: P1D
    defaultSortMeasure: count
    defaultSelectedMeasures: [ "count" ]
    introspection: no-autofill
    dimensions:
      - name: date
        title: Date
        kind: time
        formula: $date

      - name: industry
        title: Industry
        formula: $industry

    measures:
      - name: count
        title: Count
        formula: $main.sum($count)

  - name: 2016-rio
    title: Rio 2016 Olympics Athletes
    description: |
      All athletes attending Rio 2016 Olympics

    clusterName: native
    source: assets/data/rio2016-athletes.csv
    introspection: no-autofill
    timeAttribute: __time
    refreshRule:
      rule: fixed
      time: 2016-01-01T00:00:00.000Z

    defaultDuration: P1M
    defaultSortMeasure: gold
    defaultSelectedMeasures:
      - gold
      - silver
      - bronze
    defaultPinnedDimensions:
      - sex
      - sport

    dimensions:
      - name: __time
        kind: time
        formula: $__time
      - name: nationality
        formula: $nationality
      - name: sex
        formula: $sex
      - name: sport
        formula: $sport
      - name: weight
        formula: $weight
        kind: number
      - name: height
        formula: $height
        kind: number
    measures:
      - name: gold
        title: Gold medals
        formula: $main.sum($gold)
        format: 0,0a
      - name: silver
        title: Silver medals
        formula: $main.sum($silver)
        format: 0,0a
      - name: bronze
        title: Bronze medals
        formula: $main.sum($bronze)
        format: 0,0a

  - name: 2019-weather
    title: Weather in 2019
    description: |
      Weather data for 2019 for USA cities

    clusterName: native
    source: assets/data/2019-weather.json
    introspection: no-autofill
    timeAttribute: time
    refreshRule:
      rule: fixed
      time: 2019-12-31T00:00:00.000Z

    defaultDuration: P1M
    defaultSortMeasure: min_temp
    defaultSelectedMeasures:
      - min_temp
      - max_temp
      - precipitation
    defaultPinnedDimensions:
      - city

    dimensions:
      - name: time
        kind: time
        formula: $time
      - name: city
        formula: $city
      - name: conditions
        formula: $conditions
        multiValue: true
    measures:
      - name: temperatures
        measures:
          - name: min_temp
            title: Minimal temperature
            formula: $main.min($min_temp)
          - name: max_temp
            title: Maximal temperature
            formula: $main.max($max_temp)
      - name: wind_speed
        title: Average wind speed
        formula: $main.average($wind_speed)
      - name: precipitation
        title: Average precipitation
        formula: $main.average($precipitation)
        format: "0,0.00a"
        units: "%"
      - name: cloud_cover
        title: Average cloud cover
        formula: $main.average($cloud_cover)
        format: "0,0.00a"
        units: "%"

  - name: lax-flights
    title: LAX Flights
    description: |
      LAX Passenger Traffic By Terminal

    clusterName: native
    source: assets/data/lax-flights.csv
    introspection: no-autofill
    timeAttribute: __time
    refreshRule:
      rule: fixed
      time: 2019-03-01T00:00:00.000Z

    defaultDuration: P1Y
    defaultSortMeasure: arrivals
    defaultSelectedMeasures:
      - arrivals
      - departures
    defaultPinnedDimensions:
      - flight

    dimensions:
      - name: __time
        kind: time
        latestPeriodDurations:
          - P6M
          - P1Y
          - P2Y
          - P3Y
          - P6Y
        timeShiftDurations:
          - P1Y
          - P2Y
          - P2Y
          - P5Y
        granularities:
          - P1M
          - P3M
          - P6M
          - P1Y
          - P2Y
        formula: $__time
      - name: terminal
        title: Terminal
        formula: $terminal
      - name: flight
        title: Flight type
        formula: $flight
    measures:
      - name: arrivals
        title: Arriving Passenger Count
        formula: $main.sum($arrivals)
      - name: departures
        title: Departing Passenger Count
        formula: $main.sum($departures)

  - name: penguins
    title: Palmer Penguins
    description: |
      This data cube contains size measurements for three penguin species observed on three islands in the Palmer Archipelago, Antarctica.

    clusterName: native
    source: assets/data/palmer-penguins.csv
    introspection: no-autofill
    timeAttribute: __time
    refreshRule:
      rule: fixed
      time: 2009-01-01T00:00:00.000Z

    defaultDuration: P1D
    defaultSortMeasure: body_mass
    defaultSelectedMeasures:
      - body_mass
      - bill_length
      - bill_depth
      - flipper_length
    defaultPinnedDimensions:
      - species

    dimensions:
      - name: __time
        kind: time
        formula: $__time
      - name: species
        title: Species
        formula: $species
      - name: island
        formula: $island
      - name: sex
        formula: $sex
    measures:
      - name: bill_length
        title: Average bill length
        formula: $main.average($bill_length)
      - name: bill_depth
        title: Average bill depth
        formula: $main.average($bill_depth)
      - name: flipper_length
        title: Average flipper length
        formula: $main.average($flipper_length)
      - name: body_mass
        title: Average body mass
        formula: $main.average($body_mass)

  - name: wiki
    title: Wikipedia
    description: |
      Data cube with *Wikipedia* data.
      ---
      Contains data about Wikipedia editors and articles with information about edits, comments and article metadata

      *Based on wikiticker from 2015-09-12*
    clusterName: native
    source: assets/data/wikiticker-2015-09-12.json
    timeAttribute: time

    refreshRule:
      rule: fixed
      time: 2015-09-13T00:00:00.000Z

    defaultDuration: P1D
    defaultSortMeasure: added
    defaultSelectedMeasures: [ "added" ]

    defaultPinnedDimensions: [ "channel","namespace","isRobot" ]
    introspection: no-autofill
    attributeOverrides:
      - name: sometimeLater
        type: TIME

      - name: commentLength
        type: NUMBER

      - name: deltaBucket100
        type: NUMBER

    dimensions:
      - name: time
        title: Time
        kind: time
        formula: $time

      - name: channel
        title: Channel
        formula: $channel

      - name: cityName
        title: City Name
        formula: $cityName

      - name: comments
        title: Comments
        dimensions:

          - name: comment
            title: Comment
            formula: $comment

          - name: commentLengths
            title: Comment Lengths
            description: Length of the comment
            dimensions:

              - name: commentLength
                title: Comment Length
                kind: number
                description: |
                  Lengths of *all* comments
                formula: $commentLength

              - name: commentLengthOver100
                title: Comment Length Over 100
                description: |
                  `true` only if comment length is over `100`
                kind: boolean
                formula: $commentLength > 100

      - name: countryIso
        title: Country ISO
        formula: $countryIsoCode

      - name: countryName
        title: Country Name
        formula: $countryName

      - name: deltaBucket100
        title: Delta Bucket
        kind: number
        formula: $deltaBucket100

      - name: isAnonymous
        title: Is Anonymous
        kind: boolean
        formula: $isAnonymous

      - name: isMinor
        title: Is Minor
        kind: boolean
        formula: $isMinor

      - name: isNew
        title: Is New
        kind: boolean
        formula: $isNew

      - name: isRobot
        title: Is Robot
        kind: boolean
        formula: $isRobot

      - name: isUnpatrolled
        title: Is Unpatrolled
        formula: $isUnpatrolled

      - name: metroCode
        title: Metro Code
        formula: $metroCode

      - name: namespace
        title: Namespace
        formula: $namespace

      - name: page
        title: Page
        formula: $page

      - name: regionIso
        title: Region ISO
        formula: $regionIsoCode

      - name: regionName
        title: Region Name
        formula: $regionName

      - name: user
        title: User
        formula: $user

      - name: userChars
        title: User Chars
        formula: $userChars

    measures:
      - name: rowsAndDeltas
        title: Rows & Deltas
        measures:

          - name: count
            title: Rows
            formula: $main.count()

          - name: deltas
            title: Deltas
            measures:

              - name: delta
                title: Delta
                formula: $main.sum($delta)

              - name: avg_delta
                title: Avg Delta
                formula: $main.average($delta)

      - name: added
        title: Added
        description: |
          Sum of all additions
        formula: $main.sum($added)

      - name: avg_added
        title: Avg Added
        formula: $main.average($added)

      - name: deleted
        title: Deleted
        description: |
          Sum of all deletions
        formula: $main.sum($deleted)

      - name: avg_deleted
        title: Avg Deleted
        formula: $main.average($deleted)

      - name: unique_users
        title: Unique Users
        formula: $main.countDistinct($user)

pageMustLoadTimeout: 5000

customization:
  messages:
    dataCubeNotFound: |
      Oh no! We looked hard but couldn't find your data cube. Sorry.
  urlShortener: |
    // also available: context.clientIp
    return request.get('http://tinyurl.com/api-create.php?url=' + encodeURIComponent(url))
