MA – Income Fields

Mass Appraisal Income Fields

TABLE MA_INCOME

Fields used for
Rental dir_rate grm_rate
rent_unit_type rent_net_units
Gross Rent gross_rent_percent gross_rent_rate gross_rent_value
Income Quality inc_quality_pct inc_quality_unit inc_quality_value
Vacancy vacancy_pct vacancy_unit vacancy_value
Other Income other_income
Shortfall shortfall_pct shortfall_value
Room Occupancy % rm_occupancy_pct
Expenses room_exp_pct room_exp_unit room_exp_value
food_exp_pct food_exp_unit food_exp_value
telecom_exp_pct telecom_exp_unit telecom_exp_value
dept_exp_pct dept_exp_unit dept_exp_value
other_exp_pct other_exp_unit other_exp_value
fixed_exp_pct fixed_exp_unit fixed_exp_value
operating_ex_pct operating_ex_unit operating_ex_value
replace_exp_pct replace_exp_unit replace_exp_value
misc_exp_pct misc_exp_unit misc_exp_value
taxes_exp_pct taxes_exp_unit taxes_exp_value
ffe_exp_pct ffe_exp_unit ffe_exp_value
Net Rental net_percent net_unit net_value
Overall Adjustment overall_adj_pct overall_adj_unit overall_adj_value
Gross Effective gross_effective
Gross Income income_dir income_grm
Net Income net_dir net_grm
Site Adjustment site_adj_pct site_adj_unit site_adj_value
Final Adjustment final_adj_dir final_adj_grm

 

 

101-ma-compute-incomefields

 

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...

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 – Site Information

CAMA Site Information

Overview

The CAMA Sites form is used for calculating the site adjustments for a parcel based on location and other geographical information. For example, the proximity to heavy traffic, green spaces, or schools can have an influence on the appraised value of a parcel. The Site Adjustments are defined in GNA and associated with the mass appraisal land, building, miscellaneous structure, personal property, or income data record for the parcel. An adjustment can also be associated with all these appraisal records as a group.

See also Site Description setup.

There are two main tabs: CAMA Sites Information (General, Adjustments and Values) and CAMA Sites History. The CAMA Site History divider displays all the CAMA Sites records for the property including the current year record and all records from past and future years, if they exist. Records are displayed by Site Number, Year ID, and Frozen ID. All the appraisal values and adjustments are displayed.
Multiple Site Information records can exist for a parcel.

What’s New

Refer to the Mass Appraisal What’s New Page

[6.1] Site Adjustments can be included in a Mass Appraisal Link Group
[6.1] Site Group Description query in use in other mass appraisal value components (land, building, income, etc.) — see also Site Setup Technical Information
[6.1] Site Value for Personal Property and MRA [10.8] [6.1] Overrides Values: New checkboxes and fields are added to the form for override values. If you enter an override value, it is displayed on the form beside the original calculated value.

Features

Standard

  • Site Adjustments
  • Frozen Records
  • Roll Forward: A message appears when you click Save, prompting you to roll the record forward to future years, if records exist.

Action Buttons
In addition to the standard action buttons, the CAMA Sites form has action buttons for copying the record and refreshing the calculated data,

  • Copy:You can copy a site information record to another property or to multiple properties. There are two ways to do this:Copy with Search: Click the Copy with Search icon to open the Search screen. Then, perform a search and select the property records to which you want to copy the Site Information record.
    Copy to Recordset: Click the Copy to Recordset icon to copy the Site Information record to all the property records in the current record set. A confirmation message appears. Click Yes to continue.

Fields

Site Number
Enter a unique number for the site. This provides a reference for linking the Site Information record to other Mass Appraisal records. The Site Adjustments can then be applied to the land, building, miscellaneous structures, and income data records.

Site Information Grid

All Mass Appraisal Site Adjustment validation tables are listed by Sequence Number, Adjustment Type, Adjustment Code, and Value.
Sequence Number
The sequence numbers are displayed in the left column of the grid. These are assigned in Govern Admin according to the order that the adjustments need to be calculated. If one adjustment is dependent on the result of another, it is assigned a higher number. Adjustments are calculated in order of sequence number; i.e., the adjustment with sequence number two is calculated before number three.
Adjustment Type
The short description from the Site Adjustment Validation Table is listed under the Adjustment Type column
Adjustment Code
Select an adjustment code for each adjustment type that you want to include in the site adjustment. These are the codes created for the Site Adjustment validation table in Govern Admin. Values are defined for these codes.
If you are not selecting a code for an adjustment type, you can enter a description in the Adjustment Code field. No value is attached to this type of entry.
Value
When you click Save, the value corresponding to the selected code is displayed in the Value column.
Overide
Click the override checkbox to enter an override value.
Override Value
Enter an value if you want to override the calculated value.

