101-ma-frm-020

CAMA Miscellaneous (detached) Structures

Overview

The Govern CAMA Miscellaneous Structures form is used for determining the appraised value of the miscellaneous structures associated with a property record.
The term miscellaneous structures, or out buildings, refers to structures that are separate from the main buildings. This includes fences, gazebos, garages, and swimming pools. You can create codes for specific structures, such as the type of fence: chain link fence, picket fence, or post and rail fence; or type of swimming pool, above ground, above ground, vinyl-sided, wood and vinyl, or steel and vinyl.

The appraised value is based on the type and size of the structure. This can be modified by the grade and condition. Depreciation can be applied,
according to the number of years and observed condition. Then, you can apply multiple adjustments, as required based on the site; neighborhood;
physical, functional, economical state; the percentage that the structure is complete; overall adjustments, If required, you can override the total value.

The administrative setup for Miscellaneous Structures consists of creating the validation tables and codes for the Miscellaneous Structures user form in Govern.

Mass Appraisal General Administrative Setup

Before beginning the Miscellaneous Structures setup, complete the general administrative setup for Mass Appraisal. This is described in the Govern CAMA General Information guide. It comprises the following administrative forms, tables, and codes:

  • Mass Appraisal General Parameters:
    • Additional configuration if you are using Marshall & Swift
  • Mass Appraisal Validation Tables for All Modules
    • Depreciation
    • Correlated Values Distribution
    • Neighborhood
    • Rounding table:
      You can set up validation codes for rounding on Miscellaneous Structures Values
    • Site
    • Limited Assessment Validation Table
  • Mass Appraisal Forms
    • Security Setup for Mass Appraisal
    • Appraiser’s Name
    • Appraisal Report Fields
    • Multiple Assessment Rate

Mass Appraisal Validation Tables for Miscellaneous Structures Data

The following Mass Appraisal Validation Tables are used for miscellaneous structure data:

Miscellaneous Structures Codes

The Miscellaneous Structures Codes table (VT_USR_MISCUSE) defines the specific type of miscellaneous structure, such as chain link fence, picket fence, or post and rail fence. The initial appraised value is set on this form. A Depreciation Table is selected for the form. See Miscellaneous Structure Use Code Validation Table and Codes.

Miscellaneous Structures Condition

The Miscellaneous Structures Condition Mass Appraisal Validation Table (VT_USR_MISCGRAD) and codes are applied to the depreciation of the structure in order to increase or decrease the percentage of depreciation according to the state of the structure. See Miscellaneous Structures Grade Validation Table and Codes on page 19.

Miscellaneous Structures Grade

The Miscellaneous Structures Grade Validation Table (VT_USR_MISCCOND) and codes are applied to the Replacement Cost New (RCN) of the miscellaneous structure in order to increase or decrease the appraised value
based on quality or grade. See Miscellaneous Structure Condition Validation Table and Codes on page 25.

Miscellaneous Structures Adjustments

The Miscellaneous Structures Adjustments Validation Table (VT_USR_MISCADJT) and Codes are applied to the appraised value of the miscellaneous structure after the neighborhood and site adjustment are added
but before rounding is applied and before the Final Adjustment is calculated. See Miscellaneous Structure Adjustments Validation Table and Codes on
page 31.

All the Miscellaneous Structures validation tables are unique; i.e., there can be only one of each in the database. If you try to create a second, an error message appears, indicating that there is a duplicate key, and you are unable to continue. However, you can create as many codes as required.

Prerequisites for Miscellaneous Structures

The following user validation tables are used in the Mass Appraisal Validation Tables for Miscellaneous Structures:

  • Jurisdictions (VT_USR_JURISD)
  • Neighborhood (VT_USR_NHBD)
  • Property Type (VT_USR_PROPTYPE)
  • CAMA Permanent Adjustment Reasons (VT_USR_AREATYPE)

User Validation Tables are set up in Govern Admin in the Validation Table Header form.

Jurisdictions

