MA – Land Value Computation

CAMA Land Value Computation

(Under Review)

Overview

The purpose of the Land Computation is to provide values for the Govern system columns for a given record of the table MA_LAND .
The ultimate goal of this compute is to provide a land value. Conceptually the land value is made of a rate multiplied by a number of units (see the Land dimension specification document). This initial land value is then adjusted based on the defined adjustments (MA_PARM_LANDADJT), neighborhood adjustments (MA_PARM_NBHD), MA_SITE adjustments (see the Site adjustment specification document) and some user entered adjustments (MA_LAND).

The land value is either a market land value (default) or an agricultural value depending on the land use code (MA_PARM_LANDUSE) and it was always stored in MA_LAND.TOTAL_VALUE.

NOTE: At some point for PEI, there has been a requirement to produce both the market value and the agricultural value from the same LAND record for some custom process. This is why we now have a column MA_LAND.TOTAL_VALUE_AG. This is a bit confusing because the total land agricultural value is always the sum of all MA_LAND.TOTAL_VALUE for the records having a MA_LAND.LUSE_CODE of type agricultural and the MA_LAND.TOTAL_VALUE_AG is not used anywhere in the system except for a custom process that updates some mixed used values in MA_MASTER.

Govern for Windows class name : GvObjLand (MALand.cls)

Important Notes RE: the Computation

  • Auto Select Unique Code

When only one code is available and the Auto Select Unique Code option is selected, that code is used for the compute. This applies regardless of what the user has previously selected. It applies, for example, if the code is changed in GNA, after the user set the code on the form. The update is made when either the property record is opened and resaved or the Mass Appraisal Compute batch process is run.

  • Is Required

If you select the Is Required option for a code after the user has created property records, you must verify that a code is selected for those records. Otherwise, an error is raised and the compute fails

Parameters

Registry and Constant

  • SF_IN_ACRE = 43560 ‘ number of square feet in 1 acre
  • SM_IN_ACRE = 4046. 85642 ‘ number of square meter in 1 acre
  • FEET_IN_METER = 3.2808399 ‘ number of feet in 1 meter

 

  • ADJ_BY_LAND_USE = “Mass Appraisal”, “Associate Ladjt to Luse” = (‘yes’ or ‘no’)
  • ADJ_BY_LAND_SCHEDULE = “Mass Appraisal”, “Associate Ladjt to Landschd” = (‘yes’ or ‘no’)
  • ADJ_BY_LAND _EFFECTIVE = “Mass Appraisal”, “Associate Ladjt to Luse Year Effective” = smallInt (default global year_id)

 

  • ALLOW_NEGATIVE_VAL = “Mass Appraisal”, “Allow Negative Value” = (‘yes’ or ‘no’)
  • COMPUTE_ADJ_BY_SEQ = “Mass Appraisal”, “Compute By Sequence” = (‘yes’ or ‘no’)
  • COMPUTE_ADJ_BY_SEQ _EFFECTIVE = “Mass Appraisal”, “Compute By Sequence Year Effective” = smallInt
  • CUMULATIVE_LAND_RATE = “Mass Appraisal”, “Cumulative Land Rate” = (‘yes’ or ‘no’)
  • FULL_SCALE_FORMAT = “Mass Appraisal”, “Land SF to Acres Full Precision” = (‘yes’ or ‘no’)
  • PROPERTY_TYPE_FROM_PC_LEGAL = “Mass Appraisal”, “property type from pc_legal_info” = (‘yes’ or ‘no’)
  • SKIP_RATE_INTERPOLATION = “Mass Appraisal”, “Skip Rates Interpolation for Land” = (‘yes’ or ‘no’)

New in version 6.1

  • RATE_NB_DIGITS = “Mass Appraisal”, “Land Rate Nb Digits” = smallInt – default to 2
  • LAND_AG_MARKET_SAME_RECORD = “Mass Appraisal”, “Land Rate Nb Digits” = (‘yes’ or ‘no’)

Deprecated (Abandoned in version 6+)

  • “Mass Appraisal”, “Compatibility SE Compute”
  • “Mass Appraisal”, “Compatibility SE Compute Year Effective”

 

Table Used (Available for the expressions)

  • MA_LAND. LUSE_CODE -> MA_PARM_LANDUSE.LUSE_CODE
  • MA_LAND. LUSE_CODE -> MA_PARM_LADJT_LUSE.LUSE_CODE
  • MA_LAND. RATE_SCHEDULE -> MA_PARM_LANDSCHD.SCHEDULE_CODE
  • MA_LAND. RATE_SCHEDULE -> MA_PARM_LDJT_SCHD.SCHEDULE_CODE
  • MA_LAND. RATE_SCHEDULE -> MA_PARM_LANDRATE.SCHEDULE_CODE
  • MA_LAND. PLOT_USE-> MA_PARM_PLOT_USE.PLOT_USE (SAMA Only)
  • MA_LAND.P_ID -> PC_LEGAL_INFO.P_ID (Only if PROPERTY_TYPE_FROM_PC_LEGAL = “yes” and MA_PARM_LANDUSE.PROPERTY_TYPE is NULL)
  • MA_LAND.P_ID -> PC_AREA.P_ID
  • PC_AREA.NBHD -> MA_PARM_NBHD.NBHD_CODE
  • MA_LAND.P_ID -> MA_VALUE_AUDIT.REF_ID
  • MA_TABLES.TABLE_CATEGORY = “land”
  • MA_PARM_MAROUND.ROUNDING_CODE = “land”
  • MA_LAND.YEAR_ID -> MA_MODIF_STAMP.YEAR_ID

 

MA_LAND SYSTEM COLUMNS

The following system columns cannot be used in expressions stored in the MA_PARM tables nor should they be editable.

  • total_value
  • total_value_ag
  • units_price
  • units_price_ag
  • adj_total
  • site_adj_total
  • nbhd_adj_total
  • final_adj

 

Lookup groups

Many of the parameters used in the land computation depend on a lookup group. All the lookup groups are stored in the table MA_LOOKUP_GROUP and can be can be of the following types:

  • By neighborhood
  • By property type
  • By income neighborhood
  • By jurisdiction
  • By jurisdiction AND neighborhood
  • By jurisdiction AND income neighborhood

Example:
We have a land record for the year 2015 with LUSE_CODE = “2212”. We want to get the land schedule information which is defined in the table MA_PARM_LANDSCHD where the primary key is SCHEDULE_CODE, YEAR_ID and LOOKUP_GROUP. We already have the year and the schedule code (2015 and “2212”) but we now need the lookup group.Next we go to the table MA_LOOKUP_GROUP and get all the records with TABLE_NAME=”landschd” , YEAR_ID=2015 and CAMA_CODE=”2212”. In our example, this lookup group is By jurisdiction and neighborhood so it will look like this:
LOOKUP_GROUP JURISDICTION NBHD

  • 0 Null Null
  • 1 31572 Null
  • 2 31572 015
  • 3 31572 016
  • 4 31513 Null
  • 5 31513 012

Here are some possible scenarios depending on the jurisdiction and neighborhood for the land record:

  • If Jurisdiction=31572 and Nbhd=015, then Lookup_Group=2
  • If Jurisdiction=31572 and Nbhd=020, then Lookup_Group=1
  • If Jurisdiction=45875 and Nbhd=015, then Lookup_Group=0

Properties required to get the lookup group

  • Jurisdiction: Use PC_PARCEL.JURISDICTION based on MA_LAND.P_ID = PC_PARCEL.P_ID.
  • Neighborhood and Income neighborhood: Use PC_AREA.NBHD and PC_AREA.INC_NBHD based MA_LAND.P_ID = PC_AREA.P_ID and _MA_LAND.FROZEN_ID = PC_AREA.FROZEN_ID.
  • Property type: Use MA_PARM_LANDUSE.PROPERTY_TYPE based on MA_LAND.LUSE_CODE = MA_PARM_LANDUSE.LUSE_CODE and MA_LAND.YEAR_ID = MA_PARM_LANDUSE.YEAR_ID. If no information is found in MA_PARM_LANDUSE then we’ll use a blank property type (15 spaces). This is a table that depends itself on a lookup group. If the lookup group is By property type then for the purpose of the lookup we must use the PROPERTY_TYPE defined in PC_LEGAL_INFO.PROPERTY_TYPE.

 