Adjustments Summary
The CAMA Sites Adjustments divider displays the Site adjustment amounts and percentages for all the CAMA modules: Building, MRA, Income Data, Land, and Miscellaneous Structures.

When you create the Site adjustments in Govern Admin, you can define them for a specific CAMA module or for all CAMA modules. The total amount or percentage for each module is displayed on the Adjustments Summary tab.
These values are listed as amounts or percentages according to how they are defined in Govern Admin. For example, the total of all site adjustments defined as amounts specific to buildings or to all modules is displayed in the Adjusted Bldg. Amount field.
The total of all site adjustments configured as percentages, specific to buildings or to all modules, is displayed in the Adjusted Bldg. Percentage field.
Notes
Add any relevant notes or comments in the Notes field.
CAMA Sites Values
The appraised value for each CAMA module for the site is displayed on the Appraisal Values tab.

The forms on which the values are calculated is listed in this section:
Building Value
This Building Value is calculated on the Building Structural Elements form. Refer to the Govern CAMA: Buildings guide for details.
Miscellaneous Structure Value
This value is calculated on the Building Miscellaneous Structures form. Refer to the Govern CAMA: Miscellaneous Structures guide for details.
Land Value
This Land Value is calculated on the Land Appraisal Information function. Refer to the Govern CAMA: Land guide for details.
Land AG Value
This Land Agricultural Value is calculated on the Land Appraisal Information function. Refer to the Govern CAMA: Land guide for details.
Income DIR Value
This value is calculated on the Income Data form. Refer to the Govern CAMA: Income guide for details.
Building Residual DIR
The Building Residual DIR value is used to determine the building value based on the Income DIR and Land values.
(Building Residual DIR) = (Income DIR Value) – (LAND Value)

where Income DIR = MA_SITE.INCOME_DIR_VALUE and LAND = MA_SITE.LAND_VALUE
The Building Residual DIR calculated for the Site is different from the Building Residual DIR calculated for the Property. Adjustments are applied on the Site Value.

Income GRM Value
This value is calculated on the Income Data form. Refer to the Govern CAMA: Income guide for details.
Building Residual GRM
The Building Residual GRM value is used to determine the building value based on the Income GRM and Land values.
(Building Residual GRM) = (Income GRM Value) – (LAND Value)

where Income GRM = MA_MASTER.INCOME_GRM_VALUE and LAND = MA_MASTER.LAND_VALUE.
The Building Residual GRM calculated for the Site is different from the Building Residual GRM calculated for the Property. Adjustments are applied on the Site Value.

MRA Value
The MRA Value is calculated by the logical expression or formula defined for the market model in Govern Admin.
The MRA Value field is calculated when Market Approach is selected as the Method in Use.
Building Residual MRA
The Building Residual MRA value is used for determining the building value based on the MRA and Land values. It is calculated as
(Building Residual MRA) = (MRA Value) – (LAND Value)

where MRA = MA_MASTER.MRA_VALUE and LAND = MA_MASTER.LAND _VALUE
The Building Residual MRA value is calculated when Market Approach is selected as the Method in Use.
Total Value
This is the sum of all values on this tab.

CAMA Site History

The CAMA Site History tab displays all the CAMA Sites records for the property including the current year record and all records from past and future years, if they exist. Records are displayed by Site Number, Year ID, and Frozen ID. All the appraisal values and adjustments are displayed.

 

 

101-ma-frm-016

 

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 – Land Dimension (Units) Computation

CAMA Land Dimension (Units) Computation

Overview

The purpose of the Land dimension compute is to update the table PC_LEGAL_INFO with the total land dimension information (from all land records) whenever a MA_LAND record is created or modified.
This compute is always the FIRST one called after a save and is always executed immediately from the client PC even if the daemon option is turned on.

Parameters

Registry and Constant

  • USE_METRIC = system_registry (“General”, “use metric”) = (‘yes’ or ‘no’)
  • FULL_SCALE_FORMAT = “Mass Appraisal”, “Land SF to Acres Full Precision” = (‘yes’ or ‘no’)
  • 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

 