You can set up validation codes in order to apply different codes and rates
based on the geographic jurisdictions defined by your state or municipality.
The jurisdictions are entered in the VT_USR_JURISD validation table. They
can be applied to the following Mass Appraisal Miscellaneous Structures
Validation Tables:

  • Mass Appraisal Misc Structure Codes Validation Table
  • Mass Appraisal Misc Structure Condition Validation Table
  • Mass Appraisal Misc Structure Grade Validation Table
  • Mass Appraisal Misc Structure Adjustments Validation Table

Follow these steps to apply validation codes to a jurisdiction:

1. Select Support of Multiple Jurisdictions on the System Registry Maintenance form.
2. Create jurisdictions in the VT_USR_JURISD user validation table.
3. Select the Apply by Jurisdiction on the Mass Appraisal Validation Table.
4. Select the jurisdiction from the Jurisdiction drop-down list on the Mass Appraisal Validation Codes form.

Neighborhoods

Neighborhoods are defined by the organization in the Neighborhood User Validation Table, VT_USR_NBHD validation table. They can be applied to the following Mass Appraisal Miscellaneous Structures Validation Tables in order to apply different codes and rates based on neighborhood:

  • Mass Appraisal Misc Structure Codes Validation Table
  • Mass Appraisal Misc Structure Condition Validation Table
  • Mass Appraisal Misc Structure Grade Validation Table
  • Mass Appraisal Misc Structure Adjustments Validation Table

To apply validation codes by neighborhood:
1. Create neighborhoods in the VT_USR_NBHD user validation table.
2. Select the Neighborhood Lookup on the Mass Appraisal Validation Table.
3. Select the neighborhood from the Neighborhood drop-down list on the Mass Appraisal Validation Codes form.

NOTE: The VT_USR_NBHD Table is populated by the Mass Appraisal Neighborhood Validation Table. The Mass Appraisal Validation Table is also used for defining codes and characteristics for the table. Refer to the Govern CAMA General Information guide for details.

The Neighborhood Adjustment for Miscellaneous Structures is defined in the Mass Appraisal Neighborhood Validation Table. It can be applied to the Neighborhood as a percentage, formula, or logical expression. For further details, refer to the Govern CAMA General Information guide.

Property Type

Property Types are created in the VT_USR_PROPTYPE user validation table. They can be applied to the Mass Appraisal Miscellaneous Structures Code
Validation Table.

To apply validation codes by property type:

1. Create property types in the VT_USR_PROPTYPE user validation table.
2. Select the property type from the Property Type drop-down list on the Mass Appraisal Validation Codes form.

Permanent Adjustment Reasons

You can set up permanent adjustment reason codes to include additional information about the miscellaneous structures on the MA – Miscellaneous Structures form.
For these codes, you need to create a user validation table in Govern Admin or in GNA. Refer to the Super User guide for details about Govern Admin or to the Govern New Administration documentation for details about GNA.

NOTE: The user validation tables and codes you create in the Validation Table Header form in Govern Admin are copied to the User Validation Table Editor in GNA. However, the reverse does not apply; i.e., the tables
and codes you create in GNA are not copied to Govern Admin.

The Permanent Adjustment Reason codes are available for the MA – Miscellaneous Structures form in Govern, regardless of where they are created. They are not available in Govern for Windows.

To set up permanent adjustment reason codes:
1. Create a user validation table with the table name PERMADJREASON in either Govern Admin or GNA.
2. Create codes for this table.

If you want to give the table a different name, follow these steps:

1. Launch the Govern Business Entity Designer (BED).
2. Select Business Entities.
3. Select the MA_MiscStructures business entity.
4. Select the PERM_ADJ_REASON attribute.
5. Change the table name under the Properties > Lookup Settings.
6. Click Save.
Refer to the Govern Business Entity Designer guide located on the Business Entity Designer page for further details.

General Mass Appraisal Validation Tables

The following Mass Appraisal Validation Tables are used in calculating Miscellaneous Structures values as well as other appraised values. These tables are described in the Govern CAMA General Information guide.

Depreciation Tables