Agricultural and Non-agricultural

The land record contains 2 fields for which an agricultural version exists: UNITS_PRICE/UNITS_PRICE_AG and TOTAL_VALUE/TOTAL_VALUE_AG.
There are 4 flags in the system that drive how these fields are calculated:

1. LAND_AG_MARKET_SAME_RECORD in SY_REGISTRY. When ‘yes’, this means that we need to calculate both the non-agricultural and the agricultural values. The field MA_PARM_LANDSCHD.FIXED_RATE_VAL_AG will be used as the base unit price for UNITS_PRICE_AG in this case.

2. MA_PARM_LANDSCHD.APPLY_RATE_ADJ_AG. This flag is only taken into account when LAND_AG_MARKET_SAME_RECORD is ‘yes’. When true (-1), this means that all the rate adjustments must be applied to UNITS_PRICE_AG.

3. MA_PARM_LANDSCHD.APPLY_LAND_ADJ_AG. This flag is only taken into account when LAND_AG_MARKET_SAME_RECORD is ‘yes’. When true (-1), this means that all the total value adjustments must be applied to TOTAL_VALUE_AG.

4. MA_PARM_LANDUSE.AGRICULTURAL. When true (-1), at the end of the compute if UNITS_PRICE_AG is null or 0 then we move the value from UNITS_PRICE to UNITS_PRICE_AG and we set UNITS_PRICE to null. We do the same for TOTAL_VALUE/TOTAL_VALUE_AG.

Computation Errors

In case of errors during the computation process (for example, parameters not configured), all the system columns must be set to 0 and no timestamp should be attached to the land record.

Compute Logic

STEP 1 – Units Calculation

Units calculation (VB6 : pv_init_compute)
The units’ type is determined by getting MA_PARM_ LANDSCHD.

a) If MA_PARM_LANDSCHD.UNITS_TYPE is not NULL then MA_LAND.UNITS_TYPE = MA_PARM_LANDSCHD.UNITS_TYPE

b) If MA_LAND.UNITS_TYPE is null then MA_LAND.UNITS_TYPE = MA_LAND_LOT_UNITS_TYPE

c) MA_LAND_UNITS is calculated based on the value of MA_LAND.UNITS_TYPE (SY table “LUNIT1”)

  • a. Case “f”, “e”, “m” then MA_LAND.UNITS = MA_LAND.FRONTAGE
  • b. Case “a”
    • Case MA_LAND.LOT_UNITS_TYPE = “sf”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * SF_IN_ACRE
    • Case MA_LAND.LOT_UNITS_TYPE = “sm”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE / SM_IN_ACRE
    • Case MA_LAND.LOT_UNITS_TYPE “h”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * 10000 / SM_IN_ACRE
    • Case else
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE
  • c. Case “sf”
    • Case MA_LAND.LOT_UNITS_TYPE = “a”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * SF_IN_ACRE
    • Case MA_LAND.LOT_UNITS_TYPE = “sm”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * FEET_IN_METER * FEET_IN_METER
    • Case MA_LAND.LOT_UNITS_TYPE “h”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * 10000 * FEET_IN_METER * FEET_IN_METER
    • Case else
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE
  • d. Case “sm”
    • Case MA_LAND.LOT_UNITS_TYPE = “a”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * SM_IN_ACRE
    • Case MA_LAND.LOT_UNITS_TYPE = “sf”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE / (FEET_IN_METER * FEET_IN_METER)
    • Case MA_LAND.LOT_UNITS_TYPE “h”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * 10000
    • Case else
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE
  • e. Case “h”
    • Case MA_LAND.LOT_UNITS_TYPE = “a”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE * SM_IN_ACRE / 10000
    • Case MA_LAND.LOT_UNITS_TYPE = “sf”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE / ( FEET_IN_METER * FEET_IN_METER * 10000 )
    • Case MA_LAND.LOT_UNITS_TYPE “sm”
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE / 10000
    • Case else
      • MA_LAND.UNITS = MA_LAND.LOT_SIZE
  • f. Case “d”
    • MA_LAND.UNITS = MA_LAND.DEPTH
  • g. Case else
    • If Ma_LAND.UNITS is null or 0 then MA_LAND.UNITS = MA_LAND.LOT_SIZE

d) ROUND MA_LAND.UNITS (4 decimals if FULL_SCALE_FORMAT = ‘no’ or 15 decimals if FULL_SCALE_FORMAT = ‘yes’)

STEP 2 – Base Rate Calculation

Base rate calculation (VB6 : pv_init_base_rate)

a) Fixed Rate

The rate is established by getting MA_PARM_ LANDSCHD.

  • If MA_PARM_LANDSCHD.FIXED_RATE = -1 then
    • MA_LAND.UNITS_PRICE = FIXED_RATE_VALUE or evaluated from the expression in FIXED_RATE_EXPRESSION

b) Cumulative Land Rate

If CUMULATIVE_LAND_RATE = “Yes” and MA_PARM_ LANDSCHD.FIXED_RATE <> -1
IF number of MA_PARM_LANDRATE records <= 1 then @subject_to_nbhd_min_max = TRUE

  • MA_LAND.UNITS_PRICE = weighted sum of all unit price found in MA_PARM_LANDRATE up to MA_LAND.UNITS.

Example: MA_LAND.UNITS = 5000
MA_PARM_LANDRATE has 4 records
UP_TO_UNITS | RATE
2000 25
4000 20
6000 15
999999 5
MA_LAND.UNITS_PRICE = ( (2000 X 25) + (2000 X 20) + (1000 X 15)) / 5000 = 21

c) Non Cumulative LANDRATE

If CUMULATIVE_LAND_RATE = “No” and MA_PARM_ LANDSCHD.FIXED_RATE <> -1

  • If SKIP_RATE_INTERPOLATION = “Yes”
    • MA_LAND.UNITS_PRICE = first rate found in MA_PARM_LANDRATE that is greater than MA_LAND.UNITS.

Example: MA_LAND.UNITS = 5000
MA_PARM_LANDRATE has 4 records
UP_TO_UNITS | RATE
2000 25
4000 20
6000 15
999999 5
MA_LAND.UNITS_PRICE = 15

STEP 3 – Base Rate Calculation (Interpolation = No)

If SKIP_RATE_INTERPOLATION = “No”

  • MA_LAND.UNITS_PRICE = rate proration between UP_TO_UNITS in MA_PARM_LANDRATE based MA_LAND.UNITS.

Example: MA_LAND.UNITS = 5000
MA_PARM_LANDRATE has 4 records
UP_TO_UNITS | RATE
2000 25
4000 20
6000 15
999999 5
MA_LAND.UNITS_PRICE = ( ( (5000 – 4000)) * 20 + ( (6000 – 5000) * 15) ) / 2000 = 17.5
NOTE: If MA_LAND.UNITS <= 2000 then the rate is 25.

Format Land Unit Price

MA_LAND_UNITS_PRICE is formatted according to RATE_NB_DIGITS

STEP 4 – Agricultural Rate Calculation

This step is required only if LAND_AG_MARKET_SAME_RECORD = “yes”
MA_LAND.UNITS_PRICE_AG = MA_PARM_ LANDSCHD.FIXED_RATE_VAL_AG or evaluated from the expression in MA_PARM_ LANDSCHD.FIXED_RATE_EXPRESSION_AG
MA_LAND.UNITS_PRICE_AG is formatted according to RATE_NB_DIGITS

STEP 5 – Process Land Adjustment Features

Set the value of MA_LAND.(column)_AM for features (VB6 : pv_compute_adjustment)
We process all features (The land features are defined as all MA_TABLES records having a TABLE_TYPE = “landadjt” AND LANDADJT_CODE = “f”)

  • If MA_LAND.(column)_CD is numeric
    • then we move it to MA_LAND.(column)_AM otherwise we set MA_LAND.(column)_AM to NULL.

STEP 6 – Adjusted Rate Calculation

