Placecast™ Publication Date 2023.03.06

On March 6, 2023, Motionworks published an update to its Placecast by Date product. While the end-user schemas have not changed, the data pipeline process used to generate the changes was updated based on internal audits and quality assurance processes.

The following areas were updated during this process:

(Italicized items in parentheses indicate the "Check Type" in @tbl-validation where outcomes can be reviewed, if applicable.)

  • Fixed segmented visits by visitor type not adding up the total visits (error_arrivals_summation)

  • Fixed segmented occupancy by visitor type not adding up to the total occupancy (error_occupancy_summation)

  • Fixed negative visits/occupancy bug by fixing a timezone/daylight savings time bug and reprocessing the full history on affected places. (error_arrivals_negative, error_occupancy_negative)

  • Cleaned up dwell reporting – now only reporting dwells by visitor type if there are arrivals of that visitor type (error_dwell_visitor,
    error_dwell_resident,
    error_dwell_worker,
    error_dwell_arrival,
    error_dwell_departure,
    error_dwell_transfer
    )

  • Fixed nonsensical visits by age groups – babies don’t travel alone (error_arrivals_age_nonsensical, error_occupancy_age_nonsensical)

  • Removed zero visits and zero occupancy rows. Note: Only report rows that have non zero total occupancy or or non zero total visits. All missing rows should assumed to have zero visits and occupancy (error_missing_records)

  • Assigned best estimates to the cases where we don’t have direct measurement by visitor type, such as noisy methodology and unfocused places

  • Improved occupancy calculations for the new monthly data product replacing the simplified monthly aggregation of occupancy data

  • Rounded all delivered numbers to two decimal points

  • Calculated age factors for regions based on the residents' age distribution

  • For Commercial Airports, the new Monthly data product replaces the simplified monthly aggregation and matches the BTS data more closely on a monthly basis.

    As part of this work, the "legacy" reporting of Visitors including the Passenger (Arrivals, Departures, Transfers) has been corrected such that Visitors + Arrivals + Departures + Transfers + Workers + Residents now are equal to the total arrivals for ages 0+.

    This change has reweighted the totals for Arrivals/Departures/Transfers so they are more accurate but may be distributed differently than the previous aggregation or even legacy deliveries.

  • Found a bug in taking in FTA totals by system. The proportion of the most recently validated station level ridership will be maintained as the total system ridership is scaled to the monthly FTA ridership totals. Note: New York City Transit and PANYNJ PATH service scaled to turnstile counts.

Future Roadmap

As Motionworks continues to expand its data sources, visits and occupancy at stations in transit systems listed in table below will see changes in future releases of Placecast by Date$trade;.

Transit SystemReason for Change
BARTAdditional first-party data observations
City and County of San Francisco (Muni)Rescaling based on additional station places
City of Charlotte North Carolina (Lynx)Rescaling based on additional station places
County of Miami-DadeAdditional first-party data observations
Denton County Transportation AuthorityAdditional first-party data observations
King County (WA) Department of Metro TransitRescaling based on additional station places
Maryland Transit AdministrationAdditional first-party data observations
Northern Indiana Commuter Transportation DistrictAdditional first-party data observations
Portland TriMetAdditional first-party data observations
San Diego Metropolitan Transit SystemRescaling based on additional station places
Twin Cities (MN) Metro TransitRescaling based on additional station places

Quality Assurance Summary

Check TypeVintage 2023-02-12Vintage 2023-03-06
error_arrivals_age_impossible2,671 (0.65%)71 (0.02%)
error_arrivals_age_nonsensical104,133 (25.46%)0 (0%)
error_arrivals_negative2,793 (0.68%)0 (0%)
error_arrivals_summation289,643 (70.81%)0 (0%)
error_duplicate2 (0%)0 (0%)
error_dwell_arrival0 (0%)1 (0%)
error_dwell_departure0 (0%)0 (0%)
error_dwell_min_null7,757 (1.9%)0 (0%)
error_dwell_negative0 (0%)0 (0%)
error_dwell_resident0 (0%)33 (0.01%)
error_dwell_transfer0 (0%)0 (0%)
error_dwell_visitor0 (0%)66 (0.02%)
error_dwell_worker0 (0%)0 (0%)
error_missing5,538 (1.34%)7,678 (1.85%)
error_occupancy_age_impossible2,672 (0.65%)71 (0.02%)
error_occupancy_age_nonsensical104,225 (25.48%)0 (0%)
error_occupancy_negative2,843 (0.7%)0 (0%)
error_occupancy_summation403,643 (98.68%)0 (0%)
error_processes0 (0%)0 (0%)
error_zero_total_arrivals13,349 (3.26%)0 (0%)
error_zero_total_occupancy16,489 (4.03%)0 (0%)

Check Type Definitions

Check TypeDefinition
error_arrivals_age_impossibleChild arrivals are greater than total arrivals
error_arrivals_age_nonsensicalArrivals where children travel alone.
error_arrivals_negativeAny arrival value less than zero.
error_arrivals_summationSegmented arrival summation does not equal to total arrivals
error_duplicateDuplicate records
error_dwell_arrivalArrival arrival with no arrival dwell
error_dwell_departureDeparture arrival with no departure dwell
error_dwell_min_nullRecord missing dwell minimum
error_dwell_negativeDwell is less than zero
error_dwell_residentResident arrival with no resident dwell
error_dwell_transferTransfer arrival with no transfer dwell
error_dwell_visitorVisitor arrival with no visitor dwell
error_dwell_workerWorker arrival with no worker dwell
error_missingPlace is missing entirely from reporting
error_occupancy_age_impossibleChild occupancy is greater total occupancy
error_occupancy_age_nonsensicalOccupancy where children are left alone
error_occupancy_negativeAny occupancy is less than zero
error_occupancy_summationSegmented occupancy summation does not equal to total occupancy
error_processesTwo or more place processes for the same place
error_zero_total_arrivalsSegmented arrivals are greater than zero, but total arrivals is zero
error_zero_total_occupancySegmented occupancy is greater than zero, but total occupancy is zero