Depreciation is applied to miscellaneous structures according to the age and the condition of the structure. It is based on a rate or schedule defined in the Mass Appraisal Depreciation Validation Tables and Codes (MA_PARAM_DEPR and VT_USR_<table_name>, where table_name refers to the user-defined name of the depreciation table). A Depreciation Table is associated with each miscellaneous structure type through the Miscellaneous Use Code Validation Table (VT_USR_MUSE).

Site Information

Site adjustments are set up in the Mass Appraisal Site validation table (MA_SITE). Multiple site adjustments for miscellaneous structures can be added to the record on the Mass Appraisal Site Information form in Govern. The total of these adjustments is added to the appraised value of the miscellaneous structure before the overall and final adjustments are calculated.

Rounding Table

Rounding can be defined for miscellaneous structures on the Mass Appraisal Rounding Table (MA_PARAM_MAROUND). It is applied to the appraised value of the structure after the Overall Adjustment is applied but before the Final Adjustment is added.

The Replacement Cost New (RCN) and Replacement Cost New Less Depreciation (RCNLD) values are not rounded.

Related Topics

 

 

101-ma-frm-020

 

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 – Story Case #10 (Matrix and Area Look-Up)

CAMA BSE Setup STORY CASE #10 (Matrix and Area Look-Up)

[In Development]

Overview

This story case uses the matrix setup with area look-up to create a 5 dimension look-up table.
These attributes are used to determine the base rate (dollars per square foot) and uses multiplier adjustments based on these attributes (1.02, 0.97).

Premise

The residential cost method starts by using five attributes: Quality, Story Type, Heating Type, Framing and Area.

 

 

101-ma-frm-025-Story-010

 

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 Information

Mass Appraisal Land Information

[In Development]

Specification Overview

All the CAMA Land information is presented on a single form in Govern OpenForms called Land Information.

  • You can create multiple Land Information records for a parcel in order to cover all the different land uses and types.
  • Data about the parcel size are maintained on the CAMA Land Information forms and with the Govern Property Control Legal Information form.
    • The update on the Legal Information form is automatic.
    • There are options for excluding the lot size, depth, and frontage for a specific parcel.
    • For more information about the Legal Information form, click on the following link: PC Legal Information
  • The Land Value is determined by a number of factors that include the parcel size, the land use, the rate schedule, adjustments, and tax exemptions applied specifically to the land. It can be applied to a MRA record or to a Income record, according to the appraisal method selected as well as to the land record’s option INCLUDE IN Income or MRA.
  • Assessment Exemptions can be applied on Appraisal Land Records
  • Audit, Copy to, Roll forward, Audit trails and other standard features

What’s New

[5.1] (to be verified in 6.0) You can now copy and paste a land record. This can save time if you are creating multiple land records that are similar. The land records can be on separate parcels. All data from the General tab can be copied with the exception of the LOT_SIZE, LOT_UNITS_TYPE, UNITS, and UNITS_TYPE. Data are copied one record at a time.
[6.1] Refresh Icon no longer available
[6.1] Mass Appraisal Link Group table lookup …
[6.1] Cluster configuration for table lookup …
[6.1] Site is required for all components
[6.1] Land Info merged into Land
[6.1] Simulation and template fields removed
[6.1] New Override Fields (to show calculated and overrided value)

Land Information

General

All land records are maintained on a single data entry form called Land Information. The appraised land value is determined from the values enteredon this form that include area, use, and applicable adjustments. This Land Information form has a General and an Adjustments tab. If the Govern Real Property TAX module is integrated to the Mass Appraisal through Govern Admin, an Exemptions tab is included and you can apply tax exemptions directly to the land record (verify if available in 6.1) . Similar functionality is added to the Building Structural Elements and Features and Miscellaneous Structures forms. Before recording the land appraisal information record for a property, update the following:

  • Mass Appraisal Site Information
  • Mass Appraisal Property Information
  • Legal Description

If multiple Land Information records are available for the property, the navigation arrows are displayed. If it is configured, the Record Description is displayed.

Land Schedules without a Predefined Price per Unit