Adjusted rate calculation (VB6 : pv_compute_adjt_rate)
The land adjustments are defined as all MA_TABLES records having a TABLE_TYPE = “landadjt” AND LANDADJT_CODE = “r”. (rate adjustment)
Note: if MA_PARM_LANDSCHD.APPLY_RATE_ADJ_AG = -1 then the same adjustments for MA_LAND_UNITS_PRICE applies to MA_LAND_UNITS_PRICE_AG.

IF ADJ_BY_LAND_USE = “yes” AND ADJ_BY_LAND _EFFECTIVE <= MA_LAND.YEAR_ID then all rate adjustments are filtered by the MA_LAND. LUSE_CODE using the MA_PARM_LADJT_LUSE table
IF ADJ_BY_LAND_SCHEDULE = “yes” AND ADJ_BY_LAND _EFFECTIVE <= MA_LAND.YEAR_ID then all rate adjustments are filtered by the MA_LAND. RATE_SCHEDULE using the MA_PARM_LADJT_SCHD table.

a) Get Adjustment Amount (AM)

For each adjustment we evaluate MA_LAND.(MA_TABLES.COLUMN_NAME)_AM for the adjustment
MA_LAND.(MA_TABLES.COLUMN_NAME)_AM is set to NULL if MA_LAND.(MA_TABLES.COLUMN_NAME)_CD is null
MA_LAND.(MA_TABLES.COLUMN_NAME)_AM = MA_LAND.(MA_TABLES.COLUMN_NAME)_CD if MA_TABLES.TABLE_NAME is NULL or empty or only = to spaces and _CD is numeric
MA_LAND.(MA_TABLES.COLUMN_NAME)_AM = MA_PARM_LANDADJT.ADJUSTMENT or evaluated from the expression in MA_PARM_LANDADJT.ADJUSTMENT_EXPRESSION

b) Perform Average Calculation

We perform the average calculation of MA_LAND.(MA_TABLES.COLUMN_NAME)_AM by selecting all MA_TABLES.LANDADJT_AVG = -1
The average is performed and stored on the column pointed by LANDADJT_LINK_COLUMNNAME
based on the number of entries.. All the other columns are set to NULL.

Example: MA_TABLES has 5 land adjustment rates and MA_LAND has the following values
MA_LAND.ADJ10_AM = 7
MA_LAND.ADJ20_AM = 5
MA_LAND.ADJ30_AM = 8.5
MA_LAND.ADJ40_AM = 3
MA_LAND.ADJ50_AM = 9.5

COMPUTATION_SEQ | COLUMN_NAME | LANDADJT_AVG | LANDADJT_LINK_COLUMNNAME
10 ADJ10 NULL NULL
20 ADJ20 -1 10
30 ADJ30 NULL NULL
40 ADJ40 -1 10
50 ADJ50 -1 30
Average is calculated as (7+5+3)/3 = 5 so the result will be stored in MA_LAND.ADJ10_AM
Average is calculated as (8.5+9.5)/2 = 9 so the result will be stored in MA_LAND.ADJ30_AM
After this step the values are
MA_LAND.ADJ10_AM = 5, MA_LAND.ADJ20_AM = NULL, MA_LAND.ADJ30_AM = 9, MA_LAND.ADJ40_AM = NULL, MA_LAND.ADJ50_AM = NULL

c) Perform Link Calculation

We perform the link calculation of MA_LAND.(MA_TABLES.COLUMN_NAME)_AM by selecting all MA_TABLES.LANDADJT_LINK = -1
The link operation is based on the MA_TABLES.MATHS operator (+,-,X,/) AND MA_TABLES.PCT_AMT and is performed and stored on the column pointed by
LANDADJT_LINK_COLUMNNAME
based on the number of entries.. All the other columns are set to NULL.

Example: MA_TABLES has 5 land adjustment rates and MA_LAND has the following values
MA_LAND.ADJ10_AM = 8
MA_LAND.ADJ20_AM = 2
MA_LAND.ADJ30_AM = 6
MA_LAND.ADJ40_AM = 0.6
MA_LAND.ADJ50_AM = 3

COMPUTATION_SEQ | COLUMN_NAME | LANDADJT_LINK |
LANDADJT_LINK_COLUMNNAME
| MATHS | PCT_AMT
10 ADJ10 NULL NULL X p
20 ADJ20 -1 10 + a
30 ADJ30 NULL NULL + a
40 ADJ40 -1 10 X a
50 ADJ50 -1 30 – a
First Link is calculated as (8+2) X 0.6 = 6 so the result will be stored in MA_LAND.ADJ10_AM

Second link is calculated as 6-3 = 3 so the result will be stored in MA_LAND.ADJ30_AM
MA_LAND.ADJ10_AM = 6
MA_LAND.ADJ20_AM = NULL
MA_LAND.ADJ30_AM = 3
MA_LAND.ADJ40_AM = NULL
MA_LAND.ADJ50_AM = NULL

d) Perform Group Calculation

We perform the groups calculation of MA_LAND.(MA_TABLES.COLUMN_NAME)_AM by selecting all MA_TABLES.LANDADJT_GROUP NOT NULL
The goal of the group rate calculation is to come up with one rate adjustment for all groups.
The resulting rate adjustment is stored on the first entry having a group. Conceptually, the system process each entry in a group to come up with a group total. The final value is the average of all group totals

Example MA_TABLES has 6 land adjustment rates that have groups and MA_LAND has the following values
MA_LAND.ADJ10_AM = 1
MA_LAND.ADJ20_AM = 2
MA_LAND.ADJ30_AM = 3
MA_LAND.ADJ40_AM = 4
MA_LAND.ADJ50_AM = 5
MA_LAND.ADJ50_AM = 6

COMPUTATION_SEQ | COLUMN_NAME | LANDADJT_GROUP | MATHS | PCT_AMT
10 ADJ10 100 + a
20 ADJ20 100 + a
30 ADJ30 100 X a
40 ADJ40 200 + a
50 ADJ50 200 X a
60 ADJ60 200 + a

First group is calculated as (1+2) X 3= 6
Second group (4X5) + 6 = 26
Group average is performed (26+6) /2 = 16 so the result will be stored in MA_LAND.ADJ10_AM.
NOTE: The MATHS operator is ignored for the first amount of each group.

MA_LAND.ADJ10_AM = 16
MA_LAND.ADJ20_AM = NULL
MA_LAND.ADJ30_AM = NULL
MA_LAND.ADJ40_AM = NULL
MA_LAND.ADJ50_AM = NULL
MA_LAND.ADJ60_AM = NULL.

e) Perform Rate Adjustment

We perform the rate adjustment by selecting ( all non nulls MA_LAND.(column)_AM for MA_TABLES.LANDADJT_CODE = “r”
where MA_LAND.(column)_OV = 0 ) OR selecting ( all non nulls MA_LAND.(column)_OV_VALUE for MA_TABLES.LANDADJT_CODE = “r”.where MA_LAND.(column)_OV = -1 )

There are 4 MATHS sign +,-,X,/ and 2 PCT_AMT values a (amount), p (percentage).
We take the starting rate previously calculated MA_LAND.UNITS_PRICE (and possibly MA_LAND_UNITS_PRICE_AG) and we apply every rate adjustment to it. Adjustments are cumulative.
Case MATHS = ‘+’

  • If PCT_AMT = ‘a’ then we add MA_LAND.(column_name)_AM to the rate (UNITS_PRICE)
  • If PCT_AMT = ‘p’ then we first apply the percentage represented by MA_LAND.(column_name)_AM to the rate (UNITS_PRICE) and then we add the result to the rate. Example rate = 10 MA_LAND.ADJ10_AM = 5 then (10 X 5%) + 10 = 10.50

Case MATHS = ‘-’

  • If PCT_AMT = ‘a’ then we subtract MA_LAND.(column_name)_AM to the rate (UNITS_PRICE)
  • If PCT_AMT = ‘p’ then we first apply the percentage represented by MA_LAND.(column_name)_AM to the rate (UNITS_PRICE) and then we subtract the result to the rate. Example rate = 10 MA_LAND.ADJ10_AM = 5 then (10 X 5%) + 10 = 9.50

