Monthly Patterns

Monthly Patterns corresponds to the SafeGraph Patterns dataset. It represents the place traffic and demographic aggregations that answer questions like "how often people visit", "how long they stay", "where they came from", "where else they go", and more. Available for ~4.4MM POI.

📘

Specifying a Date

Note that the monthly_patterns data set includes historical data. Each query must specify a date (as show in the below examples).

Sample Query containing all fields:

query {
  lookup(placekey: "225-222@5vg-7gs-t9z") {
    monthly_patterns (start_date: "2022-02-01", end_date: "2022-02-28") {
      placekey
      location_name
      street_address
      city
      region
      postal_code
      brands {
        brand_id
        brand_name
      }
      date_range_start
      date_range_end
      raw_visit_counts
      raw_visitor_counts
      visits_by_day
      poi_cbg
      popularity_by_hour
      visitor_home_cbgs
      visitor_home_aggregation
      visitor_daytime_cbgs
      visitor_country_of_origin
      distance_from_home
      bucketed_dwell_times
      median_dwell
      related_same_day_brand
      related_same_month_brand
      popularity_by_day
      device_type
    }
  }
}

Sample Query containing all fields:

{
  "data": {
    "lookup": {
      "monthly_patterns": [
        {
          "placekey": "225-222@5vg-7gs-t9z",
          "location_name": "McDonald's",
          "street_address": "1100 Fillmore St",
          "city": "San Francisco",
          "region": "ca",
          "postal_code": "94115",
          "brands": [
            {
              "brand_id": "SG_BRAND_5179b21fc1d50950b99b4eecaa48c614",
              "brand_name": "McDonald's"
            }
          ],
          "date_range_start": "2022-02-01T00:00:00-08:00",
          "date_range_end": "2022-03-01T00:00:00-08:00",
          "raw_visit_counts": 526,
          "raw_visitor_counts": 366,
          "visits_by_day": [
            18,
            22,
            26,
            21,
            27,
            12,
            16,
            14,
            25,
            14,
            22,
            24,
            18,
            21,
            12,
            15,
            28,
            16,
            18,
            15,
            14,
            16,
            16,
            20,
            24,
            21,
            14,
            17
          ],
          "poi_cbg": "060750161003",
          "popularity_by_hour": [
            36,
            26,
            26,
            14,
            4,
            6,
            6,
            18,
            33,
            25,
            26,
            20,
            31,
            30,
            28,
            34,
            35,
            39,
            40,
            34,
            45,
            38,
            34,
            33
          ],
          "visitor_home_cbgs": {
            "060750161003": 10,
            "060750161004": 8,
            "060750164001": 7,
            "060750353006": 6,
            "060379201041": 6,
            "060750452002": 5,
            "060750176013": 5,
            "060816060001": 5,
            "060750208003": 5,
            "060750158012": 5,
            "060750451003": 4,
            "060014227003": 4,
            "060750159001": 4,
            "060750123021": 4,
            "060750302021": 4,
            "060750234002": 4,
            "060750477013": 4,
            "060670067023": 4,
            "060133160001": 4,
            "060750176012": 4,
            "060750203002": 4,
            "060190074003": 4,
            "060770051221": 4,
            "060750157003": 4,
            "060750152001": 4,
            "060750607003": 4,
            "060014446022": 4,
            "060750101002": 4,
            "060133020091": 4,
            "060770004024": 4,
            "060014228002": 4,
            "060014501021": 4,
            "060014015001": 4,
            "060750261003": 4,
            "060530142011": 4,
            "060133131031": 4,
            "060750328013": 4,
            "060971513104": 4,
            "060750154003": 4,
            "060990025032": 4,
            "060670081191": 4,
            "060670093072": 4,
            "060750607001": 4,
            "060750332011": 4,
            "060750161002": 4,
            "060750158013": 4,
            "060390005032": 4,
            "060750162003": 4,
            "060990028022": 4,
            "060670093292": 4,
            "060375773002": 4,
            "060750204013": 4,
            "060750231021": 4,
            "060133361024": 4,
            "060750210001": 4,
            "060750161001": 4,
            "060750168013": 4,
            "060750157004": 4,
            "060670062013": 4,
            "060750156001": 4,
            "060019832001": 4,
            "060750151001": 4,
            "060750614002": 4,
            "060750229032": 4,
            "060750126011": 4,
            "060816008001": 4,
            "060750327001": 4,
            "060750232003": 4,
            "060750303023": 4,
            "060590994153": 4,
            "060750332031": 4,
            "060190052032": 4,
            "060750330004": 4,
            "060750479022": 4,
            "060710091141": 4,
            "060750179021": 4,
            "060816034001": 4,
            "060190062024": 4,
            "060670061022": 4,
            "060750167004": 4,
            "060816058003": 4,
            "060750108003": 4,
            "060133923001": 4,
            "060750615006": 4,
            "060750326022": 4,
            "060372079001": 4,
            "060750476001": 4,
            "060819843001": 4
          },
          "visitor_home_aggregation": {
            "06075016100": 22,
            "06075015801": 11,
            "06075017601": 11,
            "06001450102": 7,
            "06075026200": 6,
            "06037920104": 6,
            "06075035300": 6,
            "06075015700": 5,
            "06099000803": 5,
            "06075016200": 5,
            "06075047600": 5,
            "06019007400": 4,
            "06075015100": 4,
            "06075016600": 4,
            "06075060700": 4,
            "06075020800": 4,
            "06075015900": 4,
            "06075010100": 4,
            "06029001700": 4,
            "06075033201": 4,
            "06075015200": 4,
            "06019005203": 4,
            "06075022903": 4,
            "06081984300": 4,
            "06075016400": 4,
            "06081601502": 4,
            "06075020100": 4,
            "06075047802": 4,
            "06095252607": 4,
            "06075013200": 4,
            "06075023200": 4,
            "06013314200": 4,
            "06067006702": 4,
            "06081606200": 4,
            "06053014201": 4,
            "06077003801": 4,
            "06075012602": 4,
            "06067007424": 4,
            "06001437102": 4,
            "06075010800": 4,
            "06075023400": 4,
            "06075013400": 4,
            "06075016700": 4,
            "06001433500": 4,
            "06075021500": 4,
            "06075033203": 4,
            "06081601100": 4,
            "06059011504": 4,
            "06075032802": 4,
            "06053000104": 4,
            "06075060100": 4,
            "06075015400": 4,
            "06013381000": 4,
            "06081602600": 4,
            "12086008904": 4,
            "06001422100": 4,
            "06041111000": 4,
            "06013336102": 4,
            "06099002503": 4,
            "06075016300": 4,
            "06013316000": 4,
            "06067005510": 4,
            "06081606400": 4,
            "06081603700": 4,
            "06037207900": 4,
            "06001437400": 4,
            "06013392300": 4,
            "06075021600": 4,
            "06081606000": 4,
            "06001406601": 4,
            "06075016500": 4,
            "06075017902": 4,
            "06075030202": 4,
            "06001421300": 4,
            "06075031301": 4
          },
          "visitor_daytime_cbgs": {
            "060750161004": 9,
            "060750152001": 6,
            "060750158012": 6,
            "060750451003": 5,
            "060750176013": 5,
            "060014083005": 5,
            "060770004024": 5,
            "060750313022": 5,
            "060750151001": 5,
            "060750301011": 5,
            "060014072002": 4,
            "060890127014": 4,
            "060670045022": 4,
            "060750452002": 4,
            "060750161001": 4,
            "060750601001": 4,
            "060730207081": 4,
            "060750176012": 4,
            "061130101011": 4,
            "060750216002": 4,
            "060750166001": 4,
            "060750328013": 4,
            "060750353006": 4,
            "060750161002": 4,
            "060750156001": 4,
            "060990008033": 4,
            "060070018003": 4,
            "060133060022": 4,
            "060750332031": 4,
            "060750157003": 4,
            "060750158013": 4,
            "060014227003": 4,
            "060411110004": 4,
            "060750101002": 4,
            "060855120011": 4,
            "060552002023": 4,
            "060133142003": 4,
            "060750326013": 4,
            "060750451002": 4,
            "060750208003": 4,
            "060750615001": 4,
            "060750162003": 4,
            "060750124022": 4,
            "060750261003": 4,
            "060019832001": 4,
            "060190018004": 4,
            "060816011004": 4,
            "060470015033": 4,
            "060014057002": 4,
            "060590115045": 4,
            "060971513104": 4,
            "060750178021": 4,
            "060014501021": 4,
            "060750476001": 4,
            "060014446022": 4,
            "060670074241": 4,
            "060750135001": 4,
            "060133400021": 4,
            "060014363001": 4,
            "060750177001": 4,
            "060750154003": 4,
            "060750108003": 4,
            "060750129011": 4,
            "060070007003": 4,
            "060750479015": 4,
            "060750332032": 4,
            "060750167004": 4,
            "060670096061": 4,
            "060710091142": 4,
            "060816012003": 4,
            "060750161003": 4,
            "060750332011": 4
          },
          "visitor_country_of_origin": {
            "US": 360
          },
          "distance_from_home": 7381,
          "bucketed_dwell_times": {
            "<5": 30,
            "5-10": 358,
            "11-20": 77,
            "21-60": 40,
            "61-120": 10,
            "121-240": 8,
            ">240": 3
          },
          "median_dwell": 8,
          "related_same_day_brand": {
            "76": 2,
            "Safeway": 7,
            "Popeyes Louisiana Kitchen": 7,
            "Starbucks": 7,
            "ARCO": 6,
            "Shell Oil": 5,
            "Chevron": 4,
            "Target": 3,
            "ampm": 3,
            "Costco": 2,
            "Walgreens": 2,
            "Burger King": 2,
            "Jack in the Box": 2,
            "PetSmart": 2,
            "Kaiser Permanente": 1,
            "Peet's Coffee and Tea": 1,
            "Valero Energy": 1,
            "Mixt": 1,
            "Taco Bell": 1,
            "Dutch Bros Coffee": 1
          },
          "related_same_month_brand": {
            "76": 23,
            "Starbucks": 45,
            "Safeway": 40,
            "ARCO": 39,
            "Chevron": 37,
            "Shell Oil": 36,
            "Target": 36,
            "Costco": 30,
            "Walgreens": 28,
            "Taco Bell": 23,
            "In-N-Out Burger": 23,
            "Popeyes Louisiana Kitchen": 22,
            "Walmart": 21,
            "Burger King": 20,
            "Jack in the Box": 19,
            "ampm": 19,
            "7-Eleven": 19,
            "Subway": 18,
            "Peet's Coffee and Tea": 17,
            "Ross Stores": 16
          },
          "popularity_by_day": {
            "Monday": 68,
            "Tuesday": 60,
            "Wednesday": 78,
            "Thursday": 88,
            "Friday": 83,
            "Saturday": 90,
            "Sunday": 59
          },
          "device_type": {
            "android": 124,
            "ios": 240
          }
        }
      ]
    }
  },
  "extensions": {
    "row_count": 1,
    "version_date": [
      "safegraph_core: 1645948803__2022_02",
      "safegraph_geometry: 1645948803__2022_02",
      "safegraph_weekly_patterns2: 2022_01_11",
      "safegraph_monthly_patterns: 2022_01_11"
    ]
  }
}

