Using Custom Data Setup
Overview
There are many different ways to generate a BDS layer using the Custom Data Setup wizard. The key to using this tool successfully is having a good understanding of what you expect from the BDS layer. Here are some key questions:
- Am I going to run reports on this BDS layer?
- Am I only doing data dumps (use the Append Data Analysis tool)?
- Am I creating a BDS layer from scratch, and if so, do I have the appropriate base geography layer?
- Am I going to incorporate my own data or do I want to create my variables in the BDS layer or in a report?
Custom Data Setup is often used for customer or store layers but can be used for any layer including point and polygon layers. An example of use is setting up your sales data for analysis after joining it to a geography polygon using spatial overlay. You could also use your own demographic data, estimates, projections, business statistics, or consumer expenditure information. Any variable in your boundary layer or your joined data will be available for recalculation as a new variable in this tool.
Input Requirements
This tool requires that you have an existing shapefile with all your data already associated to it or a base shapefile (such as ZIP Codes) that you can append your custom data to.
![Conseil Conseil](rsrc/tip.png)
A powerful option in this wizard is the ability to create custom variables from your own data or recalculate any existing variables of Business Analyst. Please note that this is only recommended for variables that are summed up such as Total Population.
![Conseil Conseil](rsrc/tip.png)
Recalculating variables, such as median, require more in-depth knowledge of how these demographic formulas are calculated in Business Analyst. All demographic data layers provided with Business Analyst are preset for your use and are ReadOnly so the settings are not inadvertently changed. If you try changing the variable settings in these layers without changing the ReadOnly setting, you will receive an error identifying a failure to write the metadata (.xml) change. Advanced users who want to change the default settings of these Business Analyst layers can do so.
First locate the .xml file on your hard drive for the layer you want to change and copy it so you can return to the default settings. This file, in its original form, is also available on your Business Analyst DVD. On your hard drive, the file will be located where you find ArcGIS in the appropriate demographic data folder (for example, \ ArcGIS\Desktop10.0\Business Analyst\Data\ESRI Data). As an example, the XML file for the ESRI BIS Block Group layer is called ebis_bg.sdc.xml. Right-click this layer, and at the bottom of the General tab, in the Attributes, uncheck the Read only check box and click OK. Then open your map document (*.mxd) and use the Custom Data Setup to change the variable summarization methods in the layer.
Remember that you can return at any time to the original file settings by using the file you saved and renaming it with the original file name. Alternatively, you can copy the original file from the Business Analyst DVD to overwrite the same file in the hard drive demographic data folder.
![Conseil Conseil](rsrc/tip.png)
It is recommended that you save your BDS layer in the same directory as any custom database you add. This is critical because this operation doesn't permanently join your custom data to the boundary layer. Moving these files will break the link which makes the file unavailable in Business Analyst.
![Conseil Conseil](rsrc/tip.png)
When selecting the variables to include in your BDS layer, choose the Apportionment Method. This option determines how a variable is apportioned to a portion of geography. When an analysis cuts across a geography, the analysis includes only the value of the variable that falls inside the analysis area. Depending on the variable, you have the choice of apportioning by area or one of the three primary demographics at the block point level (Population, Households, or Housing Units). For any standard ESRI variable selected, the Apportionment Method is automatically selected.
When selecting your own data, be sure to change the Apportionment Method to reflect the source of your data. For example, if your variable was Sales by Zip Code and was based on household data, you would want to select Households 2010.
![]() |
Advanced users can access additional variables options by right-clicking in the right box and selecting Advanced Mode.
![Custom Data Setup options Custom Data Setup options](000z/GUID-A1505357-C167-4FA6-A9E2-129E452A23AD-web.png)
Here you will notice three advanced categories:
- Category: Text description that determines how the variables are displayed in variable lists in the Business Analyst wizards.
- Weight: Weight the variable based on another variable; that is, in the block group layer, you could choose to weight consumer expenditures on furniture by 2015 Total Households. This provides you with the amount spent per household on furniture in a trade area.
- Aggregation method: Combines variable values. The options are to sum the value; average the values; use the min value; use the max value; or calculate the median, standard deviation, or variance.
![Conseil Conseil](rsrc/tip.png)
Create a new calculated field. For example, you can create a population density field by taking the total population and dividing it by area. Be sure that all variables needed to calculate the new field are in the selected fields list in the previous dialog box. When creating custom formulas in this wizard, you must use the VBScript functions.
![Create new calculated field Create new calculated field](000z/GUID-ECE6A80F-80D0-4A5D-98D8-10871F725031-web.png)
Below are two calculated variables samples for creating a BDS layer:
- The first example simply adds two population cohorts together:
ReturnValue ( GetValue("POPU5_CY") + GetValue("POP5_CY") )
- The second example is a bit more complicated and calculates a penetration rate. This is a simple function that protects against a division by zero error:
Dim hh hh = GetValue("TOTHH_CY") Dim sales sales = GetValue("SALES") if (hh > 0) then ReturnValue ( 100 * (sales / hh) ) else ReturnValue(0) end if