Table Used

MA_LAND

  • MA_LAND. LUSE_CODE -> MA_PARM_LANDUSE.LUSE_CODE
  • MA_LAND.P_ID -> PC_LEGAL_INFO.P_ID
  • MA_LAND.P_ID -> PC_PARCEL.P_ID (Only if the jurisdiction is part of the MA_PARM index)
  • MA_LAND.P_ID -> PC_AREA.P_ID (Only if the neighborhood or commercial neighborhood is part of the MA_PARM index)

 

Compute Logic

Updates only occur when the columns use to compute the land dimensions have been modified by a user.
When this occurs the following logic is applied for ALL land records associated with a given P_ID in order to replace the existing information in PC_LEGAL_INFO.
Because land calculations can be based on the total dimension information, we need to make sure the MA_LAND.MODIF_STAMP is reset to NULL for all records associated with a given P_ID when update to PC_LEGAL_INFO are made.

The update logic is applied if one of the following situations is TRUE:
1) MA_PARM_LANDUSE.Agricultural = 0 (or NULL) AND MA_LAND.exclude_lot_size = 0 (or NULL) AND ( MA_LAND. lot_size or MA_LAND. lot_units_type ) has changed.
2) MA_PARM_LANDUSE.Agricultural = 0 (or NULL) AND MA_LAND. exclude_frontage = 0 (or NULL) AND (MA_LAND. Frontage or MA_LAND. lot_units_type ) has changed.
3) MA_PARM_LANDUSE.Agricultural = 0 (or NULL) AND MA_LAND. exclude_depth= 0 (or NULL) AND (MA_LAND. Depth or MA_LAND. lot_units_type) has changed.

If one of the above case is true, we perform this for each MA_LAND record.
We are updating up to 9 columns in PC_LEGAL_INFO. If no PC_LEGAL_INFO record exists for the combination P_ID, YEAR_ID and FROZEN_ID then a new record is created.

  • PC_LEGAL_INFO.front_size
  • PC_LEGAL_INFO.depth_size
  • PC_LEGAL_INFO.front_size_unit
  • PC_LEGAL_INFO.size_1
  • PC_LEGAL_INFO.size_1_unit
  • PC_LEGAL_INFO.size_2
  • PC_LEGAL_INFO.size_2_unit
  • PC_LEGAL_INFO.size_t
  • PC_LEGAL_INFO.size_t_unit

 

USE_METRIC = “yes”

PC_LEGAL_INFO.front_size (2 decimals) =
sum of MA_LAND.frontage where MA_LAND. exclude_frontage = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘sm’ or MA_LAND.lot_units_type = ‘h’)
+
sum of ( MA_LAND.frontage / FEET_IN_METER) where MA_LAND. exclude_frontage = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘a’ or MA_LAND.lot_units_type = ‘sf’)

PC_LEGAL_INFO.depth_size (2 decimals) =
sum of MA_LAND.depth where MA_LAND. exclude_depth= 0 (or NULL) and ( MA_LAND.lot_units_type = ‘sm’ or MA_LAND.lot_units_type = ‘h’)
+
sum of ( MA_LAND. depth / FEET_IN_METER) where MA_LAND exclude_depth = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘a’ or MA_LAND.lot_units_type = ‘sf’)

If at least one value is calculated for front_size or depth_size then PC_LEGAL_INFO.front_size_unit = ‘m’

PC_LEGAL_INFO.size_1 (2 decimals) =
sum of MA_LAND.lot_size where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘sm’
+
sum of ( MA_LAND.lot_size X 10000 ) where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘h’
+
sum of ( MA_LAND.lot_size X SM_IN_ACRE ) where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘a’
+
sum of ( MA_LAND.lot_size / (FEET_IN_METER * FEET_IN_METER) ) where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘sf’

PC_LEGAL_INFO.size_2 = NULL
PC_LEGAL_INFO.size_t = PC_LEGAL_INFO.size_1
If at least one value is calculated for size_1 then PC_LEGAL_INFO.size_1_unit = ‘sm’ and PC_LEGAL_INFO.size_t_unit = ‘sm’

USE_METRIC = “no”