Normalized Columns

query lookup {
  lookup(placekey: "zzy-222@5vg-7gv-6kz") {
    placekey
    monthly_patterns(start_date: "2022-01-01" end_date: "2022-01-02") {
      normalized_visits_by_total_visits
      normalized_visits_by_state_scaling
      normalized_visits_by_total_visitors
      normalized_visits_by_region_naics_visits
      normalized_visits_by_region_naics_visitors
    }
  }
}
{
  "data": {
    "lookup": {
      "placekey": "zzy-222@5vg-7gv-6kz",
      "monthly_patterns": [
        {
          "normalized_visits_by_total_visits": 4.1111311709396307e-7,
          "normalized_visits_by_state_scaling": 965.6789116398678,
          "normalized_visits_by_total_visitors": 0.0000012352338195524557,
          "normalized_visits_by_region_naics_visits": 0.000003306859020843854,
          "normalized_visits_by_region_naics_visitors": 0.000004818174786035808
        }
      ]
    }
  },
  "extensions": {
    "row_count": 1,
    "version_date": [
      "safegraph_core: 1645948803__2022_02",
      "safegraph_geometry: 1645948803__2022_02",
      "safegraph_weekly_patterns2: 2022_01_11",
      "safegraph_monthly_patterns: 2022_01_11"
    ]
  }
}
FieldDescription
normalized_visits_by_total_visitsraw_visit_counts divided by the total_visits in the same state or province during the same time period. This measures changes in the relative popularity of POI over time.
normalized_visits_by_state_scalingraw_visit_counts scaled using the mobile device sampling rate for the state in which the POI is located.
normalized_visits_by_total_visitorsraw_visit_counts divided by the total_devices_seen in the same state or province during the same time period. This measures changes in the visits per device in SafeGraph's panel to the POI over time.
normalized_visits_by_region_naics_visitsraw_visit_counts divided by the sum(raw_visit_counts) to the naics_code in the same state or province during the same time period. This measures changes in the category-specific popularity of the POI over time.
normalized_visits_by_region_naics_visitorsraw_visit_counts divided by the sum(raw_visitor_counts) to the naics_code in the same state or province during the same time period. This measures changes in the visits per devices that visited the same category in SafeGraph's panel to the POI over time.