Our API, Snapshot, is always being improved. As we mentioned in our 2022 Goals post, we are making new reports and functions available. Here is just a look at everything new for Snapshot this spring.

New Report Styles

Our PDF reports have become popular for fast and easy demographics. We have three new styles of reports, including:

  • Traditional report showing multiple radii side by side
  • Multi-column report, with or without benchmarks, showing one radius at a time
  • Retail Gap report, including optional shading and/or text coloring

The most notable addition is the retail gap, or void, report. As you can see on image below, the color coding displays just at a quick glance the potential of an area, critical information for economic development and commercial real estate. Retail gap reports can be run for radius areas, drive times, custom drawn polygons, or standard geographic areas.

New Report Formatting Commands

  1. Embedded commands

    In the past, most report formatting commands were “command line only” with the intent of having generic templates. These are still possible, but all report format commands can now be embedded in the template itself or passed by the command line

  2. New Commands

    New commands for column shading and highlighting have been added (see the gap report for an example), use the !SETCOLUMN= function

    The !VINTAGE command can be used to add the “vintage” of the data element. This can be useful when displaying time series data, such as POP10, POP20, POPCY which will read “Population 2010”, “Population 2020”, and “Population 2021” instead of all reading “Population” if !VINTAGE=OFF

    Commands for formatting report type, !REPORTSTYLE=. The values are NORMAL (multiple geographies and benchmarks as separate columns), COMPACT (single geography per report), BENCHMARK (single geography + benchmark per report), VOID (produces a retail gap/void report), and PROFILE (produces a segmentation profile report)

    In addition, the !COLUMNS=<n> and !COLUMNSPACING= are used with COMPACT and BENCHMARK reports to determine the number of columns in the report (2 is default). The !PAGE command in a multi-column report advances to the top of the next column, not page.

    Margins are now user set with either !MARGINS=<top>,<bottom>,<left>,<right> or the individual commands !MARGIN.BOTTOM=, !MARGIN.LEFT=, !MARGIN.RIGHT=, and !MARGIN.TOP=

  3. New Objects

    Two objects have now been implemented. The @TEXT command will add a text block to a report which can either be predefined or defined at run time. At run time, it is possible to select a text file on the basis of the value of a variable. The text can be formatted – style and alignment, and the entire text block can be outlined, highlighted, and boxed as desired.

    The second object is the @TABLE command which allows a predefined table – such as a table where the rows are NAICS codes and the columns are retail potential, retail sales, and retail gap. These tables definable at run-time by selecting a “primary” table (e.g. #RETAIL_SALES), then one or more “secondary” tables. The user is responsible for ensuring that the tables are compatible.

    Work is well underway to add a series of graphics objects (@CHART, @MAP) and the ability to embed external content @EXTERNAL, such as FEMA flood zone descriptions in a risk report.

New Functions

The main Snapshot functions now include –

Data                      Create a database

Report                  Create a report or csv files with

Snapshot now includes 60 functions which can be used in formulas. Basically, these can be classified in four categories:

  • Statistical functions
  • Mathematics functions
  • Text functions
  • Spatial functions

While we have added more in the traditional areas, the text functions are new —

DOMINANT() which is a combination of the RANK() and LOOKUP() functions. For example, to return the Panorama segment name of the second largest segment – DOMINANT(2,#PANORAMA_HHLDS,PANORAMA_TEXT)

LOOKUP(VARIABLE,STRING_TABLE) returns the text element pointed to by VARIABLE. It can work with any pre-defined string table, including values for crime and weather risk values.

CHOOSE(VARIABLE,STRING_1,STRING_2,STRING_3,….,STRING_N) allows users to select a value label dynamically.

An example of how to use these functions is –

MYVAR = CLASS(INCCYMEDHH,25000,50000,100000,200000,500000), SUPRESS

TEXTVAR = CHOOSE(MYVAR,Very Low, Low, Average, High, Very High)

With an income of 38500, MYVAR = 2 (note that can optionally suppress output) and the output variable TEXTVAR would be output as “Low”.