Case MATHS = ‘X’

  • If PCT_AMT = ‘a’ then we multiply MA_LAND.(column_name)_AM to the rate (UNITS_PRICE).
  • If PCT_AMT = ‘p’ then we multiply by the percentage represented by MA_LAND.(column_name)_AM to the rate (UNITS_PRICE) . Example rate = 10 MA_LAND.ADJ10_AM = 90 then (10 X 90%) = 9

Case MATHS = ‘/’

  • If PCT_AMT = ‘a’ then we divide the rate (UNITS_PRICE) by MA_LAND.(column_name)_AM
  • If PCT_AMT = ‘p’ then we divide the rate (UNITS_PRICE) by the percentage represented by MA_LAND.(column_name)_AM to. Example rate = 10 MA_LAND.ADJ10_AM = 90 then (10 / 90%) = 11.11111

If MATHS or PCT_AMT are null then no operation is performed.

STEP 7 – Initial Value calculation

Initial total value evaluated (VB6 : pv_init_compute)

MA_LAND.TOTAL_VALUE = MA_LAND.UNITS X MA_LAND.UNITS_PRICE

  • IF MA_LAND.TOTAL_VALUE < 0 and ALLOW_NEGATIVE_VAL = ‘no’
    • then MA_LAND.TOTAL_VALUE = 0
  • if LAND_AG_MARKET_SAME_RECORD = “yes”
    • then MA_LAND.TOTAL_VALUE_AG = MA_LAND.UNITS X MA_LAND.UNITS_PRICE_AG
  • IF MA_LAND.TOTAL_VALUE_AG < 0 and ALLOW_NEGATIVE_VAL = ‘no’
    • then MA_LAND.TOTAL_VALUE_AG = 0

STEP 8 – Compute Land Adjustments

Compute Land Adjustments MA_LAND.ADJ_TOTAL (VB6 : pv_compute_adjustment, pv_set_added_fields)
Similar to the logic of Step 5, we compute all adjustments based on MA_TABLES.LANDADJT_CODE = ‘a’.
The land adjustments are defined as all MA_TABLES records having a TABLE_TYPE = “landadjt” AND LANDADJT_CODE = “a”.

  • IF ADJ_BY_LAND_USE = “yes” AND ADJ_BY_LAND _EFFECTIVE <= MA_LAND.YEAR_ID
    • then all adjustments are filtered by the MA_LAND. LUSE_CODE using the MA_PARM_LADJT_LUSE table
  • IF ADJ_BY_LAND_SCHEDULE = “yes” AND ADJ_BY_LAND _EFFECTIVE <= MA_LAND.YEAR_ID
    • then all adjustments are filtered by the MA_LAND. RATE_SCHEDULE using the MA_PARM_LDJT_SCHD table.

a) For each adjustment we evaluate MA_LAND.(MA_TABLES.COLUMN_NAME)_AM for the adjustment
MA_LAND.(MA_TABLES.COLUMN_NAME)_AM is set to NULL if MA_LAND.(MA_TABLES.COLUMN_NAME)_CD is null
MA_LAND.(MA_TABLES.COLUMN_NAME)_AM = MA_LAND.(MA_TABLES.COLUMN_NAME)_CD if MA_TABLES.TABLE_NAME is NULL or empty or only = to spaces and _CD is numeric.

The MA_PARM_LANDADJT records are filtered by the various lookup_seq columns and by the up_to_units. The up_to_units value is based on the value of MA_TABLES.APPLY_TO.
Case ‘d’ MA_LAND.DEPTH
Case ‘f’ MA_LAND.FRONTAGE
Case ‘u’ MA_LAND.UNITS

  • MA_LAND.(MA_TABLES.COLUMN_NAME)_AM = MA_PARM_LANDADJT.ADJUSTMENT or evaluated from the expression in MA_PARM_LANDADJT.ADJUSTMENT_EXPRESSION

b) We perform the average calculation exactly like Step 5b.

c) We perform the link calculation exactly like Step 5c.

d) We perform the land adjustment similar to step 5e by selecting all non nulls MA_LAND.(column)_AM (when MA_LAND.(column)_OV = 0) OR MA_LAND.(column)_OV_VALUE (when MA_LAND.(column)_OV = -1) for MA_TABLES.LANDADJT_CODE = “a”, except that instead of using the UNITS_PRICE we use MA_LAND.TOTAL_VALUE or MA_LAND.TOTAL_VALUE_AG and we store the result in MA_LAND.ADJ_TOTAL or MA_LAND.ADJ_TOTAL_AG

e) We add the result of step d into the total value for both market and agricultural.

MA_LAND.TOTAL_VALUE = MA_LAND.TOTAL_VALUE + MA_LAND.ADJ_TOTAL

MA_LAND.TOTAL_VALUE_AG = MA_LAND.TOTAL_VALUE_AG + MA_LAND.ADJ_TOTAL_AG

STEP 9 – Compute Site Adjustments

Compute Site Adjustment MA_LAND.SITE_ADJ_TOTAL (VB6 : pv_get_siteadjt).
Business rules

  • Site adjustment is based on the value of MA_LAND.SITE_NO and should be skipped if NULL. (cannot be null in 6.1)
  • Site adjustments are only calculated for the market value (not for the AG) portion.
  • The total site adjustment cannot produce a negative value if ALLOW_NEGATIVE_VAL = ‘no’

Adjustment Total

  • The adjustment (MA_LAND.SITE_ADJ_TOTAL ) is calculated as ( MA_LAND.TOTAL_VALUE * MA_SITE.ADJ_LAND_PERCENT / 100) + MA_SITE.ADJ_LAND_AMOUNT
  • The site adjustment is added to the MA_LAND.TOTAL_VALUE.

 

STEP 10 – Compute Neighborhood Adjustment

Compute Neighborhood Adjustment MA_LAND.NBHD_ADJ_TOTAL and Apply Minimum and Maximum land value for a neighborhood
[under review] All – Neighborhood Parm Table
The Neighborhood adjustment (MA_PARM_NBHD) is based on the property type and on jurisdiction (new).
Registry Parameters
– The total site adjustment cannot produce a negative value if ALLOW_NEGATIVE_VAL = ‘no’ – to be validated
– If CUMULATIVE_LAND_RATE = “yes”
Property Type Determination
The property type is the same that is defined in the Lookup group section at the beginning of this document. (to be validated)
The property type is defined in MA_PARM_LANDUSE.PROPERTY_TYPE or If NULL and PROPERTY_TYPE_FROM_PC_LEGAL = “yes” then we define the property type as PC_LEGAL_INFO.PROPERTY_TYPE.
If the property type is blank (15 spaces) and PROPERTY_TYPE_FROM_PC_LEGAL = “yes” then for the purposes of this step we use the property type defined in PC_LEGAL_INFO.PROPERTY_TYPE.
Neighborhood Table Lookup
IF no record found for a given property type then we search the MA_PARM_NBHD table with a blank property type (15 spaces).
– The neighborhood adjustment is only calculated for the market value (not for the AG) portion.
– The total site adjustment cannot produce a negative value if ALLOW_NEGATIVE_VAL = ‘no’ – to be validated
– The land factor is either MA_PARM_NBHD.LAND_FACTOR or an evaluated expression
Neighborhood Adjustment (compute)
The neighborhood adjustment is MA_LAND.NBHD_ADJ_TOTAL is calculated as MA_LAND.TOTAL_VALUE * land factor / 100
The nbhd adjustment is added to the MA_LAND.TOTAL_VALUE.
Apply Neighborhood Minimum and Maximums
If CUMULATIVE_LAND_RATE = “yes” and MA_LAND.ADJ_TOTAL is NULL and @subject_to_nbhd_min_max = TRUE
then
– If MA_LAND.TOTAL_VALUE < MA_PARM_NBHD.LAND_MINIMUM then MA_LAND.TOTAL_VALUE = MA_PARM_NBHD.LAND_MINIMUM
– If MA_LAND.TOTAL_VALUE > MA_PARM_NBHD.LAND_MAXIMUM then MA_LAND.TOTAL_VALUE = MA_PARM_NBHD.LAND_MAXIMUM

STEP 11 – Compute Final Adjustment

Compute final adjustment (VB6 : pv_override).
The final adjustment is calculated only if MA_LAND.FINAL_ADJ_PERCENT is not NULL.

  • MA_LAND.FINAL_ADJ = MA_LAND.TOTAL_VALUE * MA_LAND.FINAL_ADJ_PERCENT / 100
  • MA_LAND.TOTAL_VALUE = MA_LAND.TOTAL_VALUE + MA_LAND.FINAL_ADJ

 