If a price per unit is included in the rate schedule, the land value is calculated automatically. Otherwise, if a price per unit is not included, then you must enter a value in the Units Price field under section. The Land Value is calculated based on the unit price and other fields.

Calculating the Agricultural Value

The Agricultural Unit Price is separate from the Land Unit Price. It is determined by multiplying the Units * Unit Price AG. The Land Adjustment is calculated according to the configuration. Amounts are displayed in the Unit Price AG and Total AG Before Adj. fields if the selected rate schedule code applies to the agricultural value.

The Units Price and Total Value Before Adjustments are calculated based on the Rate Schedule Code. The Total Value field at the bottom of the interface is calculated based on the total with the adjustments.

Excluding Land Area from the Legal Description

To exclude the land size from the Legal Description record for the property click on the exclude option according to how you set up the record:

  • Exclude Lot Size
  • Exclude Depth
  • Exclude Frontage

Copy and Paste to Create New Land Records

  • Copy: Use the copy and paste icons to copy data from one land record to another. The records can be on the same parcel or on multiple parcels. This can be useful if you are creating multiple land records with similar data. Records are copied one by one. To copy a record, open it in the Land Information form and click the Copy icon.
  • Paste: Use the Paste icon to paste land information data from the source parcel where it was copied with the Copy icon to the destination parcel. All data from the General tab are copied with the exception of the following: Lot Size, Lot Units Type, Units, and Unit Type (validate).

Overriding the Land Value

Total Value = Units * Unit Price + Land Adjustment + Site Adjustment + Neighborhood Adjustment + Final Adjustment.

To override the Total Value:
1. Select the General tab on the Land Information form.
2. Select the Override option to enable the Final Adjustment field.
Enter a new value in the Final Adjustment field. This is added to the Total Value. (New change in 6,.1)

Land Form – General

–General Section
Site No.

  • Select the Site from the Site No dropdown list. Several sites can be created for a property on the MA – Sites form. Typically, they are based on location and other geographic information.
  • Multiple adjustments can be applied to each Site using the MA – Sites form.

Rate Schedule

  • Select a land rate schedule from the Rate Schedule dropdown list. Rate Schedules are defined in Govern Admin. They determine the land value based on a number of factors, such as the number of units, the Link Group type (neighborhood, jurisdiction, income neighborhood). The rate can be applied as a flat rate or according to a schedule. A separate rate expression can be applied on the agricultural land on the parcel. The Land Adjustments can be associated with Rate Schedules in Govern Admin.

Land Use Code

  • Select a code for the land use from the Land Use Code dropdown list. The Land Use Codes are defined in Govern Admin. They are used for classifying properties according to how the land is used. Land Use Codes can be associated with a Property Type (VT_USR PROPTYPE) and classified as Agricultural. The Land Adjustments can be associated with land use codes in Govern Admin.

Land Unit type

  • Select the unit type corresponding to the area you entered from the Lot Units Type dropdown list. Examples are acres, hectares, square feet, and square meters.

–Dimensions Section
Enter the area of one of the following:

  • Depth / Exclude
  • Frontage / Excluded
  • Lot Size / Exclude

Exclude is used for calculating the land value. If Exclude is checked, the area will not be used in the Legal Total Size calculation.

–Units Section
During the computation, the units and unit type are automatically converted and the results are displayed in the Units and Unit Type fields. The Units Price and Total Value Before Adjustments are calculated based on the Rate Schedule Code during the save. The Total Value field at the bottom of the interface is calculated based on the total with the adjustments.

Total Units

  • Calculated amount

Unit Type

  • Calculated field (converted)

Unit Price

  • Calculated amount if entered in Land Schedule Land Rate

Unit Price AG

  • Calculated amount if entered in Land Schedule AG Rate

Total Value Before Adj.

  • Sum of land value before adjustments. Calculated amount.

Total AG Value Before Adj.

  • Sum if land Agricultural values before adjustments. Calculated amount.

–Adjustments Section

Land

  • The Land Adjustment is the total of the adjustments selected on the Adjustments tab. Calculated amount

Land AG

  • Calculated amount

