M Motionworks Population Intelligence

Placecast™ Profiles

Motionworks Placecast™ Profiles provides historical data from monthly releases for places and regions from the beginning of 2019 to the present. The data include activities by type, audience, and origin.

Data Dimensions

  • Frequency Published monthly.
  • Geographic coverage Summarizes activities for residents of the U.S. for Motionworks Places and Regions.
  • Zone systems Not applicable. No zone systems are used in reporting data in this schema.
  • Date availability Monthly data since 2019.
  • Latency Data are published monthly. Each release adds the most recent available month of measured data.

Schema

Name Description Type Example
place_id Unique and persistent identifier of this place or region defined by a data collection polygon (also sometimes called point or place of interest). String 356698
name Name of the place. String Target
street_address Street address of the place. String 3600 S Louise Ave
city City of the place. String Sioux Falls
state State or province of the place. String SD
postal_code Postal delivery code of the place. In the US, this is the ZIP code. String 57106
location Latitude and longitude of the place JSON {String: String} {"lat":43.51214, "lon":-96.7693}
market A variety of location descriptors using standard geographies, e.g. county, state, core-based statistical area, and designated market area. JSON {String: String} {"co_geoid": "46099","co_name": "Minnehaha",...}
place_type_id Unique identifier of the place type. Integer 12
place_type Description of the place type. String Retail
place_audit_status Audit status of the place. String Reviewed
place_modified_date The last date the place's metadata, polygon, or audit status were modified, ISO 8601 with yyyy-mm-dd. Date 2023-05-11
published_date The most recent month of measured data included in this release, labeled using ISO 8601 with yyyy-mm-dd (the first day of that month). The row-level metrics (activities, visits, dropoffs, passbys, and the related per-person and confidence-interval fields) are an annualized estimate: the average of the monthly values over the 12-month window ending in this month (September through August), the same window used for the trade-area breakdown. Date 2025-08-01
activities Estimated activities at the place, where an activity refers to any significant time spent at a place. Activities are the sum of dropoffs and visits, which are differentiated by a dwell time threshold. This is an annualized estimate over the 12-month window ending in published_date; see the published_date description. Integer 72408
visits Estimated visits at the place. A visit is an activity with a measured dwell time at the place greater than or equal to activities_dwell_threshold. This is an annualized estimate over the 12-month window ending in published_date; see the published_date description. Integer 56576
dropoffs Estimated dropoffs at the place. A dropoff is an activity with a measured dwell time at the place less than ‘activities_dwell_threshold‘. This is an annualized estimate over the 12-month window ending in published_date. Integer 15832
passbys Estimated pass-bys of the place. A pass-by has zero dwell time at the place and is NOT an activity. They do not count as a dropoff or visit (or stay). This is an annualized estimate over the 12-month window ending in published_date. Integer 7007
stays Estimated stays at the place. In short, a stay is an overnight visit. Stays are a subset of ‘visits‘, meaning a ‘stay‘ counts as a ‘visit‘, but not all ‘visits‘ count as a ‘stay‘. A stay is a visit with a measured dwell time of at least 4 hours inclusive of 03:00 a.m. in local time. This is an annualized estimate over the 12-month window ending in published_date. Integer 0
visits_ci 90% confidence interval of the ‘visits‘ estimate. If we were to repeatedly make new estimates of ‘visits‘ using the same procedure with new data from different samples of people, the confidence interval would contain the resulting estimate 90% of the time. JSON [Integer, len=2] [55535, 57605]
visits_observations The number of visits observed directly in the sample, summed over the 12-month window used to compute the annualized estimate (see published_date). Integer 10117
imputed A boolean flag indicating whether the estimates for this place were imputed with a larger time window than the standard period due to missing data. If true, activities, visits, dropoffs, passbys, stays, and all other included metrics are imputed. Boolean false
visits_avg_dwell Average dwell time (in minutes) per person, ignoring those panel members who live in the associated block group(s) that intersect the place or that work in the place. This is an annualized estimate over the 12-month window ending in published_date. Integer 90
activities_dwell_threshold The dwell time threshold (in minutes) for the place. This value is derivied from observed data across all places with the same place type of the place. Activities measuring a dwell time less than this threshold at this place are counted as dropoffs, and activities measuring a dwell time greater than or equal to this threshold at this place are counted as visits. Values for Places are maximum of 15 minutes. In Placecast™ Profiles, this is based on the average value over the last two months. Number (Float) 13.0
visits_frequency_per_person Average visits per person, ignoring those panel members who live in the associated block group(s) that intersect the place or that work in the place. This is an annualized estimate over the 12-month window ending in published_date. Number (Float) 1.18
visits_unique_persons The number of unique persons visiting the place. Equals ‘visits‘ divided by ‘visits_frequency_per_person‘. This is an annualized estimate over the 12-month window ending in published_date. Integer 47940
visits_unique_long_trips The number of unique long-distance trips visiting the place. A long-distance trip is counted when a panel member is more than 50 miles from their home neighborhood. Panel members are only eligible to contribute to the estimate of unique long-distance trips if the place does not overlap with the home county of the panel member. This is an annualized estimate over the 12-month window ending in published_date. Integer 14367
passbys_travel_mode Pass-bys by vehicular and pedestrian status, as an annualized estimate over the 12-month window ending in published_date. The determination of vehicular pass-bys and pedestrian pass-bys are determined by observed speed. The sum of all will equal ‘passbys‘. Vehicular are first, and pedestrian are second in the array. If NULL, the polygon of this place is large enough to be considered a region and is not calculated. JSON [Integer, len = 2] [6657, 350]
local_radius Activities, pass-bys, dropoffs, and visits by local and non-local status, as an annualized estimate over the 12-month window ending in published_date. A local activity or pass-by is counted when the home block group of the panel member is within a 50-mile radius of the place. The radius is calculated between the observed lat/lon of the panel member and the center point of the home block group. The sum of all will equal ‘activities‘, ‘passbys‘, ‘dropoffs‘, and ‘visits‘, respectively. Local is first, and non-local is second in the array. JSON {String: [Integer, len = 2]} {"activities": [50708, 21700], "visits": [39621, 16955], "dropoffs": [11087, 4745], "passbys": [4907, 2100]}
percent_visits Percent of visits by various dimensions, including the day of the week and hour of the day, demographic segments, and home locations. The sum of all will generally equal 100, except in the case of rounding error. Indices against the population are included for demographic segments. For example, with age group 0-17 having 3.1% of visits, an index of 100 indicates that 3.1% of the population of the surrounding DMA also is aged 0-17. Indices can range from 0 to infinity, where 0 occurs when there are no visits from a given segment, and infinity occurs when the segment is not present in the surrounding DMA. See the Percent Visits section for a more detailed example. JSON {String: {String: {String: Float}}} {"day": {...}, "segment": {...}, "home": {...}}
history A history of ‘activities‘, ‘visits‘, ‘dropoffs‘, and ‘passbys‘ by month, year, and week, beginning with January 2019. The month array reports the activity measured within each calendar month and is the basis for time-based analysis. The year array reports per-year figures (the current year is year-to-date). In the week array, each week reports the value of its month, so visits, activities, dropoffs, and passbys are identical for every week within a month and the month's visit_observations is divided among its weeks. Labeled using ISO 8601 with ‘yyyy-mm‘ (month), ‘yyyy‘ (year), or ‘yyyy-Www‘ (week). See the Historical Summary section for a more detailed example. JSON {String: [{String: Integer}]} {"month": [{...}], "year": [{...}], "week": [{...}]}
certified True if the place's metrics meet Motionworks certification criteria. Boolean true
percentile Percentile rank of the place within its peer group on the certification metric. Number (Float) 0.83
release_version Motionworks release version associated with this record. String 20260612