STEP 12 – Rounding

Compute the final rounded value (VB6 : pv_override, pv_round_value).
MA_LAND.TOTAL_VALUE is rounded based on the MA_PARM_MAROUND information (code = ‘land’).
For example, if the rounding value is 1000, and the total value is 45678 then the value is 46000. If the rounding value was 100 then it would have been 45700.
Compute Logic – STEP 13

STEP 13 – Agricultural Processing

If MA_LAND.UNITS_PRICE_AG is null or 0 AND MA_PARM_LANDUSE.AGRICULTURAL = -1, then we move the value from MA_LAND.UNITS_PRICE to MA_LAND.UNITS_PRICE_AG and we set MA_LAND.UNITS_PRICE to null.

The same is done for the fields MA_LAND.TOTAL_VALUE and MA_LAND.TOTAL_VALUE_AG.

STEP 14 – Set the Modification Stamp

Step 14 – Set the modif stamp for the computed record (VB6 : compute_land).
We set MA_LAND.MODIF_STAMP = MA_MODIF_STAMP.LAND_STAMP if not null, otherwise we use the current date/time.

 

 

101-ma-compute-Land

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

MA – Sales

Mass Appraisal (MA) Sales

Overview

Comparable Sales and Sales Analysis

In Sales Analysis, existing sales records are used to derive statistics, such as median sale price, mean sale price, standard deviation, etc., and to create a ratio to validate the valuation model used in the jurisdiction (Sale Price to Appraised Value). Comparable Sales Methodology uses qualified sales to estimate the most probable price that a parcel would bring. Because an estimate always has some degree of subjectivity and can never be 100% accurate, the appraisal data must be as thorough and as accurate as possible in order to make a fair prediction of the comparable value.

In the comparable sales process, the value of a subject parcel is estimated by comparing it to a group of selected parcels that are not identical but are as similar as possible in as many aspects as possible. Three indexes are used in order to make the estimate, the Selection Index, the Adjustment Index, and the Comparable Index.

Comparable Sales Process

The comparable sales process can be divided into the following steps:

  • Building a Qualified Sales Sample
  • Calculate Adjustment Values
  • Compute and Sort the Qualified Sales Sample
  • Calculate the Comparable Sales Value

 

Build a Qualified Sales Sample

The first step in the Comparable Sales process is to build a qualified sales sample. In this step, a number of recently sold parcels are selected for a sales sample on the basis of similarity to the subject parcel. The criteria for determining similarity are user-defined but generally include the neighborhood, the building model or style, and the number of bedrooms. The parcels considered for selection typically meet some of the criteria but not all, as it is rarely possible to find two parcels that are the same in all aspects. For example, a selected parcel may be built in the same style as the subject parcel but have a different number of bedrooms, or be located in a different neighborhood. These types of differences are compensated for by the use of a Selection Index.

The Selection Index is used to select qualified parcels for a comparison. A number is added to the selection index for each aspect of the selected parcel that is different from the subject parcel. This number is defined by the organization and is based on the appraiser’s judgment. A number could be added to the selection index for the neighborhood, as follows. If the neighborhood of the selected parcel is different from the subject parcel but the two neighborhoods have the same market conditions, a low number is added to the index. If the two neighborhoods have very different conditions, a high number is added to the index. A lower selection index always indicates that a parcel is more comparable.

In Govern Admin, you can set the program to reject the parcels with a selection index that is greater than a specific value, as these would be too different to qualify as comparable. The parcels that have an index within a certain range can be used to form the qualified sales sample.

Calculate Adjustment Values

NOTE: In this version of Govern, the adjustments are not calculated. The Comparable Sales is made using the Selection Index only.

The second step of the Comparable Sales process is to calculate the Adjustment values. In this step, the sale prices of the parcels from the qualified sales sample are adjusted in relation to the subject parcel. For example, all else being equal, a smaller parcel would sell for less. If the area of the selected parcel is 2,500 square feet and that of the subject parcel is 2,000 square feet, the subject parcel would sell for less. To compensate for this, the program subtracts an amount from the sale price of the selected parcel. If the overall quality of the selected parcel is not as high as the subject parcel, the subject parcel would sell for more. In this case, an amount is added to the sale price of the selected parcel.

In addition to the actual dollar value of the total adjustments made on a parcel, the number of adjustments must be considered. A parcel with a low total adjustment value may actually be less comparable than a parcel with a higher adjustment value. For example, a parcel may have a negative adjustment of $10,000 due to its size and a positive adjustment of $10,000 for its overall quality. These adjustments would cancel each other out and the total adjustment would be $0. Another parcel with a single positive adjustment of $5,000 would actually be more comparable but have a higher total adjustment value. To compensate for this discrepancy, an Adjustment Index is used.

Using the Adjustment Index, the absolute value of the adjustment is measured, as is the value of the adjustment in relation to total value of the building. For example, as a $10,000 adjustment has a greater impact on a $100,000 parcel than on a $250,000 parcel.

To compute the adjustment, the absolute value, i.e., the value without a positive or negative consideration, of each adjustment is added. The total value is divided by the actual sale price. This result is multiplied by 100.

For example, if the parcels in the preceding example sold for $250,000 each, the adjustments would be calculated as follows:

 

Values Parcel A Parcel B
Adjustment 1 (10,000)* 0
Adjustment 2 10,000 5,000
Total of Adjustments 20,000 5,000
Sale Price in dollars 250,000 250,000
Adjustment Index    
(Total of Adjustments) / (Sale Price) * 100 20,000 / 250,000 = 0.08 * 100 = 8 5,000 / 250,000 = 0.02 * 100 = 2

 

Compute and Sort the Qualified Sales Sample

Computing and sorting the Qualified Sales sample is the next step in the Comparable Sales process. In this step, the Comparable Index is used to compute and sort the qualified sale sample. The comparable index is computed for each parcel by adding the Selection Index to the Adjustment Index. The parcel with the lowest comparable index has the lowest index.

Calculate the Comparable Sales Value

Calculating the comparable sales value is the fourth step of the comparable sales process. In this step, the weighted sales of all the selected parcels are calculated in order to determine the comparable sales value of the subject parcel. Before this step can occur, the number of qualified sales must be greater than or equal to the minimum defined in the administrative setup. A maximum number is also defined. In the following example, three parcels are selected for the qualified sales sample.

Ideally, all parcels would be fully comparable with a comparable index of 0. The comparable value would be an average of all adjusted sale values. As this would almost certainly never occur, it is important to ensure that the most comparable parcels get a greater weight than the parcels that have had more adjustments added and are less comparable. This increases the accuracy of the projection.

A weighted mean is applied to each adjusted sale value that is proportionally the inverse of the comparable index. More weight is given to the adjusted value when the index is lower.

To be more accurate in its projection, Govern evaluates the weight relative to the other sales in the sample. Using this technique, a comparable sales index of two and one of eight may get different weights if a third sale has an index of 10 versus an index of 20.

Using the comparative index, the weighted sales are calculated by dividing the sum of the comparable sales indexes by the comparable sales index for each parcel.

The result obtained from this operation for each individual parcel is divided by the sum of all the results.

The ratio obtained for each parcel is multiplied by the adjusted sales value. Each result is added to obtain the final comparable sale value for the subject parcel.

These steps are presented in the following table. This table uses three example parcels with simplified values.

  Parcel 1 Parcel 2 Parcel 3
Comparable Sales Index per Parcel (Selection Index + Adjustment Index) 4 8 12
Adjusted Sale Value $150,000.00 $130,000.00 $180,000.00
Total Comparable Sales Index for all Parcels Sum is 4+ 8+ 12 = 24
Weighted Sales (Total Comparable Sales Index)/(Comparable Sales Index per Parcel) 24/4 = 6 24/8 = 3 2 24/12 = 2
Sum of Weighted Sales Sum is 6 + 3 + 2 =11

Weighted Sales Ratio

Sum of Weighted Sales / Weighted
Sales per Parcel

6/11 or 0.55 3/11 or 0.27 2/11 or 0.18