PC_LEGAL_INFO.front_size (2 decimals) =
sum of MA_LAND.frontage where MA_LAND. exclude_frontage = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘a’ or MA_LAND.lot_units_type = ‘sf’)
+
sum of ( MA_LAND.frontage X FEET_IN_METER) where MA_LAND. exclude_frontage = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘sm’ or MA_LAND.lot_units_type = ‘h’)

PC_LEGAL_INFO.depth_size (2 decimals) =
sum of MA_LAND.depth where MA_LAND. exclude_depth= 0 (or NULL) and ( MA_LAND.lot_units_type = ‘a’ or MA_LAND.lot_units_type = ‘sf’)
+
sum of ( MA_LAND. depth X FEET_IN_METER) where MA_LAND exclude_depth = 0 (or NULL) and ( MA_LAND.lot_units_type = ‘sm’ or MA_LAND.lot_units_type = ‘h’)
If at least one value is calculated for front_size or depth_size then PC_LEGAL_INFO.front_size_unit = ‘sf’

PC_LEGAL_INFO.size_1 (2 decimals)
sum of MA_LAND.lot_size where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘sf’
+
sum of ( MA_LAND.lot_size X FEET_IN_METER * FEET_IN_METER ) where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘sm’

PC_LEGAL_INFO.size_2 (2 decimals)
sum of MA_LAND.lot_size where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘a’
+
sum of ( MA_LAND.lot_size * 10000 / SM_IN_ACRES) where MA_LAND. exclude_lot_size = 0 (or NULL) and MA_LAND.lot_units_type = ‘h’

PC_LEGAL_INFO.size_t (2 decimals if FULL_SCALE_FORMAT = ‘no’ or 15 decimals if FULL_SCALE_FORMAT = ‘yes’) = ( PC_LEGAL_INFO.size_1 / SF_IN_ACRES ) + PC_LEGAL_INFO.size_2
If at least one value is calculated for size_1 then PC_LEGAL_INFO.size_1_unit = ‘sf’ and PC_LEGAL_INFO.size_t_unit = ‘a’

If at least one value is calculated for size_2 then PC_LEGAL_INFO.size_2_unit = ‘a’ and PC_LEGAL_INFO.size_t_unit = ‘a’

 

 

101-ma-compute-LandUnits

 

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 – CAMA Fair Market Value (MRA) Computation

CAMA Fair Market Value (MRA) Computation

Overview