Household Demographics and Privacy

All of our demographics, even if person-level, like age or gender, are estimated by considering the demographic profiles of the household unit. If we observe visits from a neighborhood characterized by households that tend to be single parents as well as multi-generational, all of this neighborhood-typical household’s ages contribute to the characterization of the estimated visit. Specifically, let’s say a neighborhood's typical household tends to have equal distributions of people in age segments 0-17, 35-44, and 75+. If we observe visits to a bar from this neighborhood, the percentage of visits by age segment at the bar would be 33.3% for each of the three age segments.

JSON Schema

All metrics reported as percentages are rounded to the nearest tenth of a percent, where 25.1 is 25.1%.

Percent Visits

Percent of visits by a variety of dimensions, including by day of the week and hour of the day, demographic segments, and home locations. Some of these dimensions are mutually exclusive groups, and some of them overlap. These differences determine whether all possible categories within the groups are reported and what the sum of the percentages should equal. The bulleted list highlights these differences, and the JSON sample below demonstrates the format of the object.

The daily_dwell_bins measure the total time spent in a day by a panel member, regardless of the number of times coming and going. For example, when an individual spends 3.5 hours at work, leaves for lunch, and returns for another 4.5 hours, their daily dwell will be 8 hours.

{
  "days": [
    {
      "day": "su",
      "percent": 0.15505222850949532,
      "visits": 835,
      "hours": [0.0015, 0.0027, 0.0041, ...]
    },
    {
      "day": "mo",
      "percent": 0.465464654646,
      "visits": 835,
      "hours": [0.0011, 0.0121, 0.0900, ...]
    },
    {
      "day": "fr",
      "percent": 0.564651463131111646,
      "visits": 835,
      "hours": [0.0255, 0.0002, 0.0054, ...]
    },
    ...
  ],
  "daily_dwell_bins": [
    {
      "id": "persons_000_030min",
      "description": "Less than 30 minutes",
      "value": 0.5456
    },
    {
      "id": "persons_030_060min",
      "description": "30 minutes to 59 minutes",
      "value": 0.2342
    },
    {
      "id": "persons_060_120min",
      "description": "1 hour to 1 hour 59 minutes",
      "value": 0.1689
    },
    {
      "id": "persons_120_240min",
      "description": "2 hours to 3 hours 59 minutes",
      "value": 0.0272
    },
    {
      "id": "persons_240_plus",
      "description": "4 hours or more",
      "value": 0.0241
    }
  ],
  "segment": {
    "basic_demographics": [
      {
        "category": "age_plus",
        "segments": [
          {
            "id": "age_00plus",
            "description": "All Persons",
            "value": 1.000,
            "index": 1.0
          },
          {
            "id": "age_18plus",
            "description": "Population, Age 18+",
            "value": 0.7862,
            "index": 0.9796
          },
          ...
        ]
      },
      {
        "category": "age",
        "segments": [
          {
            "id": "age_00t17",
            "description": "Population, Age 0 - 17",
            "value": 0.031,
            "index": 0.3
          },
          {
            "id": "age_18t24",
            "description": "Population, Age 18 - 24",
            "value": 0.052,
            "index": 1022.3
          },
          ...
        ]
      },
      ...
    ],
    ...
  },
  "home": {
    "state_province": [
      {
        "id": "50",
        "alias": "VT",
        "description": "Vermont",
        "value": 0.252
      },
      {
        "id": "33",
        "alias": "NH",
        "description": "New Hampshire",
        "value": 0.137
      },
      ...
    ],
    ...
  }
}