Weighted Sales Value

Adjusted Sales Value / Weighted Sales Ratio

($150,000 X .55) ($130,000 X .27) ($180,000 X .18)
Sum of Weighted Sales ($150,000 X .55) + ($130,000 X .27) + ($180,000 X .18) = ($82,500) + ($35,100) + ($32,400) = $150,000

The ratio obtained for each parcel is multiplied by the adjusted sales value and the total of each result is added to obtain the final comparable sale value for
the subject parcel. ($150,000 X .55) + ($130,000 * .27) + ($180,000 * .18) = $150,000.

Related Topics

 

 

 

101-ma-frm-015

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

101-ma-bp-004

 

Mass Appraisal Batch Update Process

Overview

This batch process is not available. Contact R&D for Roadmap information.

 

Related Topics

CAMA Mass Appraisal What’s New

 

 

101-ma-bp-004

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

MA – Generate Pending Audit Batch Process

Mass Appraisal Generate Pending Audit Batch Process

Overview

The Mass Appraisal Audit Pending batch process automatically generates new MA Audit Information records in Govern OpenForms. While these records can be created manually, running the batch process can save time and increase the accuracy of the records

Records can be created for a:

  • Saved dataset
  • Jurisdiction and neighborhood
  • Range of tax map numbers

The MA Audit Pending batch process updates the following fields on the MA Audit Information form. Once the batch process is complete:

  • The Status field is set to Pending.
  • The Frozen ID is set to 0.

The following fields are updated as selected on the batch process form.

  • Audit Reason Code: This is a required field.
  • Appraiser
  • Entry Date: This is a required field.
  • Entry Code
  • Activity Code: This is a required field.
  • Source Code

You can select parcels from the batch process by jurisdiction or neighborhood within a range of tax map numbers, or in a saved dataset. Alternatively, you can crate audit records for all parcels. The fiscal year is required.

The Mass Appraisal Audit Pending batch process generates Audit Information user records in Govern OpenForms. The Status field is set to Pending once the process is run. These records can be modified or deleted, as any other record.

Documentation

To read this information in pdf format, click on the following link:

BatchAuditPending.pdf

Prerequisites

The following tables are required for the Mass Appraisal Audit Pending batch process:

  • MA_APPRAISERS: This table lists the appraisers that can be selected for the audit.
  • NA_NAMES: This table lists all the name and address accounts in the deployment.
  • VT_USER.MAENTRY: This table lists the entry code that can be associated with an audit.
  • VT_USER.MAINFSRC: This table lists the source codes associated with the Mass Appraisal audit.
  • VT_USER.MAACTV: This table lists the activity codes associated with the audit.
  • VT_USER.MA_AUDIT_REASON: This table lists the reasons for conducting the audit.

If you are running the process on a saved dataset, one must be created.

Related Forms

The Mass Appraisal Audit Information form is updated by the Mass Appraisal Audit Pending batch process. The Mass Appraisal Audit Finalized batch process can be run to create finalized MA Audit Information records from pending ones.

MA Audit Information User Form

The following new fields are now included in the MA Audit Information form. These are required for the MA Audit Pending and MA Audit Finalized batch processes.

  • Status: The Status field is automatically set to Pending when you run the MA Audit Pending batch process. In this state the form can be modified or even deleted. An appraiser can update the status field to Finalized. The MA Audit Finalized batch process selects the Finalized flag. At this point, the record can no longer be modified.
  • Audit Reason Code: The Audit Reason Code contains user defined values from the VT_USER.MA_AUDIT_REASON table. When you run the MA Audit Pending batch process, you must select a reason code. This can be modified after the process is complete.

For details, see Mass Appraisal Audit Information.

Related Batch Processes

The MA Audit Finalized Batch Process is similar to the MA Audit Pending batch process. It generates finalized Mass Appraisal Audit Information records for existing MA Audit Information records with the Status set to Finalized. The MA Audit Finalized batch process selects the Finalized option and updates the Entry Code as set on the batch process. The finalized Audit Information records cannot be deleted, except by a user with authorized permissions.
For details, see Mass Appraisal Audit Finalized.

Business Rules for the MA Audit Pending Batch Process

The MA Audit Pending batch process creates new MA Audit Information records for all Mass Appraisal records that:

  • Match the Selection Criteria
  • Do not have a current MA Audit Information recording with Frozen ID 0
  • Are in the Fiscal Year selected

Creating Mass Appraisal Audits

You can use the Mass Appraisal Pending and Mass Appraisal Finalized batch processes, as follows, in order to facilitate the Mass Appraisal audit procedure. None of these steps are required.

Step 1
Receive the requirement to create a number of Mass Appraisal Audit Information records on parcels within any of the following:
  • A Saved Dataset
  • A Jurisdiction and Neighborhood
  • A Range of Tax Map Numbers
Step 2
Run the Mass Appraisal Audit Pending batch process in order to create Mass Appraisal Audit Information records.:
Result
The MA Audit Pending batch process updates the following fields on the MA Audit Information form:
Status: Sets the Status field to Pending.
Frozen ID: Sets the Frozen ID to 0. This indicates that the record is current and modifications can be made.
It updates the following fields on the user form as selected on the batch process form.
  • Entry Date
  • Appraiser
  • Entry Code
  • Source Code
  • Activity Code
  • Audit Reason Code
The record can be modified or deleted at this point.
Step 3
Perform audits on the parcels, update the Audit Information records, and set the Status field to Finalized.
Step 4
Run the MA Audit Finalized batch process in order to create a number of Mass Appraisal Audit Information records for parcels within any of the following:
Result
The MA Audit Finalized batch process updates the following fields on the MA Audit Information form:
  • Status: Sets the Status field to Finalized.
  • Value Finalized: Selects the Value Finalized check box.
  • Frozen ID: The Frozen ID is set to a value starting with -2. This is updated for each audit performed/
Updates the following field as selected on the batch process form.
Entry Code
The record is frozen and cannot be modified, unless the user is granted the required access permissions. Typically, only supervisors have access to modify frozen records.

Defining the MA Audit Pending Batch Process

There are no special requirements for the MA Audit Pending batch process. It is set up as any other batch process in Govern OpenForms. You can create as many MA Audit Pending batch processes as required.

To configure the batch process:

  1. Launch GNA.
  2. Select Editors > Batch Process Definition Editor.
  3. Select 101-ma-bp-007 – MA – Audit Pending.
  4. Enter a Code, Short, and Long Description in order to uniquely identify the batch process.
  5. Select the Transaction tab.
    The Transaction Type and Transaction Mode can be set to any value, depending on how you want to run the batch process. Refer to the Govern Batch Scheduler guide for details.
  6. Complete the other parameters as required by your organization.
  7. Click Save.

Adding the MA Audit Pending Batch Process to a Profile

In order to use the batch process in Govern OpenForms, you must add it to at least one Profile. You can add it to multiple Profiles.

To add the batch process to a Profile:

  1. Launch GNA.
  2. Select Editors > Profile Editor.
  3. Select the Profile that you want to use.
  4. Select the Links tab.
  5. Click Add in the Batch Process section to add open a secondary window.
  6. Select the batch process.
  7. Click Save.

Running the MA Audit Pending Batch Process

To run the batch process:
Open the Batch Program:

  1. Launch Govern.
  2. Open a Profile that contains the MA Audit Pending batch process.
  3. Open the Batch Processing Explorer.
  4. Select the Mass Appraisal Audit Pending batch process.

Complete the Parameters:

  1. Complete the Selection Criteria as follows.In the Parcels to Compute, do one of the following:
    Select All to create Pending Audit records for all parcels with Aduit records that do not have a do not have a status..
    Select Saved Dataset and select a saved dataset from the drop-down list.
  2. Select Jurisdiction and select a jurisdiction and neighborhood from the drop-down list.
  3. Select Tax Map Number and enter a range of tax map numbers.
  4. Enter the year you are associating with the Audit records in the Year parameter.
  5. Click on the calendar icon and select the date of the audit.
  6. Select the Appraiser who is responsible for the audit from the Appraiser drop-down list.
  7. Select the entry code from the drop-down list (Table: VT_USR. MAENTRY).
  8. Select the source code from the drop-down list (Table: VT_USR. MAINFSRC).
  9. Select the activity code from the drop-down list (Table: VT_USER. MAACTV).
  10. Select the reason for the audit from the Audit Reason drop-down list (Table: VT_USR.MA_AUDIT_REASON).