The purpose of the (MRA) Computation is to provide values of all the Govern’s system columns for a given record of the table MA_MRA. The ultimate goal of this compute is to provide a property value using the MRA approach, often referred as the market value approach. [Class name VB6: GvObjMarket OF MaMarket.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.

Registry Parameters

No registry entries used by this compute

Table and Data Model Schema

Schema

Must be compliant with the Building ID, Building Sequence, Frozen ID and Year ID schema.

Table Used / Available for the expressions

The following tables are used in the computation. All fields can be used when building the computation expressions.

  • MA_MRA
  • MA_PARM_MRAMODEL
    • o MA_MRA.MRA_MODEL_CODE –> MA_PARM_MRAMODEL.MRA_MODEL_CODE

 

  • MA_PARM_MRA_LK_MOD
    • o MA_MRA.MRA_MODEL_CODE –> MA_PARM_MRA_LK_MOD AND MA_PARM_MRA_LK_MOD.COLUMN_NAME = MA_TABLES.COLUMN_NAME AND MA_PARM_MRA_LK_MOD.COMPUTATION_SEQ = MA_TABLES.COMPUTATION_SEQ AND MA_TABLES.TABLE_TYPE = “mratab”
  • MA_PARM_MRATAB
    • MA_MRA.XXX_CD -> MA_PARM_MRATAB.MRA_CODE
  • MA_PARM_MAROUND.ROUNDING
    • MA_PARM_MAROUND.ROUNDING_CODE = “mra”
  • MA_MODIF_STAMP.YEAR_ID
    • MA_MRA.YEAR_ID -> MA_MODIF_STAMP.YEAR_ID (??)

Also

  • PC_LEGAL_INFO
  • PC_AREA (Currently not used, except for look-up groups)

System Calculated Fields

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

  • TOTAL_VALUE (to be validated and others in mra added)

MA_MRA

  • To be completed

Computation Logic

Step 1 – Compute MRA Elements

Compute the element amounts (MA_MRA.XXX_AM)
[VB6: pv_compute_value]

We read all MA_TABLES.TABLE_TYPE = “mratab” for the MA_MRA.MRA_MODEL_CODE (using the MA_PARM_MRA_LK_MOD as per the “Table Used and available for the expressions” section.
For each entry, we compute the XXX_AM value (where XXX is the column name in MA_TABLES) based on the XXX_CD value by reading the MA_PARM_MRATAB. The XXX_AM value is the evaluated expression of MA_PARM_MRATAB.VALUE_EXPRESSION.
(1) If the code is NULL and the table is defined as a single code table then we read the first entry of the table. This is a new feature for all grid based function

Step 2 – Compute MRA Total Value

Compute the total MRA value [VB6: pv_compute_value] We evaluate the expression found in MA_PARM_MRAMODEL for the MA_MRA.MRA_MODEL_CODE and move the result to MA_MRA.TOTAL_VALUE

Step 3 – Compute MRA Final Adjustments

Compute Final Adjustment [Govern for Windows: ComputeMra]

Notes

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.

MA_MRA.FINAL_ADJ = MA_MRA.TOTAL_VALUE * MA_MRA.ADJ_PERCENT / -100
MA_MRA.TOTAL_VALUE = MA_MRA.TOTAL_VALUE + MA_MRA.FINAL_ADJ

Step 4 – Rounding of MRA

Perform Rounding [VB6 : PV_ROUND_VALUE]

Round MA_MRA.TOTAL_VALUE by using MA_PARM_MAROUND.ROUNDING_CODE = “mra”

Step 5 – Set the MODIF_STAMP

Set the MODIF_STAMP for the computed record

Set MA_MRA.MODIF_STAMP = MA_MODIF_STAMP.MRA_STAMP if not null, otherwise use the current date/time.

Related Topics

Changes to CAMA Fair Market Value (MRA) Computation; see Changes to CAMA OpenForms Reference

 

 

101-ma-compute-MRA

 

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 – Site Value Computation

Site Value Computation

General

Purpose

The purpose of the Site compute is to determine the site adjustment value to be used by all components (land, misc, bldg.) associated with a site no.
This compute should always be the FIRST one called after a save and should always be executed immediately from the client PC even if the daemon option is turned on.
Developers, see R&D Documentation SITE COMPUTATION report.
Registry and Parameters

Tables

  • MA_TABLES -> table_type = ‘site’
  • MA_TABLES.TABLE_NAME -> MA_PARM_SITE.TABLE_NAME
  • MA_PARM_SITE
  • MA_SITE
    • MA_SITE. XXXX_CD -> MA_PARM_SITE.SITE_CODE
    • MA_TABLES.TABLE_NAME -> MA_PARM_SITE.TABLE_NAME

Site Description Field

  • MA_SITE.SITE_DESC

 

System Columns/Calculated Fields

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

Values Override Values (new) Linked Values Adjustment Amount Adjustment Percent
[LAND_VALUE] [LAND_VALUE_OVERRIDE] [LK_LAND_VALUE] [ADJ_LAND_AMOUNT] [ADJ_LAND_PERCENT]
[LAND_AG_VALUE] [LAND_AG_VALUE_OVERRIDE] [LK_LAND_AG_VALUE] [ADJ_BLDG_AMOUNT] [ADJ_BLDG_PERCENT]
[MISC_VALUE] [MISC_VALUE_OVERRIDE] [LK_MISC_VALUE] [ADJ_MISC_AMOUNT] [ADJ_MISC_PERCENT]
[BLDG_VALUE] [BLDG_VALUE_OVERRIDE] [LK_BLDG_VALUE] [ADJ_INC_AMOUNT] [ADJ_INC_PERCENT]
[INCOME_GRM_VALUE] [INCOME_GRM_VALUE_OVERRIDE] [LK_INCOME_GRM_VALUE]
[INCOME_DIR_VALUE] [INCOME_DIR_VALUE_OVERRIDE] [LK_INCOME_DIR_VALUE] +ALL the XXX_VA columns created
[MRA_VALUE] new 10.8 [MRA_VALUE_OVERRIDE] [LK_MRA_VALUE] (user defined adj.)
[PP_VALUE] new 6.1 [PP_VALUE_OVERRIDE] [LK_PP_VALUE]
[CAMA_VALUE] ?
[TOTAL_VALUE] none (to verify)

 

Computation

STEP 1 Compute Individual Adjustment

Compute the individual adjustment values (XXX_VA columns) for each adjustment type
(VB6: pv_compute_adjustment, pv_set_added_fields, pv_set_adj, pv_set_record_value)

a- Set Default Values and Parameters

Find all MA_TABLES site adjustment and then find MA_PARM_SITE based on the XXX_CD column and MA_TABLES table_name information.
MA_SITE.XXX_VA = MA_PARM_SITE.ADJUSTMENT or evaluated from the expression in MA_PARM_SITE.ADJT_EXPRESSION
The MA_SITE.XXX_VA is then used based on MA_TABLES.SITE_LB_CODE value, MA_TABLES.MATHS and MA_TABLES.PCT_AMT.

Set Default Values
The default value is set for

  • MA_TABLES.SITE_LB_CODE is ‘a’
  • MA_TABLES.MATHS is ‘+’ for PCT_AMT = ‘a’ and ‘X’ for PCT_AMT = ‘p’
  • ADJ_LAND_AMOUNT, ADJ_BLDG_AMOUNT, ADJ_MISC_AMOUNT and ADJ_INC_AMOUNT = 0
  • ADJ_LAND_PERCENT, ADJ_BLDG_PERCENT, ADJ_MISC_PERCENT and ADJ_INC_PERCENT = 100

Check if Value or Override Value
Determines if the VA (value) or the OV_VALUE will be calculated
For each MA_SITE.XXX columns we do

  • If MA_SITE.XXX_OV = -1
    • Then AMOUNT = MA_SITE.XXX_OV_VALUE
    • Else AMOUNT = MA_SITE.XXX_VA

b- Compute Land Adjustment
If MA_TABLES.SITE_LB_CODE = ‘a’ or MA_TABLES.SITE_LB_CODE = ‘l’ then

  • ADJ_LAND_AMOUNT = ADJ_LAND_AMOUNT + VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘+’
  • ADJ_LAND_AMOUNT = ADJ_LAND_AMOUNT – VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘-’
  • ADJ_LAND_AMOUNT = ADJ_LAND_AMOUNT X VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘X’
  • ADJ_LAND_AMOUNT = ADJ_LAND_AMOUNT / VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘/’
  • ADJ_LAND_PERCENT = ADJ_LAND_PERCENT + VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘+’
  • ADJ_LAND_PERCENT = ADJ_LAND_PERCENT – VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘-’
  • ADJ_LAND_PERCENT = ADJ_LAND_PERCENT X VALUE / 100 if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘X’
  • ADJ_LAND_PERCENT = ADJ_LAND_PERCENT X 100 / VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘/’

 

c- Compute Building Adjustment

If MA_TABLES.SITE_LB_CODE = ‘a’ or MA_TABLES.SITE_LB_CODE = ‘b’ then

  • ADJ_BLDG_AMOUNT = ADJ_BLDG_AMOUNT + VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘+’
  • ADJ_BLDG_AMOUNT = ADJ_BLDG_AMOUNT – VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘-’
  • ADJ_BLDG_AMOUNT = ADJ_BLDG_AMOUNT X VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘X’
  • ADJ_BLDG_AMOUNT = ADJ_BLDG_AMOUNT / VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘/’
  • ADJ_BLDG_PERCENT = ADJ_BLDG_PERCENT + VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘+’
  • ADJ_BLDG_PERCENT = ADJ_BLDG_PERCENT – VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘-’
  • ADJ_BLDG_PERCENT = ADJ_BLDG_PERCENT X VALUE / 100 if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘X’
  • ADJ_BLDG_PERCENT = ADJ_BLDG_PERCENT X 100 / VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘/’

 

d- Compute Misc. Structures Adjustment

If MA_TABLES.SITE_LB_CODE = ‘a’ or MA_TABLES.SITE_LB_CODE = ‘m’ then

  • ADJ_MISC_AMOUNT = ADJ_MISC_AMOUNT + VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘+’
  • ADJ_MISC_AMOUNT = ADJ_MISC_AMOUNT – VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘-’
  • ADJ_MISC_AMOUNT = ADJ_MISC_AMOUNT X VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘X’
  • ADJ_MISC_AMOUNT = ADJ_MISC_AMOUNT / VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘/’
  • ADJ_MISC_PERCENT = ADJ_MISC_PERCENT + VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘+’
  • ADJ_MISC_PERCENT = ADJ_MISC_PERCENT – VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘-’
  • ADJ_MISC_PERCENT = ADJ_MISC_PERCENT X VALUE / 100 if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘X’
  • ADJ_MISC_PERCENT = ADJ_MISC_PERCENT X 100 / VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘/’

 

e- Compute Income Adjustment

If MA_TABLES.SITE_LB_CODE = ‘a’ or MA_TABLES.SITE_LB_CODE = ‘i’ then

  • ADJ_INC_AMOUNT = ADJ_INC_AMOUNT + VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘+’
  • ADJ_INC_AMOUNT = ADJ_INC_AMOUNT – VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘-’
  • ADJ_INC_AMOUNT = ADJ_INC_AMOUNT X VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘X’
  • ADJ_INC_AMOUNT = ADJ_INC_AMOUNT / VALUE if PCT_AMT = ‘a’ and MA_TABLES.MATHS is ‘/’
  • ADJ_INC_PERCENT = ADJ_INC_PERCENT + VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘+’
  • ADJ_INC_PERCENT = ADJ_INC_PERCENT – VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘-’
  • ADJ_INC_PERCENT = ADJ_INC_PERCENT X VALUE / 100 if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘X’
  • ADJ_INC_PERCENT = ADJ_INC_PERCENT X 100 / VALUE if PCT_AMT = ‘p’ and MA_TABLES.MATHS is ‘/’

 

STEP 2 Set to null (backward compatibility)

We set the following MA_SITE fields to NULL (for backward compatibility)

  • ADJ_LAND_AMOUNT if = 0 and ADJ_LAND_PERCENT If = 100
  • ADJ_BLDG_AMOUNT if = 0 and ADJ_BLDG_PERCENT if = 100
  • ADJ_MISC_AMOUNT if = 0 and ADJ_MISC_PERCENT if = 100
  • ADJ_INC_AMOUNT if = 0 and ADJ_INC_PERCENT if = 100

 

STEP 3 Compute Site Values

After all elements have been computed (Land, Buildings, …) we will need to take the values and bring them back to the sites values (Final Steps)

 

STEP 4 Set Modif Stamp

Modification Stamp

After any Change in MA_TABLE for table Type ‘Sites” or MA_PARM_SITE

  • We will need to update MA_MODIF_STAMP.ALL_STAMP to Date.Now
  • We will need to update MA_MODIF_STAMP.SITE_STAMP to Date.Now

COMPUTATION PREREQUISITES

To be verified

Changes in Tables

When changes occur in MA_TABLE for table type ‘Sites’ or to MA_PARM_SITE, the following must be done.

Site Entity
After any changes to MA_TABLE for table Type ‘Sites”

  • We will need to make sure all site adjustment columns are created as an attribute in the “Site Entity”, attribute type of System Expression.

Expressions

After any changes to MA_TABLE for table Type ‘Sites” we will need to SET the system expressions for the following fields based on the rules defined in step 1

  • ADJ_LAND_AMOUNT and ADJ_LAND_PERCENT
  • ADJ_BLDG_AMOUNT and ADJ_BLDG_PERCENT
  • ADJ_MISC_AMOUNT and ADJ_MISC_PERCENT
  • ADJ_INC_AMOUNT and ADJ_INC_PERCENT

o First if no site adjustment are defined for a field for a year it should return NULL (validate)

  • Ex: Case(2015, ((attr@SiteADJ001 + attr@SiteADJ002) * attr@SiteADJ003) – attr@SiteADJ004 , 2016, attr@SiteADJ001 + attr@SiteADJ002 + attr@SiteADJ003, NULL)

Site Entity Expressions (no longer needed)

  • After any Change in MA_PARM_SITE we need to rebuild the system expression in the “Site Entity” attribute for the current site (validate)
  • Ex for SiteADJ001_VA:
    • Case(SiteADJ001_CD
    • ‘001’, 1000,
    • ‘002’, 2000,
    • ‘003’, 3000,
    • NULL)
  • Ex for SiteADJ001_VA (with NBDH):
    • Case(attr@SiteADJ001_CD
    • ‘001’, Case(attr@NBDH,‘res’, 1000, ‘com’, 1500, 750),
    • ‘002’, Case(attr@NBDH, ‘res’, 2000, ‘com’, 2500, 1750),
    • ‘003’, Case(attr@NBDH, ‘res’, 3000, ‘com’, 3500, 250),
    • NULL)

 

 

101-ma-compute-Site

 

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...