Small Mutually-Exclusive Dimensions

The following dimensions have mutually exclusive groups and include a small enough set of groups that all of the groups are reported. In these cases, the sum of all of the values will generally equal 100, except in the case of rounding error.

  • day Special Note: Some places may return NULL values for certain hours. Measurement during these hours are being suppressed at these places for privacy purposes.
  • daily_dwell_bins
  • segment:basic_demographics:age See the Household Demographics and Privacy section for details on how this is estimated.
  • segment:basic_demographics:hh_income
  • segment:basic_demographics:race See the Household Demographics and Privacy section for details on how this is estimated.
  • segment:basic_demographics:gender See the Household Demographics and Privacy section for details on how this is estimated.
  • segment:basic_demographics:ethnicity See the Household Demographics and Privacy section for details on how this is estimated.
  • segment:basic_demographics:prizm
  • home:state_province Labeled by 2-digit FIPS code (including leading zeros).
  • home:dma Labeled by DMA identifier.

Large, Mutually-Exclusive Dimensions

The following dimensions also have mutually exclusive groups, but there are too many groups to report percentages for all the groups. In these cases, the groups representing the top 75th percentile of all visits are reported (with a minimum of 10 groups). Also, any segment with an index value greater than 1.05 is included. Accordingly, the sum of all the values will NOT equal 100, but the sum will be at least 75.

  • home:metro_area Labeled by core-based statistical area (CBSA) identifier in the United States.
  • home:county Labeled by 5-digit county FIPS code (including leading zeros).
  • home:postal_code Labeled by 5-digit postal code.
  • home:census_neighborhood Labeled by block group's 12-digit FIPS code (including leading zeros) in the United States and by dissemination area's 8-digit identifier in Canada.