Run the Program

  1. Do one of the following:
    Click Run to run the batch process immediately.
    Click Schedule to run the batch process at a later time.

Viewing the MA Audit Log Files

The following information is logged and appears on the Processing tab of the MA Audit Information batch process in Govern. If you are scheduling the process to run at a later time, the information can be viewed on the Log Files in the Govern Schedule

Parameter: ReasonCode = The Reason Code selected for the batch Process.
Parameter: BatchProcessType = The name of the batch process.
Parameter: Appraiser = The name of the appraiser who is responsible for the audit.
Parameter: EntryDate = The date of the audit.
Parameter: EntryCode = The entry code selected for the Audit.
Parameter: Activity = The activity code selected for the audit.
Parameter: SourceCode = The source code selected for the audit.
Parameter: ValueFinalized = Displays True or False according to whether the Value Finalized option is selected or deslected.
Parameter: YearId = The year the audit occurred.
Parameter: IsAllParcels = Displays True or False according to whether All is selected.
Parameter: CanChooseJurisdictionNeighborhood = Displays True or False according to whether the Jurisdiction option is selected.
Parameter: Jurisdiction = Displays the code for the jurisdiction.
Parameter: Neighborhood = Displays the code for the jurisdiction and neighborhood.
Parameter: CanChooseTaxMapRange = Displays True or False according to whether the Tax Map Number options is selected.
Parameter: TaxMapStart Displays the starting tax map number in the range.
Parameter: TaxMapEnd: Displays the ending tax map number in the range.
Parameter: CanChooseSavedDatasets = Displays True or False according to whether the saved dataset option is selected.
Parameter: SavedDataset Displays the name of the Saved Dataset.
Parameter: AuditBatchID = Displays the Batch ID associated with the audit.
Parameter: MaxNumberProcess = Displays the maximum number of records processed.
Parameter: RunBatchAsync = Displays True or False according to whether the transaction type of the batch process is Synchronous or Asynchronous
Information: Parameter: TransactionMode = Displays the transaction type, such as ContinueIfOneTransactionFail
Parameter: BatchId = Displays the batch ID.

Viewing the Updated Record in Govern

Once the batch process is run, a new audit record is created with the status set to Pending for all parcel records that meet with the criteria.
To view the updated records.

  1. Launch Govern.
  2. Open a Profile that contains the MA Audit Information form.
  3. Perform a search to retrieve the required records.
  4. Select a record.
  5. Open the MA Audit Information form.
  6. Scroll to the required record.

 

 

101-ma-bp-007

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

 

Standard Feature – Sequential Batch Process

Standard Feature – Sequential Batch Process

Version 6.0 and Version 6.1

Overview

Available in Release 6.0 and 6.1

A standard feature that is available in version 6.0 and 6.1 of the Scheduler Console is sequential batch process scheduling. This feature may be configured to allow users to execute multiple batch processes without human interaction. This feature is convenient for launching batch processes during periods where there is less impact on users accessing the network. As an example, these sequenced batch processes could be initiated and set to run overnight, over a weekend, or through the extended periods of a holiday.

The Sequential Batch Process feature allows users to configure a list of Schedules in order to create a linked sequence of Batch Processes in the Govern New Administration (GNA). As each batch process is successfully completed, i.e. no errors generated, it will automatically initiate the next pre-configured batch process in the user defined sequence.

NOTE: Sequential Batch Processes are initiated, and monitored in the Govern Scheduler (SC). The status of the execution of each batch process is displayed through the console of the Govern Batch Scheduler application.

Example of a Sequential Batch Process

The following is an example of a possible Sequential Batch Process. The example will demonstrate a basic batch process that, upon successful completion, will initiate two (2) child batch processes. Each of the two child processes will in turn trigger other processes, and so on. Refer to the example below.

Example

  1. Batch process A is configured to run daily.
  2. When Batch process A ends it will initiate batch processes B and C
  3. Batch process B initiates batch processes D and E
  4. Batch process E initiates batch process G
  5. Batch process C initiates batch process F
  6. Batch process F initiates batch process H

All batch processes B, C, D, E, and F are configured to be triggered upon successful completion.

https://kb.harrisgovern.com/wp-content/uploads/2019/01/Sequential_Flowchart00.png

Configuration

Read More...

Sequential batch processes are configured in the Govern New Administration (GNA). Preview and execution of the batch processes are presented in the Govern Scheduler.

For further detail Govern batch process scheduling, refer to the Govern Schedule user guide for details (106-gs-all-GovernScheduler.60.pdf).

 

https://kb.harrisgovern.com/wp-content/uploads/2019/01/Sequential_Flowchart01.png

Govern New Administration (GNA)

To configure Sequential Batch processes it will be necessary to first create a new batch process or use an existing one. You would next need to create a schedule for that Batch Process. This batch process will then be configured to, upon completion, trigger the next batch process in the sequence.

TIP: When planning sequential batch processes, it is recommended that a flowchart of sorts is sketched out to use as a guide to visualize your setup. In addition, as each schedule is associated with a batch process, the batch process used should also be noted.

 

Using the example flowchart of schedules, i.e. A, B, C, D, E, and F, we will say that Batch Process A is associated with Schedule A.  Batch Process B will be associated with Schedule B, and so on.

Parent Schedule

With our flowchart drawn out for our example, we will say that the Batch Process A schedule will be called Schedule_A. Schedule A is also the parent batch process that will trigger all subsequent processes. As the parent process its configuration is different from all subsequent processes.

Creating the Parent Schedule

To create the first schedule called Schedule A in the GNA…

  1. On the GNA ribbon, click Editors (tab) > Batch Process Definition Editor.
  2. In the Batch Process Definition Editor select the batch process that will be the parent.
  3. On the Batch Process Definition tab, either select an existing batch process, or click Create a new item to create a batch process.
  4. Click to select the Scheduling sub tab.
  5. Click Add.
  6. The form to configure the schedule is displayed.
NOTE: If the batch process requires parameters to be configured, this must be completed first. The save action is required before you can schedule the batch process.
  1. Click to select the Schedule
  2. Enter a Name, and a Description.
NOTE: Name and Description are required parameters; you will not be able to save without completing them.
  1. In the Settings group below, set a frequency for the schedule; select One time, Day, Week, or Month. Additional settings allow you to specify a Start Date, and expiration date, i.e. Expires on:. For our example, this will be a one time schedule so select One time.
NOTE: As this is the first batch process, the option for Triggered should not be selected.
  1. Click Save Changes on the Schedule.
  2. Click the Close button [X] in the upper right hand corner to close the form.

Creating the Child Schedule

Configuring B and C

Referring back to our flowchart, we see that the Children batch processes, B, and C, are at the same level and are triggered by batch process A. We will need to configure Schedule B to trigger batch process D, and E. Batch process C will trigger batch process F. As batch processes B and C are both at the same level, they will be run simultaneously.

To create any Children schedules, e.g. Schedule B, C, and all other subsequent processes…

  1. On the GNA Batch Process Definition Editor, click to select the batch process that will be designated as Schedule B.
  2. On the Batch Process Definition tab, click to select the Scheduling sub tab.
  3. Click Add to display the Schedule
  4. If the batch process requires parameters to be configured, this must be completed first. The save action is required before you can schedule the batch process.
  5. Select the Schedule
  6. Enter a Name and a Description for the schedule; for our example we will use Schedule B, and “Schedule B triggered by Schedule A” for the Name and Description:

We now need to specify that Schedule B is to be triggered by the successful completion of the batch process that is attached to Schedule A.

  1. In the Settings group, click the Triggered radio button.
  2. In the Parent group, select the batch process for Schedule A from the combo box, i.e. Batch Process A.
  3. Select the Schedule; the combo box will display Schedule A.
NOTE: If the batch process is also associated with other schedules, they will also be listed. It is important that you select the correct schedule.
  1. On the Schedule tab, click Save Changes, to save the setup.
  2. Click the [X] in the upper left hand of the form to close the form.