Site

  • The Site Adjustment is calculated according to the selections made on the Site Information form. Calculated amount

Neighborhood

  • The Neighborhood Code is selected for the property on the Property Area record. Refer to the Property Control guide for details on this form. The adjustment applied to the land for the Neighborhood is defined in Govern Admin per Neighborhood on the Mass Appraisal Neighborhood Validation Table. .Calculated amount

 

Land Form – Adjustments

Viewing / Applying an Adjustment

The Land Information Adjustments tab lists the available adjustments.

To apply an adjustment, select the Adjustments tab on the Land Appraisal Information function. The available adjustments are listed. According to the setup, the adjustments can be associated with the Land Use Code or Rate Schedule selected on the General tab. Otherwise, they are not associated with any data entry field.

By default the land adjustments are listed by sequence number. You can sort them in ascending or descending order by any of the available columns. To do this, click on the column heading. You can also remove any columns that you do not want to view. Right-click on the title bar of the columns to display a context-sensitive menu. Deselect the columns that you do not want to view. You can also change the position of a column by dragging and dropping it to the left or right.

Select a specific code for the adjustment type, by clicking inside the Adjustment Code text field, if applicable. Click Save.

Overriding an Adjustment

To override a land adjustment, select the Adjustments tab on the Land Information form. Select (check) the Override checkbox beside the value you want to modify.

Enter a new value in the Value field and click Save. Note: The value is recalculated and displayed under Value.

Land Form – CAMA Exemptions

Validate if available in 6.1

Configuration

For a step by step administrative setup see Module Specification (above) Configuration or Product Map under the Land Form Function for all related product detail wiki URL pages.

There are three (3) Mass Appraisal Validation Tables that are specific to land information. All are set up and maintained in Govern Admin in Govern for Windows.

  • Land Adjustments (Table: MA_PARM_LANDADJT)
  • Land Rate Schedule (Table: MA_PARM_LANDSCHD)
  • Land Use Codes (Table: MA_PARM_LANDUSE)

Land Adjustments

  • You can create as many Mass Appraisal Land Adjustment tables as required.
  • Multiple adjustments can be applied to a land record.
  • Land adjustments tables are defined in Mass Appraisal tables and are often associated with topographic or other geographic features of the land or proximity to roads or schools.
  • They can be applied as flat rates, formulas, or logical expressions and associated with the land use or rate schedule codes.
  • Adjustments are displayed on both the Land Information > Adjustments tab.

Land Rate Schedule

  • The Mass Appraisal Land Rate Schedule Validation Table is unique.
  • Rate Schedules are defined in Govern Admin.
  • They determine the land value based on a number of factors, such as the number of units, the neighborhood, and the jurisdiction.
  • The rate can be applied as a flat rate or according to a schedule.
  • A separate rate, formula, or logical expression can be applied on the agricultural land on the parcel.
  • The Land Adjustments can be associated with Rate Schedules in Govern Admin.

Land Use Codes

  • The Mass Appraisal Land Use table is unique.
  • The Land Use Codes are used for classifying properties according to how the land is used.
  • Land Use Codes can be associated with a Property Type (Table: VT_USR_PROPTYPE) and classified as Agricultural.
  • The Land Adjustments can be associated with land use codes in Govern Admin.
NOTE: Before performing the specific setup for the CAMA Land Information form, it is important to complete the general CAMA configuration.

Documentation

This section provides links to the administrative and user documents for land information.

Administrator
Govern Land Administration : Mass Appraisal General Parameters and Validation Tables (specific to land) 6.0
Linear Square Foot Calculation: [To be revised] This document describes the linear square foot calculation used in the cumulative land calculation method.

User Manual
This document describes the Govern CAMA Land Information form for data entry of land
Govern Land Information user data entry

Technical Specification

See Module Section OpenForms Reference (OFR), Installation and Design info from R&D Developers

Video

8-101-100 – Land Appraisal from the Appraiser’s side Course 1 of 5 Govern APPRAISER
[PDF] [video]

 

 

101-ma-frm-017

 

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