Overlapping Dimensions

The following dimensions have overlapping groups.

  • segment:basic_demographics:age_plus
  • segment:consumer:alcohol
  • segment:consumer:automotive
  • segment:consumer:commuting_and_transportation
  • segment:consumer:digital_video_displays
  • segment:consumer:environment
  • segment:consumer:financial
  • segment:consumer:food_and_beverages
  • segment:consumer:health
  • segment:consumer:items_in_the_home
  • segment:consumer:mri_apparel_and_jewelry
  • segment:consumer:mri_home_improvements
  • segment:consumer:mri_psychographics
  • segment:consumer:restaurants
  • segment:consumer:retail_shopping
  • segment:consumer:sports_and_leisure
  • segment:consumer:telecommunications
  • segment:consumer:travel
  • segment:consumer:voting

Historical Summary

A history of activities, visits, dropoffs, and passbys over time, beginning with January 2019. The history is reported in three arrays — month, year, and week — each labeled using ISO 8601: yyyy-mm for month, yyyy for year, and yyyy-Www for week. visit_observations reports the number of visits observed directly in the sample during the reported period.

  • month reports the activity measured within each calendar month and is the basis for time-based analysis.
  • year reports per-year figures. activities, visits, dropoffs, and passbys are the average of that year's monthly values (not an annual sum), while visit_observations is the total observed over the year. The current year is reported year-to-date, and week_count gives the number of weeks the year contributes.
  • week reports, for each week, the value of its month. visits, activities, dropoffs, and passbys are therefore identical for every week within the same month, and the month's visit_observations is divided among its weeks.

In the example below (a real place), August 2025 has four weeks (2025-W32 through 2025-W35). Each week reports the August month figures (visits = 5769, activities = 6838, and so on), and the month's 202 visit_observations is divided among its four weeks (≈ 51 each). The year entry for 2025 reports the average of the monthly visits (5812) and the total observations for the year (2460).

{
  "year": [
    {
      "id": "2026",
      "imputed": false,
      "activities": 6061,
      "visit_observations": 918,
      "visits": 5168,
      "dropoffs": 893,
      "passbys": 1463,
      "week_count": 22
    },
    {
      "id": "2025",
      "imputed": false,
      "activities": 6850,
      "visit_observations": 2460,
      "visits": 5812,
      "dropoffs": 1038,
      "passbys": 1559,
      "week_count": 52
    },
    ...
  ],
  "month": [
    {
      "id": "2025-08",
      "imputed": false,
      "activities": 6838,
      "visit_observations": 202,
      "visits": 5769,
      "dropoffs": 1069,
      "passbys": 1476
    },
    {
      "id": "2025-07",
      "imputed": false,
      "activities": 6544,
      "visit_observations": 196,
      "visits": 5524,
      "dropoffs": 1020,
      "passbys": 1481
    },
    ...
  ],
  "week": [
    {
      "id": "2025-W35",
      "imputed": false,
      "activities": 6838,
      "visit_observations": 51,
      "visits": 5769,
      "dropoffs": 1069,
      "passbys": 1476,
      "week_start": "2025-08-25"
    },
    {
      "id": "2025-W34",
      "imputed": false,
      "activities": 6838,
      "visit_observations": 51,
      "visits": 5769,
      "dropoffs": 1069,
      "passbys": 1476,
      "week_start": "2025-08-18"
    },
    {
      "id": "2025-W33",
      "imputed": false,
      "activities": 6838,
      "visit_observations": 51,
      "visits": 5769,
      "dropoffs": 1069,
      "passbys": 1476,
      "week_start": "2025-08-11"
    },
    {
      "id": "2025-W32",
      "imputed": false,
      "activities": 6838,
      "visit_observations": 51,
      "visits": 5769,
      "dropoffs": 1069,
      "passbys": 1476,
      "week_start": "2025-08-04"
    },
    ...
  ]
}