Configuring Sequential Schedules D and E

Referring back to the workflow sketch, we see that Schedule C / Batch Process C is at the same level as Schedule B, it will be necessary to select the batch process that will be associated with Schedule C. For the Parent you will specify Schedule A. For the configuration, it will be necessary to repeat all steps for configuring a Child Schedule; see above steps. Schedule D / Batch Process D and Schedule E / Batch Process E are triggered by Batch Process B, and should be configured accordingly.

Govern Scheduler Console Preview and Execution

Viewing the setup in Govern Scheduler

When complete the final sequential batch processes can be seen in the Govern Scheduler group of the Govern Scheduler console. Looking at the interface, we can see that Schedule A is at the top of the list as the parent process. Schedule B and Schedule C are at the same level, both have their sub processes which they will trigger. Schedule D and Schedule E will be triggered by Schedule B, and Schedule F is triggered by Schedule C. Finally Schedule G is triggered by Schedule E, and Schedule F triggers Schedule H.

If a Batch Process fails…

During execution of the batch processes, if a batch process in the sequence fails, all subsequent children processes in that chain will not be executed. For example, if Batch Process B for Schedule B fails to execute, it will need to be corrected. After rectifying the error with the process, it will be necessary to execute Batch Process B again. After which all subsequent processes will then be triggered. It is not necessary to execute the entire process flow again, i.e. Schedule A.

Executing the Batch Process

To execute the Batch Processes in the Scheduler Console

  1. Click to select the process in the console.
  2. Click Execute.
NOTE: Refer to the Govern Scheduler user guide for additional configuration details, and running Batch Processes.

Business Rules

Deletions of Processes in Batch Scheduler and GNA

In the Batch Scheduler or in GNA, trying to delete a schedule with Child schedules will generate an error message. This message will indicate that in order to proceed, you must first delete the child schedules before you can delete the parent.

Deleting Parent Schedules in the Batch Scheduler

An error will be generated when attempting to delete parent schedules that are linked to sub schedules, i.e. schedules that they trigger.

Documentation

Click to view the .PDF document detailing this feature. (101-std-fea-046_SequentialBatchProcesses.pdf)

 

 

101-std-fea-046

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

MB – Initialize Year Data Batch Process

Miscellaneous Billing (MB) – Initialize Year Data Batch Process

Overview

Govern OpenForms Miscellaneous Billing module is year based and the purpose of this functionality is to create the recurring invoices in choosen year for the invoices that have not expired.
The system will check the END date with the Current Menu date to make this determination.

The Initialize Year functionality is a Batch Process and like any other batch process, it can be setup by profile with role and user security, scheduled, monitored, etc.

  • The batch process name is [mb_init_year] and it will be created when the Verify Database is run for the first time after having deployed a 6.1.1609 deployment.
  • The batch process definition [103-mb-bp-006] is available using the import/export. (to be verified)
  • The same batch process can be setup in multiple batch process definitions (with different schedules, notifications, etc.)
  • The batch process definition can be setup as an Action Button or a Link item that can be placed on a standard Form or on the user Cool Bar.
  • See Standard Batch Process details Batch Program Setup or Govern Scheduler for more details

This batch process can be accessed from:

  • Govern Administrator (GNA), select Application Configurations, Miscellaneous Billing,
  • Govern, open Profile Batch Process tool box window

 

Read More...

 

Batch User Interface

The following user criteria will impact what invoices will be processed.
Selection Criteria
You can select criteria to refine the process or leave these fields blank to process all transactions.Year

  • Select the year for to copy

Recurring Code (Batch Name)

  • Enter the batch name or number for the records you are processing, or
  • Leave this field blank to process all transactions.
  • Mandatory

Category Code

  • Enter a category code to limit the process to invoices setup with this category code.

Issuing Department

  • Enter a department to limit the process to invoices setup/issued for this department.

Override Invoice Date

  • Used to override the invoice date that will be created.
  • If left blank will use the current date

The selection criteria for the From year is user persistent and will appear the next time the batch process is executed.
However, the destination year is not persistent, so this field will be reinitialized each time the batch process is executed

Batch Processing

General Batch Processing

  • The process definition can be executed in SYNC mode only and this mode will be forced or overridden upon execution.
  • The batch transaction Mode = “Roll Back If One Transaction Failed” is not supported. It will be “Continue If One Transaction Failed” by default

 

Records to be Processed

Only the recurring invoices meeting these rules will be processed:

  • Recurring Invoices for the specified year
  • User Profile Current Date is superior to the Recurring Invoices Effective FROM Date and inferior to the Effective TO Date or end date.
    • If Effective TO Date is blank, it will be set internally to 12/31 of the recurring invoice year.
  • User Profile Current Date must be in the 1/1 and 12/31 range of the selected year.

On Warning and Error Reporting
During the execution, standard warning and error messages will be presented in the batch result grid.

  • On error, the MB ID will be displayed in the message text. Note: Double-click on the message to access and copy the full text

 

On completion

The following standard information will be displayed:

  • Parameters and Options used
  • Total number of records read
  • Total number of records processed

Log File

At the end of the batch process, a log will be created:

  • Log file called mbInitializeYear.log

 

Troubleshooting

The following is to help troubleshoot the batch process.

  • After changes, it is always best to compute for a single year and small dataset
  • The parcel id is listed in the error message
  • Turning on the Govern Diagnostic Tool
  • Turning on the SQL Profiler Tool (system administrator)

 

Related Topics

 

 

 

103-mb-bp-006

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...

 

BP – Standard Attachments and File Transfer

Standard Batch Process – Attachments and File Transfer

Version 6.0

Overview

Batch programs can generate reports and files. It is possible to send these attachments by email and to specify the path where they will be copied.

Setting a Path

You can define a network or local path for saving the files and/or reports that are generated by the selected batch process. You can also enter an ftp address for these attachments.
This is useful for batch processes that generate an attachment, such as a csv or text file. For example, information about tax accounts with an overdue balance could be extracted from the database and copied to a csv file by a batch process.
You can specify the local or network path for this file and / or upload it directly to an ftp site where it can be made available to the bank.

106-install-security-UI-1.jpg

Copy Attachments to Path

Select Copy Attachments to Path if you want to copy the attachment to a specific folder on the network or server. Click the ellipsis button and enter the path to the server or network folder where you want to save the exported file.

  • For each batch definition, you can now specify the path and folder where the attachments (logs & output files) are to be copied.
  • IMPORTANT FOLDER SHARING: These folders need to be shared with Read/Write access granted to the users that will run the batch process AND to the server that hosts the Batch Scheduler Service. (To grant access to a server, use the format SERVERNAME$).
  • Ensure that you enter the path in UNC format.

NEW! Archive Folder

You can now specify a folder (local or network path) that will be used as a central location to archive the files that served either as input or output in a batch program execution. Optional feature that must be implemented in the batch (standard or custom) program.

The Archive Folder is set in Govern OpenForms General Settings (SY REGISTRY):

  • [Filter] Batch Process – [Section Name] Batch Process – [Key Name ] Archive Folder

FTP Address for Attachments

FTP Specification

The following data needs to be entered:FTP Address

  • Enter the address of the ftp server.

FTP Folder

  • Select the folder and any subfolders for the files.

User Name

  • Enter the user name for the ftp account

Password

  • Enter the password for the ftp account

Port

  • Enter the Port Number for ftp communications. The default is 21.

Timestamp

Select Add Timestamp if you want to add a timestamp to the file This is appended to the file name, using the following format: Filename_YYYY_MM_DD_HH-MM-SS.File Extension, where

  • Filename is the name of the file.
  • YYYY are the four digits reserved for the year.
  • MM are the two digits reserved for the month.
  • DD are the two digits reserved for the day.
    • HH are the two digits reserved for the hour. This uses the 24-hour clock format.
    • MM are the two digits reserved for the minutes.
    • SS are the two digits reserved for the seconds.

File Extension

The file extension can be any format supported by OS and ftp site. Csv and txt are typical.
Following is an example of a file generated by a batch process.
InvoiceCloudInvoiceReport_UB_2013-05-22_12-07-42.csv

 

 

100-bp-Attachments

 

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this.
Loading...