MA – Buildings Introduction

Govern OpenForms Mass Appraisal Building Introduction

Overview

Govern CAMA: Buildings is used for maintaining information on the buildings associated with a property. It provides numerous tables and codes that you can customize to meet the needs of your organization for appraising the value of a building. As well, it provides state-of-the-art tools for creating building sketches

The first part of this guide describes the administrative setup. For the administrative setup, you need to create the validation tables and related codes that are required for building data.
The second part describes the user forms, including Buildings, for general information, MA – Drawing Apex and Govern Sketch, for creating building sketches and determining the building area, MA – Building Structural Elements and Features, and MA – MRA for determining the fair market value.

This guide provides instructions on the administrative and user procedures for setting up and maintaining building information in Govern CAMA.

The Govern CAMA information for the other CAMA modules is described in the following guides:

  • Govern CAMA: General Information: This guide provides the information common to all the Mass Appraisal sub-modules. It covers all the CAMA batch processes. It is recommended to read and follow the instructions in this guide before proceeding with the other modules.
  • Govern CAMA: Miscellaneous Structures: This guide describes the administrative setup and data entry for miscellaneous structures.
  • Govern CAMA Land Information: This guide describes the administrative setup and data entry for Land Information.
  • Govern CAMA: Income: This guide describes the administrative setup and data entry for properties generating income.
  • Govern CAMA: Sales and Comparable Sales: This guide describes the administrative setup and data entry for Sales and Comparable Sales.

What’s New

This section lists the new features in the Govern CAMA Buildings 6.0. Throughout the online manuals and the Help files, the new features are indicated by the New symbol. See the Mass Appraisal What’s New page.

Display a Description with the Building Drawing Code

A new option is available in the Building Drawing options. You can now display the short description along with the drawing code. Alternatively, you can continue to display the code only. See Drawing Editor Options.

Display a Tooltip for a Building Structural Element

You can add a tool-tip to any building structural element using one of the following procedures, depending on whether you want a short or a long tip. For both methods, the tool-tips are created in Govern Admin. See Adding a Tool-tip.

Apply a Percentage to Structural Elements Using a Single Validation Table

You can now apply a percentage in order to adjust the rate of structural elements that are set up with only a single validation table. For example, if you have a structural element for heating and a building is only 100% heated, you can enter 60% on the Building Structural Elements form. The percentage could be used to adjust the rate or for informational purposes only.

In previous releases, the percentage was used in order to create a breakdown by percentage for structural elements that were created with multiple validation tables. For example, the exterior wall type structural element could be created with three validation one for each of the following materials: brick, stucco, and timber. The value of the exterior wall type would be computed according to how much of each material was used to compose the walls, such as 60% brick and 40% stucco. A percentage validation could be added to ensure that all elements add up to 100% or no percentage validation could be added. This could be useful if you needed to include more variations, such as walls that were composed of other materials in addition to the ones listed.

Creating Building Records

The Create Building in MA icon is now removed. Previously, this icon was enabled when you created a new building. It was used to add the new building record to the Mass Appraisal tables. Otherwise, the building existed only in the Property Control tables. The building is now automatically added to Mass Appraisal when you save the new record.

Applying Minimum and Maximum Values to Structural Elements

You can now set a minimum and / or maximum numeric value for building structural elements tables defined as Feature Element Category.

 

Mass Appraisal General Administrative Setup

Before defining building-specific information, complete the general administrative setup for all Mass Appraisal modules. This is described in the Mass Appraisal General Information guide. It comprises the following forms, tables, and codes:

  • Mass Appraisal General Parameters: 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:
    • Building Area Size: the area of each structural element
    • Building Values: the total building value
    • Site
  • Limited Assessment Validation Table

Mass Appraisal Buildings Administrative Setup

The Mass Appraisal administrative setup for buildings comprises the following administrative forms, Validation Tables and Codes.

  • Mass Appraisal Administrative Forms for Buildings
  • Mass Appraisal General Parameters for building data:
  • Page 1 Yearly Data:
  • Page 2 Building Value Computations:
  • Pages 4 and 5 Building Structural Elements:
  • Building Model / Jurisdiction form:
  • Renumber Building Sequence Numbers form:
  • Mass Appraisal Buildings Validation Tables and Codes
  • These are described under the following headings:
  • Drawing (Table: MA_PARMDRAWING). Mass Appraisal Validation Tables and Codes for Building Data
  • Building Structural Elements
  • Using Percentages with Structural Elements
  • Adding a Tooltip
  • Element Categories
  • Area Adjustment Element Category
  • Area Size Override Element Category
  • CAMA Adjustments Element Category
  • Depreciation
  • Depreciation Override
  • Feature Element Category
  • Header Element Category
  • Overall Adjustments Element Category
  • Quality Points Element Category
  • Rate Adjustment Element Category
  • Building Use Codes
  • Size Adjustments (Table: MA_PARMSIZEADJT)
  • Occupancy
  • Fair Market Value Model Validation Table
  • Fair Market Value Elements Validation Table

Overview of the Govern Mass Appraisal User Forms

The Mass Appraisal Building Structural Elements form includes dividers for the Buildings, Building Structural Elements & Features, Building Drawing, and for Real Property Exemptions applied to buildings.

Buildings

The Buildings form maintains Buildings on the current property. It stores the location and effective year of the building, and assigns an ID according to the type of building. The Buildings form is a prerequisite for building drawing and building structural elements and features records. See Buildings on page 139.

Building Linking

The Building Linking form can be useful if you have multiple buildings that are owned by a single individual or company or that are part of a multi-unit franchise with a single owner. You can use this form to link the buildings together. One building is designated as the Master Building and the others are linked to it. Before you can link buildings together, you need to link the parcels on which the buildings are located. This is done through the Parcel Linking form. Refer to the General Information Parcel Linking section of the Property Control guide for details. For details on linking buildings, see Building Linking on page 142.

Building Drawing Forms

The Building Drawing Apex and Govern Sketch forms provide state-of-the-art tools for creating and modifying drawings of structural elements. They also summarize the area and perimeter of each element and provide totals for the building.
Two types of Building Drawing tools are supported:

  • Govern Sketch: This is the standard tool built into Govern. If you are using Govern Sketch.
  • Apex: Apex is a third-party tool that is partially supported by Govern. If you have Apex installed.

Building Structural Elements and Features

The Building Structural Elements and Features form maintains details on each structural element within a building. The form has two dividers: Inventory for maintaining details on each structural element and Summary for the RCN, RCNLD, effective rate, adjustments and the total value of the building. See Building Structural Elements and Features on page 172.

Building Exemptions

You can apply tax exemptions to the land, building, income, or miscellaneous structures records. If an exemption applies to the building only, use the CAMA Exemptions form to display the exemption and calculate the value. See Building Exemptions.

MRA

The Mass Appraisal Multiple Regression Analysis (MRA) form is used for calculating the fair market value of the selected property. The value is based on a Market Model that is defined in Govern Admin. The Market Model comprises a formula or logical expression and a number of market elements. Each market element defines a characteristic of a building or property that influences the market value, such as the number of bedrooms or effective living area. Each market model and each market element can have a number of codes. Each code is based on a fixed value, formula, or logical expression. See MA – MRA.

 

 

101-ma-buildings

 

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 – Appraisal Linking

CAMA Appraisal Linking

Overview

Parcel Linking

The Parcel Linking function is used for linking a group of parcels. These parcels can be assessed and assigned values based on total area rather than
on a per parcel basis, with the Mass Appraisal module. This function can be used, for example, to maintain data on a condominium complex.
Define the complex as the master parcel and link each unit to it. Enter a percentage for each unit; then, use the Appraisal Linking option to calculate
the values. Alternately, you can enter a value and a percentage for each unit and use this option to calculate the value of the master parcel. For additional details, see Parcel Linking

 

 

101-ma-frm-003

 

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 and Comparable Sales

Sales & Comparable  Sales

Overview

Comparable Sales (Comp sales) is a valuation method to appraised a property based on sales of similar properties and adjustments to take into account the property characteristics and different market factors.
An important tool for an organization to validate that their values are fair and as close to reality as possible. It plays a major role in property owners appeals (contesting their appraised value) and court cases.

General Process

1-Creation / Validation of Sales

  • Sales are created and validated, (qualified), grantors (seller) and grantees (buyer) are recorded.
  • Note: Ownership changes, updates of mailing index and property exemption to names (i.e. veterans) inactivation is triggered or processed automatically (depends on setup).

2-Comparable Sales Extract

The sales extract batch program is run to:

  • Extract the sales to use in the analysis based on different criteria.
  • Calculate the Subject to Comparable Selection Index
  • Calculate the Comparable Sales Adjustment

3-Comparable Sales Function

  • Subject and Comparable property characteristics are displayed (Sales extracted, Open search or Previously saved)
  • Comparable properties can be added (force compare), removed or re-ordered in the grid sorted by selection index (lower = most comparable)
  • Comparable sales results are saved and/or printed (mostly for appeals)

Setup

General Parameters

  • System Registry General Parameters (page 3 tab)

 

Mass Appraisal Tables Parameters

  • table xxx

 

Product Codes

Product Code Name Comments
101-pc-frm-xxx Deeds Function Legal Deed of Sale Function can be used to generate sales
101-pc-ofr-xxx Open Form Reference Model This OF model includes
101-ma-frm-015 Sales Function
101-ma-ofr-015 Open Form Reference Model This OF model includes links to other parcels.
Sale grantors (sellers) and sale grantees (buyers) are a custom ctrl
703-ma-bp-002-[v10.8] Comparable Sales Extract Batch Program
Govern for Windows for Hybrid OF version up to [v6.1]
101-ma-frm-029 Comparable Sales Function Subject and Comps Property Characteristics are displayed
101-ma-ofr-029-[v6.1] Comparable Sales Open Form Reference Model
101-ma-frm-029-rpt Standard or Custom Report??? Crystal or SSRS
703-Govbat Comparable Sales Computation
Govern for Windows for Hybrid OF version up to [v6.1]
703-GovBat-compute Govern Batch – Appraisal Value Computation Batch Calculation (new year…)
703-GovBat-daemon Govern Batch – DAEMON On-line Calculation
702-Admin Comparable Sales Parameters
Govern for Windows for Hybrid OF version up to [v6.1]
702-Admin-General Comp sales General Parameters (System Registry)
702-Admin-CompSale Comp sales Parameters (Mass Appraisal Tables)

Specifications

Sales Extract

  • Sales are extracted by type (qualified / not qualified) and sale date
  • Sales extracted are recorded by FISCAL YEAR.
  • Selection index are calculated based on different factors (parameters). They can be included or excluded when executing the batch program.
  • The higher the selection index, the less the sale is comparable
  • Adjustment index …. […]

Comparable Sales

  • Displays comparable properties for the subject parcel (current parcel id) based on the selection index (lower = closer)
  • Select/Show comparables from:
    • Extracted Sales (ma_sales_extract),
    • Previously Saved Sales
    • Open Database Search

What’s New

Comp Sales Changes

 

 

101-ma-compsales

 

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 Drawing (non-Apex)

CAMA Drawing (non-apex)

[ Deprecated]

Overview

The function has been replace with the APEX building drawing feature.

 

 

101-ma-frm-004

 

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

MA – Compute Building Value

CAMA Building Value Computation

General Purpose

The purpose of the Building Computation is to provide values of all the Govern’s system columns for a given record of the table MA_BUILDINGS_XX. The ultimate goal of this compute is to provide a building value (the cost for a building structural elements) based on building’s physical characteristics (called structural elements). [VB6 class name: GvObjCostComp OF:MACostComp.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

General Parameters (SY REGISTRY by YEAR)

  • QP_ROUNDING = “Mass Appraisal”, “Quality Point Rounding” = (‘yes’ or ‘no’)
  • QP_DECIMAL = “Mass Appraisal”, “Quality Point Decimal”
  • USE_BASE_AREA_FOR_LOOKUP = “Mass Appraisal”, “Bldg Lookup By Base Area” = (‘yes’ or ‘no’)
  • ROUND_UP_AREA = “Mass Appraisal”, “Round Up Area” = (‘yes’ or ‘no’)
  • EFFECTIVE_LIVING = “Mass Appraisal”, “Effective = Living” = (‘yes’ or ‘no’)
  • “Mass Appraisal”, “Size Adjt Method”
  • CAMA_ADJ_DECIMAL = “Mass Appraisal”, “Cama Adjustment Decimal”
  • “Mass Appraisal”, “Size Adjt. Decimal”
  • SE_BY_MODELS = “Mass Appraisal”, “Associate SE to models” = (‘yes’ or ‘no’)
  • SE_BY_MODELS_YEAR = “Mass Appraisal”, “Associate SE to models Year Effective”
  • SQUARE_ROOT = “Mass Appraisal”, “Area In Square Root” = (‘yes’ or ‘no’)
  • “Mass Appraisal”, “Property Type From pc_legal_info” = (‘yes’ or ‘no’)
  • USE_METRIC = “General”, “use metric” = (‘yes’ or ‘no’)
  • SIZE_ADJ_METHOD = “Mass Appraisal”, “Size Adjt Method” = (‘1’ or ‘2’)
  • SIZE_ADJ_DECIMAL = “Mass Appraisal”, “Size Adjt. Decimal” default 3
  • PROPERTY_TYPE_FROM_PC_LEGAL = “Mass Appraisal”, “property type from pc_legal_info” = (‘yes’ or ‘no’)

Parameters discontinued in Govern OpenFroms 6.1.

  • “Mass Appraisal”, “Compatibility SE Compute”
  • “Mass Appraisal”, “Compatibility SE Compute Year Effective”
  • “Mass Appraisal”, “Optimize Computation Speed”
  • “Mass Appraisal”, “Round by Drawing Code”
  • “Mass Appraisal”, “Skip Rates Interpolation”

Changed Parameters

  • DEPR_BASE_YEAR=Year value (ex:2015), “Depreciation Year” should now be using the registry by year under “Mass Appraisal”

 

Tables and Fields

Tables

  • MA_BUILDINGS (includes old MA_BLDG_INFO)
  • MA_BLDG_AREA_YEAR (replaces old MA_BLDG_AREA)
  • PC_AREA.NBHD NOTE: At a minimum the PROPERTY_TYPE column has to be available to the building context, but ideally all columns of PC_LEGAL_INFO (to validate)
  • PC_LEGAL_INFO.PROPERTY_TYPE (same NOTE)
  • MA_BUILDINGS. BLDG_ID + BLDG_SEQ -> PC_LK_PARCEL_BLDG.P_ID
  • PC_LK_PARCEL_BLDG.P_ID -> PC_AREA.P_ID
  • PC_AREA.NBHD -> MA_PARM_NBHD.NBHD_CODE
  • MA_BUILDINGS.BLDG_USE_CODE -> MA_PARM_BLDGUSE.BUSE_CODE
  • MA_BUILDINGS.SUBMODEL_CODE -> MA_PARM_SUBMODEL.SUBMODEL_CODE
  • MA_BUILDINGS.BLDG_MODEL_CODE -> MA_PARM_DRAWING.BLDG_MODEL_CODE MA_BUILDINGS.SUBMODEL_CODE -> MA_PARM_DRAWING.SUBMODEL_CODE
  • MA_BUILDINGS.BLDG_MODEL_CODE -> MA_PARM_SE_MODELS.BLDG_MODEL_CODE
  • MA_BLDG_AREA_YEAR. AREA_CODE-> MA_PARM_DRAWING.BLDG_AREA_CODE
  • MA_BUILDINGS.YEAR_ID -> MA_MODIF_STAMP.YEAR_ID

Parameter Tables

  • MA_TABLES.TABLE_CATEGORY = “bldg”
  • MA_PARM_MAROUND.ROUNDING_CODE = “bldg” for the building value
  • MA_PARM_MAROUND.ROUNDING_CODE = “area” for the areas (building dimensions)
  • MA_PARM_MAROUND.ROUNDING_CODE = “look” for the areas used in lookups

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

  • TOTAL_BASE
  • TOTAL_ACTUAL
  • TOTAL_EFFECTIVE
  • TOTAL_LIVING_AREA
  • TOTAL_HEATED
  • TOTAL_PERIMETER
  • TOTAL_RCN
  • TOTAL_RCNLD
  • TOTAL_VALUE
  • SITE_ADJ_TOTAL
  • NBHD_ADJ_TOTAL
  • FINAL_ADJ

Lookup Group
Many of the parameters used in the building 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
  • By jurisdiction AND property type

Look-up Group Example

We have a building record for the year 2015 with BLDG_USE_CODE = “45”. We want to get a BSE element which is defined in the table MA_PARM_SETAB where the table name is “EXTWALL” and the primary key contains the SE_CODE and LOOKUP_GROUP. We already have the YEAR_ID and the SE_CODE ( “45”) but now we need the lookup group.

Next, we go to the table MA_LOOKUP_GROUP and get all the records with TABLE_NAME=”EXTWALL”, YEAR_ID=2015 and CAMA_CODE=”45”. 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
The following information is required to use 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_BLDGUSE.PROPERTY_TYPE based on MA_BUILDINGS.BLDG_USE_CODE = MA_PARM_BLDGUSE.BUSE_CODE and MA_BUILDINGS.YEAR_ID = MA_PARM_BLDGUSE.YEAR_ID. If no information is found in MA_PARM_BLDGUSE 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.

 

Step 1 – Compute the areas

For each record in MA_BLDG_AREA_YEAR, based on the field BASE_AREA, using the percent values from MA_PARM_DRAWING (by searching with the AREA_CODE and lookup by MODEL/SUBMODEL if used):

a) Calculate the areas

Calculate the actual, effective, heated and perimeter area.

  • MA_BUILDINGS.TOTAL_BASE = the total of all MA_BLDG_AREA_YEAR.BASE_AREA

 

  • MA_BLDG_AREA_YEAR.EFFECTIVE_AREA = MA_BLDG_AREA_YEAR.BASE_AREA * Expression content [MA_PARM_DRAWING. EXPRESSION] * Expression content [MA_PARM_DRAWING.EFFECTIVE_EXPESSION] / 10000
    • If USE_METRIC we round to 1 decimal otherwise we round to 0 decimal

 

  • MA_BLDG_AREA_YEAR.ACTUAL_AREA = MA_BLDG_AREA_YEAR.BASE_AREA * Expression content [MA_PARM_DRAWING. EXPRESSION] / 100
    • If USE_METRIC we round to 1 decimal otherwise we round to 0 decimal. MA_BUILDINGS.TOTAL_ACTUAL = the total of all MA_BLDG_AREA_YEAR.ACTUAL_AREA

 

  • MA_BLDG_AREA_YEAR.LIVING_AREA = MA_BLDG_AREA_YEAR.ACTUAL_AREA
    • if MA_PARM_DRAWING.LIVING_AREA = -1 otherwise = 0
  • MA_BUILDINGS. TOTAL_LIVING _AREA = the total of all MA_BLDG_AREA_YEAR. LIVING _AREA
  • If EFFECTIVE_LIVING = “yes” then
    • MA_BUILDINGS.TOTAL_EFFECTIVE = the total of all MA_BLDG_AREA_YEAR. LIVING _AREA

 

  • MA_BLDG_AREA_YEAR.HEATED_AREA = MA_BLDG_AREA_YEAR.ACTUAL_AREA
    • if MA_PARM_DRAWING.HEATED = “yes” = MA_BLDG_AREA_YEAR.ACTUAL_AREA * MA_BLDG_AREA_YEAR.PERCENT_HEATED
    • if MA_PARM_DRAWING.HEATED = “partial” or = 0 if MA_PARM_DRAWING.HEATED = “no” MA_BUILDINGS. TOTAL_HEATED = the total of all MA_BLDG_AREA_YEAR. HEATED_AREA

 

  • MA_BUILDINGS. TOTAL_PERIMETER = the total of all MA_BLDG_AREA_YEAR. PERIMETER

 

b) Cumulate the building areas by type

This steps cumulates the areas by area type (i.e. Basement, Garage, Porch, 1st Floor … Attic, etc.). The Building Drawing Table Option By Area Type must be turned on where each drawing code can be associated to an area type. When none define, the Area Type ‘E’ Effective is used by default. When the Drawing Area Code Option Do not xxxx is turned on, the area is not added to the Effective or Area Type totals (i.e. for perimeter consideration only).

  • Cumulate the values in a collection by MA_PARM_DRAWING.AREA_TYPE (if NULL use the default ‘e’) if MA_PARM_DRAWING.EX_FROM_LOOKUP = 0 or NULL.
  • The collection is indexed by AREA_TYPE and contains the following variables:
    • TOTAL_EFFECTIVE = sum of all MA_BLDG_AREA_YEAR.EFFECTIVE_AREA per AREA_TYPE
    • TOTAL_FOR_LOOKUP = sum of all MA_BLDG_AREA_YEAR.EFFECTIVE_AREA per AREA_TYPE if USE_BASE_AREA_FOR_LOOKUP = “no” else sum of all MA_BLDG_AREA_YEAR.ACTUAL_AREA per AREA_TYPE if USE_BASE_AREA_FOR_LOOKUP = “yes”
    • TOTAL_RATE = 0 (will be use in the next steps)
    • TOTAL_VALUE = 0 (will be use in the next steps

c) Add the areas to TOTAL for Lookup
Cumulate the values of all TOTAL_FOR_LOOKUP into a variable GRAND_TOTAL_FOR_LOOKUP for use later in the compute.

Step 2 – Round and Update Areas

Round and update area fields in MA_BUILDING (see Rounding Table)

a) Rounding by Area type

  • Round each element of the collection created in step 1 for TOTAL_EFFECTIVE by using MA_PARM_MAROUND.ROUNDING_CODE = “area” and evaluating the Expression content [MA_PARM_ROUNDING.ROUND_TO_EXPESSION]. The rounding is performed by dividing TOTAL_EFFECTIVE by the ROUNDING_VALUE, by adding 0.4999999999999 if ROUND_UP_AREA = “yes”, by formatting the result to no decimal and then by multiplying back by the rounding value. If SQUARE_ROOT = “yes” then do a square root on TOTAL_EFFECTIVE.

b) Rounding by Total

  • Round each element of the collection created in step 1 for TOTAL_FOR_LOOKUP by using MA_PARM_MAROUND.ROUNDING_CODE = “look” and evaluating the Expression content [MA_PARM_ROUNDING.ROUND_TO_EXPESSION]. The rounding is performed by dividing TOTAL_FOR_LOOKUP by the ROUNDING_VALUE, by adding 0.4999999999999 if ROUND_UP_AREA = “yes”, by formatting the result to no decimal and then by multiplying back by the rounding value. If SQUARE_ROOT = “yes” then do a square root on TOTAL_FOR_LOOKUP.

c) Grand Total Rounding

  • Round GRAND_TOTAL_FOR_LOOKUP by using MA_PARM_MAROUND.ROUNDING_CODE = “look” and evaluating the Expression content [MA_PARM_ROUNDING.ROUND_TO_EXPESSION]. The rounding is performed by dividing TOTAL_EFFECTIVE by the ROUNDING_VALUE, by adding 0.4999999999999 if ROUND_UP_AREA = “yes”, by formatting the result to no decimal and then by multiplying back by the rounding value. If SQUARE_ROOT = “yes” then do a square root on GRAND_TOTAL_FOR_LOOKUP.

 

Step 3 – Get Initial Building Rate Information

Building Area Rate

Get Building Rate Setup
Check Rate Setup and get the initial rate from the building use code and the default property type. To do so, need to get one record from MA_TABLES for table_type = ‘bldguse’ to see if there is a lookup by:

  • bldg_model (field setab_use_model = -1)
  • submodel (field setab_submodel = -1)
  • units (field use_units = -1)

Get Property Type

  • PROPERTY_TYPE = MA_PARM_BLGUSE.PROPERTY_TYPE
  • If PROPERTY_TYPE is NULL then get the property type from PC_LEGAL_INFO.

Get Initial Rate
The rate is established by getting MA_PARM_BLGUSE or MA_PARM_BRATE if the units are used).
The rate will be associated with the TOTAL_RATE collection created in step 2 based on MA_PARM_SE_AREA.AREA_TYPE. If no records found, use ‘e’ (Effective area) as AREA_TYPE.
Fixed Rate

  • If MA_TABLES.USE_UNITS is False, then get the rate from MA_PARM_BLGUSE by searching with MA_BUILDINGS.BLDG_MODEL_CODE and with MA_BUILDINGS.SUBMODEL_CODE– depending on the lookup found above. The rate is evaluated from an expression and stored in TOTAL_RATE of every elements in the collection indexed by AREA_TYPE.

Rate by Unit

  • If the MA_TABLES. USE_UNITS is True, than get a pro-rated rate form MA_PARM_BRATE by searching with MA_BUILDINGS.BLDG_MODEL_CODE and with MA_BUILDINGS.SUBMODEL_CODE – depending on the lookup found above. The Up_to_units area information (TOTAL_FOR_LOOKUP) is prorated based on the collection indexed by AREA_TYPE (Up_to_units >= TOTAL_FOR_LOOKUP) AND the value of AREA_TYPE for each entry found in MA_PARM_SE_AREA . The rate is evaluated from an expression and stored in TOTAL_RATE for the selected elements in the collection indexed by AREA_TYPE.

 

Building Use Depreciation Table

We need to store the depreciation table and the maximum depreciation percentage into variables for use later in the depreciation step (step 18).

  • DEPR_TABLE = MA_PARM_BLGUSE.DEPR_TABLE.
  • MAX_ DEPR_PCT = MA_PARM_BLGUSE.MAX_ DEPR_PCT.

 

Building Rate by Area Units Example

When MA_TABLES. USE_UNITS is True
Collection contains:
AREA_TYPE TOTAL_FOR_LOOKUP TOTAL_RATE
b 1000 0
l 2000 0
MA_TABLES has:
TABLE_NAME COMPUTATION_SEQ SETAB_USE_MODEL SETAB_SUBMODEL SETAB_USE_UNITS
bldguse 0 0 0 -1
MA_PARM_SE_AREA has :
COMPUTATION_SEQ AREA_TYPE
0 b
0 l
MA_PARM_BRATE has:
BUSE_CODE UP_TO_UNITS RATE
ms0001a 1000 20.50
ms0001a 3000 18.50
ms0001a 9999999 10.00
The collection will contain:
AREA_TYPE TOTAL_FOR_LOOKUP TOTAL_RATE
b 1000 20.5
l 2000 19.5 (pro-rated)

Step 4 – Structural Elements Values Calculation

This step gets and calculates all building structural elements that apply.It computes or evaluates all the XXX_VA, XXX_V2 columns based on the corresponding value of XXX_CD.

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

Structural elements can be associated to:

  • Property type
  • SE models (based on the registry SE_BY_MODELS and SE_BY_MODELS_YEAR which determines the effective year)

Structural Elements in MA TABLE
Get all the structural elements records from MA_TABLE for the year, having TABLE_TYPE = ‘setab’ AND MA_TABLES.setab_rd_code <> ‘h’.

  • If they are associated to the SE models then join with the table MA_PARM_SE_MODELS and filter on MA_BUILDINGS.BLDG_MODEL_CODE,
  • if not then use PROPERTY_TYPE (Step 3) that match MA_TABLES.PROPERTY_TYPE or MA_TABLES.PROPERTY_TYPE = NULL.

Computation Sequence
The records will be ordered by COMPUTATION_SEQ.

* Use this set of records within the steps below *

Query Sample if Associated to SE Models

  • SELECT ma_tables.* FROM ma_tables, ma_parm_se_models WHERE ma_tables.year_id = ma_parm_se_models.year_id AND ma_tables.column_name = ma_parm_se_models.column_name AND ma_tables.computation_seq = ma_parm_se_models.computation_seq AND table_type = ‘setab’ AND setab_rd_code <> ‘h’ AND ma_tables.year_id = 2015 AND bldg_model_code = ‘ms0009’ ORDER BY ma_tables.computation_seq

 

MA Building Records Calculation

Each of the records will be treated separately, in order to find the value to be updated in MA_BUILDINGS for the corresponding XXX_VA field of the MA_TABLE.COLUMN_NAME, using the XXX_CD field value set in MA_BUILDINGS.

a) No Table Name

If there is no MA_TABLES.TABLE_NAME and the value into the corresponding _CD field is numeric, it will be transferred into the _VA field, otherwise XXX_VA is set to NULL.

b) No Table Name and Setab Col 11 = -1

If there is no MA_TABLES.TABLE_NAME and MA_TABLES.SETAB_COL_11 = -1 then XXX_V2 is set to NULL.
The next sub steps are only performed when there is a MA_TABLES.TABLE_NAME

c) Get MA_PARM_SETAB

Based on:

  • bldg_model_code (if MA_TABLES.setab_use_model = -1 – lookup by model)
  • submodel_code (if MA_TABLES.setab_submodel = -1 – lookup by submodel)
  • matrix_code (if MA_TABLES.setab_use_matrix = -1 – then retrieve another MA_TABLES record that will provide the MA_TABLES.COLUMN_NAME based on MA_TABLES.COMPUTATION_SEQ = MA_TABLES.setab_seq_pointer.
    • The matrix code value is found in MA_BUILDINGS.XXX_CD based on the retrieved MA_TABLES.COLUMN_NAME or in MA_BUILDINGS.XXX_VA if MA_TABLES.lookup_on_value = -1.
  • matrix_code2 (if MA_TABLES.setab_use_matrix = -1 – then use MA_TABLES.COMPUTATION_SEQ = MA_TABLES.setab_seq_pointer2.
  • matrix_code3 (if MA_TABLES.setab_use_matrix = -1 – then use MA_TABLES.COMPUTATION_SEQ = MA_TABLES.setab_seq_pointer3.
  • with up_to_units (if MA_TABLES.setab_area_lookup is set – lookup using the area collection, there are 3 area lookup types: a, p, t
    • ‘t’ (Grand Total) : use GRAND_TOTAL_FOR_LOOKUP
    • ‘a’ or ‘p’ : use the collection TOTAL_FOR_LOOKUP using AREA_TYPE = entry with the greater TOTAL_FOR_LOOKUP value in MA_PARM_se_area
    • ‘p’ : apply the percentage entered into the XXX_PC corresponding column in MA_BUILDINGS in order to reduce area if MA_TABLES.setab_col_3 = -1.
      • NOTE: If XXX_PC contains 50 then TOTAL_FOR_LOOKUP is 2000 then we use 1000 (50% of 2000).
      • Rates are always pro-rated between the UP_TO_UNITS as per example in step 3.

 

d) Evaluate MA_PARM_SETAB Expression

Evaluate the expression of MA_PARM_SETAB and store it in XXX_VA.

e) Rate Adjustment / Depreciation

If the Element Category of the record is Rate Adjustment (MA_TABLES.setab_rd_code = “r”)
AND there is a Depreciation Table set (field MA_PARM_SETAB.depr_table) then depreciation will be applied on the value (XXX_VA) as per below:

  • a. We get the DEPR_PCT
    • i. We determine the Appraisal base year APPR_BASE (registry DEPR_BASE_YEAR) using the current MA_TABLE.YEAR_ID
    • ii. MA_PARM_DEPR.TABLE_NAME = MA_PARM_SETAB.DEPR_TABLE
    • iii. We evaluate the MA_PARM_DEPR.NUMBER_OF_YEARS = FORMAT (APPR_BASE – MA_BUILDINGS.EYB to ‘000’). If negative we use 0. If MA_BUILDINGS.EYB is NULL we use MA_BUILDINGS.YEAR_BUILT.
    • iv. We evaluate the expression MA_PARM_DEPR.EXPRESSION
    • v. If MA_PARM_DEPR.EXPRESSION > MA_PARM_SETAB.max_depr_pct then the DEPR_PCT is MA_PARM_SETAB.max_depr_pct
  • b. We set the XXX_VA Value XXX_VA = XXX_VA * (100 – DEPR_PCT) / 100

 

f) Apply % to the Value

If a percentage is entered into the _PC corresponding column in MA_BUILDINGS (when MA_TABLES.setab_col_3 = “-1”) then apply the % (XXX_PC) to the value (XXX_VA).

g) Set MA_BUILDINGS.xxx_V2

If MA_TABLES.setab_col_11 = -1, Then
MA_BUILDINGS.XXX_V2″ = MA_PARM_SETAB.base_value.

Step 5 – Round and Compute Average

This step computes the average for all structural elements having equal consecutive MA_TABLE.TABLE_NAME with different MA_TABLE.COLUMN_NAME.
We exclude from this step all MA_TABLE.setab_col_3 = -1 or MA_TABLE.no_average = -1

  • Simply divide XXX_VA by the entry count and round to:
    • Case MA_TABLE.setab_rd_code
    • Case ‘q’ – IF QP_ROUNDING = ‘yes’ then round to QP_DECIMAL
    • Case ‘a’, ‘t’ – Round to CAMA_ADJ_DECIMAL
    • Case else Round to 2 digits.

If MA_TABLES.setab_col_11 = -1 Then perform the same logic for XXX_V2.

Example
MA_BUILDINGS
A1_VA= 16.445 A2_VA=20.555 A3_VA=2
MA_TABLES
COMPUTATION_SEQ TABLE_NAME COLUMN_NAME SETAB_COL_3
23 WALL A1 0
24 WALL A2 0
25 WALL A3 0
Results
A1_VA=16.445/3=5.48
A2_VA=20.555/3=6.85
A3_VA=2/3=0.67

Step 6 – Round and Compute Link

This step computes the linked values for all structural elements having MA_TABLES.setab_lk_pointer not NULL)

a) Loop in reverse order, from the last record to the first.
b) Depending on the field MA_TABLES.MATHS of each element having a link, its _VA field will be added, subtracted or multiplied to the _VA field of the linked computation sequence. For multiplication, if the MA_TABLES.PCT_AMT field is ‘p’ than the result will also be divided by 100 (Percent)
c) Set the value of XXX_VA to null
d) Case MA_TABLE.setab_rd_code

  • Case ‘q’ – IF QP_ROUNDING = ‘yes’ then round to QP_DECIMAL
  • Case ‘a’, ‘t’ then Round to CAMA_ADJ_DECIMAL
  • Case else then Round to 2 digits.

If MA_TABLES.setab_col_11 = -1 Then perform the same logic for XXX_V2.

Example
MA_BUILDINGS
A1_VA= 8 A2_VA=4
MA_TABLES
COMPUTATION_SEQ TABLE_NAME COLUMN_NAME MATH setab_lk_pointer (verify)
26 QUAL A1 X NULL
27 QMOD A2 + 27

A1_VA = 12
A2_VA = NULL

Step 7 – Adjust Areas

Scan the records of MA_TABLE and adjust the areas in the area collection (EFFECTIVE_AREA) for all entries MA_TABLES.setab_rd_code = “m”

Use the same logic as in STEP4 to select the MA_TABLES records.
Update the area collection (EFFECTIVE_AREA) by AREA_TYPE for all entries found in MA_PARM_se_area compute the EFFECTIVE_AREA collection.
if MA_PARM_se_area has no record found then use ‘e’.

  • Depending on MATHS, cumulate or multiply the value from column_VA to the EFFECTIVE_AREA collection based on MA_PARM_se_area .area_type
  • If the _V2 column is used, cumulate also the value from column_V2

 

Step 8 – Override Areas

Scan the records of MA_TABLE and override the areas in the area collection (EFFECTIVE_AREA) for all entries MA_TABLES.setab_rd_code = “s”

Use the same logic as in STEP4 to select the MA_TABLES records.
If MA_PARM_se_area has no record found then use ‘e’.

  • For all entries found in MA_PARM_SE_AREA move the XXX_VA to the corresponding EFFECTIVE_AREAcollection.

 

Step 9 – Adjust Rates

Scan the records of MA_TABLE and adjust the rates in the rate collection (TOTAL_RATE) for all entries MA_TABLES.setab_rd_code = “r” (VB6 : pv_scan_ma_table, pv_set_rate_tab)

Use the same logic as in STEP4 to select the MA_TABLES records.
Update the rate collection (TOTAL_RATE) by AREA_TYPE for all entries found in MA_PARM_se_area compute the TOTAL_RATEcollection.

  • if MA_PARM_se_area .AREA_TYPE = “e” (Effective Area) or no record found, then, depending on MATHS, cumulate or multiply the value from column_VA to all the areas within the collection, otherwise apply it only to the area_type corresponding to the area set in MA_PARM_se_area.

 

  • If the _V2 column is used, cumulate the value from column_V2Into a variable (grand_total_amount_adj_add) used below for CAMA adjustments.

 

Step 10 – Compute Size Adjustment

Compute the size adjustment variable (Govern for Windows: pv_compute_size_adjt).
A size adjustment is an adjustment to the rate based on the value of the TOTAL_EFFECTIVE collection.

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.

1. Get the MA_PARM_SIZEADJT entry for MA_BUILDINGS.BLDG_MODEL_CODE
2. If a record is not found then there is no size adjustment. Go to step 11.
3. If MA_PARM_SIZEADJT.SETAB_AREA_TYPE is NULL or = ‘e’ then we use MA_BUILDINGS.TOTAL_EFFECTIVE as the area value for the next sub steps, otherwise we use the TOTAL_EFFECTIVE collection item that match the area type. If the area value is 0 we go to step 11.
4. We evaluate the expression in MA_PARM_SIZEADJT.EXPRESSION and if the result is not zero then we set this value into MA_BUILDINGS.SIZE_ADJUSTMENTS and go to sub step 8.
5. if SIZE_ADJ_METHOD is Method 1 then the size adjustment is:

  • MA_BUILDINGS.SIZE_ADJUSTMENTS = ( MA_PARM_SIZEADJT.building_size * MA_PARM_SIZEADJT.land_bldg_ratio / area_value) + (1 – MA_PARM_SIZEADJT.land_bldg_ratio)
    • If MA_BUILDINGS.SIZE_ADJUSTMENTS < MA_PARM_SIZEADJT.MINIMUM_RATIO then we reset the size adjustment to the minimum.
    • If MA_BUILDINGS.SIZE_ADJUSTMENTS > MA_PARM_SIZEADJT.MAXIMUM_RATIO then we reset the size adjustment to the maximum.

6. if SIZE_ADJ_METHOD is Method 2 then the size adjustment is:

  • If the area value < MA_PARM_SIZEADJT.MINIMUM_RATIO then we reset the area value to the minimum.
  • If the area value > MA_PARM_SIZEADJT.MAXIMUM_RATIO then we reset the area value to the maximum.
  • MA_BUILDINGS.SIZE_ADJUSTMENTS = (area_value – MA_PARM_SIZEADJT.building_size) * MA_PARM_SIZEADJT.land_bldg_ratio

7. We round the size adjustments to the number of decimal positions as per the SIZE_ADJ_DECIMAL value.

8. If the size adjustment is for area type NULL or ‘e’ then we apply the following logic to ALL elements of the collection. If SIZE_ADJ_METHOD is Method 1 we multiply the rounded size adjustment by the rate found in the TOTAL_RATE collection for the current area_type. elseif SIZE_ADJ_METHOD is Method 2 we add the rounded size adjustment to the rate found in the TOTAL_RATE collection for the current area_type.

Step 11 – Compute Initial Value

In this step we compute an initial value for each items in the collection (VB6 : pv_compute_area_rate).

  • For each item in the area collection do TOTAL_VALUE = TOTAL_EFFECTIVE * TOTAL_RATE

 

Step 12 – Adjust the Total Value (CAMA Adjustment)

  • Scan the records of MA_TABLE and adjust the total value in the area collection (TOTAL_VALUE) for all entries MA_TABLES.setab_rd_code = “a”
  • Use the same logic as in STEP4 to select the MA_TABLES records.
  • If there are no records in MA_PARM_se_area or if MA_PARM_se_area.area_type = “e” then the adjustments are applied for all entries in the collection except for a Special Case (see below)
  • Depending on MATHS and PCT_AMT, cumulate or multiply the value from column_VA into the collection array TOTAL_VALUE.
  • If the _V2 column is used, cumulate also the value from column_V2into TOTAL_VALUE, independently of the MATHS.

Special Case:
If there are no records in MA_PARM_se_area OR if MA_PARM_se_area.area_type = “e”
AND also the MATHS is + or – and the PCT_AMT is ‘a’ (Amount), the adjustment will be applied only once, as following:

  • The value from column_VA will be cumulated into grand_total_amount_adj_add (and not into the collection array TOTAL_VALUE)
  • If the _V2 column is used, cumulate also the value from column_V2 into grand_total_amount_adj_add.

 

Step 13 – Compute the initial building value

The INITIAL_BLDG_VALUE is computed by adding all TOTAL_VALUE from the area collection.

  • Add grand_total_amount_adj_add (step 9) to INITIAL_BLDG_VALUE.

 

Step 14 – Compute the Quality Points

Quality points is a special type of adjustment that is a percentage that adjust the total value.
Scan the records of MA_TABLE for all entries MA_TABLES.setab_rd_code = “q”
Use the same logic as in STEP4 to select the MA_TABLES records.

  • Depending on MATHS (+ or – only), cumulate all the values of column_VA into MA_BUILDINGS.QUALITY_POINTS.
    • If MA_BUILDINGS.QUALITY_POINTS = 0 then set it to NULL and do not compute the adjustment below.

 

  • INITIAL_BLDG_VALUE = INITIAL_BLDG_VALUE * MA_BUILDINGS.QUALITY_POINTS / 100.

 

Step 15 – Compute Overall Adjustment

Overall adjustments are used to to modify the total value of a building according to user-defined criteria such as number of rooms or number

of fireplaces.

Scan the records of MA_TABLE and adjust the INITIAL_BLDG_VALUE for all entries MA_TABLES.setab_rd_code = “t”
Use the same logic as in STEP4 to select the MA_TABLES records.

  • Depending on MATHS and PCT_AMT, cumulate or multiply the value from column_VA into INITIAL_BLDG_VALUE.
  • If the _V2 column is used, cumulate also the value from column_V2into INITIAL_BLDG_VALUE, independently of the MATHS.

 

Step 16 – Compute the Effective Rate

The effective rate is calculated based on the building value divided by the area.

  • If SQUARE_ROOT = “yes” then
    • MA_BUILDINGS.effective_rate = INITIAL_BLDG_VALUE / Square root of (MA_BUILDINGS.total_effective)
  • Else
    • MA_BUILDINGS.effective_rate = INITIAL_BLDG_VALUE / MA_BUILDINGS.total_effective

Format the result to 2 decimal positions.

Step 17 – Compute RCN (Replacement Cost New)

The RCN value is the total value prior to depreciation.

  • If MA_BUILDINGS.nb_units > 1 then
    • MA_BUILDING.TOTAL_RCN = INITIAL_BLDG_VALUE * MA_BUILDINGS.nb_units
  • Else
    • MA_BUILDING.TOTAL_RCN = INITIAL_BLDG_VALUE.

Format the result to 0 decimal positions.

Step 18 – Get Depreciation

The goal of this step is to find the depreciation table to be used in step 19.

Scan the records of MA_TABLE for all depreciation types of structural elements.
Use the same logic as in STEP4 to select the MA_TABLES records.
The processing is specific to each Category MA_TABLES.setab_rd_code:

Depreciation (MA_TABLES.setab_rd_code = “d”)
Standard

  • DEPR_TABLE = MA_PARM_SETAB.DEPR_TABLE if not null and not set by type ‘e’.
  • MAX_ DEPR_PCT = MA_PARM_SETAB.MAX_ DEPR_PCT if not null.

Depreciation Override

  • If Depreciation Override (MA_TABLES.setab_rd_code = “o”), then:
    • MA_BUILDINGS.total_depr_pct = column_VA.
    • MA_BUILDINGS.total_RCNLD = MA_BUILDINGS.total_RCN * (100 -MA_BUILDINGS.total_depr_pct) / 100.
    • NOTE: There should be only one record with this Category, otherwise only the first value will used.

Format the result to 0 decimal positions.

    • Exit to step 21

Depreciation Table Override

  • If Depreciation Table Override (MA_TABLES.setab_rd_code = “e”), then
    • DEPR_TABLE = MA_PARM_SETAB.DEPR_TABLE if not null and not set by type ‘e’.

 

Step 19 – Compute Base Depreciation Percentage

The goal of this step is to compute the base depreciation percentage

We determine the Appraisal base year APPR_BASE (registry DEPR_BASE_YEAR) using the current MA_TABLE.YEAR_ID

  • MA_PARM_DEPR.TABLE_NAME = DEPR_TABLE
  • We evaluate the MA_PARM_DEPR.NUMBER_OF_YEARS = FORMAT (APPR_BASE – MA_BUILDINGS.EYB to ‘000’).
    • If negative we use 0. If MA_BUILDINGS.EYB is NULL we use MA_BUILDINGS.YEAR_BUILT.
  • We evaluate the expression MA_PARM_DEPR.EXPRESSION as DEPR_PCT

 

Step 20 – Adjust Depreciation

The goal of this step is to apply the depreciation adjustment,

Scan the records of MA_TABLE for the depreciation types ‘d’ of structural elements.
Use the same logic as in STEP4 to select the MA_TABLES records.
Depreciation (MA_TABLES.setab_rd_code = “d”)

  • If Non-Cumulative (MA_TABLES.no_cumulative = “-1”) keep the (column_VA) into an array called DEPR_ARRAY, to be applied later in this step.
    • NOTE: When the non-cumulative column is set, then PCT_AMT = ‘p’ and MATHS = ‘x’ (set by GNA), so we don’t need to check these values.
  • Otherwise
  • If MATHS = ‘x’ (Multiplier)
    • if the PCT_AMT = ‘a’ (Amount), multiply with the value: depr_pct = depr_pct * column_VA
    • if the PCT_AMT = ‘p’ (Percentage), multiply with the value and divide by 100: depr_pct = depr_pct * column_VA / 100
  • If MATHS = ‘+’ (Plus) OR ‘-’ (Minus). Add OR subtract the value from column_VA:
    • if the PCT_AMT = ‘a’ (Amount), add/subtract to the value:depr_pct = depr_pct +/- column_VA
    • if the PCT_AMT = ‘p’ (Percentage), add/subtract to the value and divide by 100: depr_pct = depr_pct +/- (DEPR_PCT * column_VA / 100)

Once all code processed compute the non-cumulative depreciations

NON_DEPR_AMOUNT = MA_BUILDINGS.total_RCN * (100 – depr_pct) / 100.

For each element of the DEPR_ARRAY

  • NON_DEPR_AMOUNT = NON_DEPR_AMOUNT – (NON_DEPR_AMOUNT * DEPR_ARRAY(x) / 100)

MA_BUILDINGS.total_depr_pct = 100 – (NON_DEPR_AMOUNT * 100 / MA_BUILDINGS.total_RCN) formatted to 2 decimal positions.
MA_BUILDINGS.total_RCNLD = NON_DEPR_AMOUNT formatted to 0 decimals.
MA_ BUILDINGS.TOTAL_VALUE = NON_DEPR_AMOUNT formatted to 0 decimals.

Step 21 – Compute Site Adjustment

Compute Site Adjustment MA_BUILDINGS.SITE_ADJ_TOTAL
See the site adjustment computation specs document. We will have to decide whether or not we call the site object before completing this step.

Site adjustment is based on the value of MA_BUILDINGS.SITE_NO and should be skipped if NULL (Should not occur as site is mandatory in 6.1)
The total site adjustment cannot produce a negative value if Allow_Negative_Value=False.

The adjustment (MA_BUILDINGS.SITE_ADJ_TOTAL) is calculated as (MA_BUILDINGS.total_RCNLD * MA_SITE.ADJ_BLDG_PERCENT / 100) + MA_SITE.ADJ_BLDG_AMOUNT.

The site adjustment is added to the MA_ BUILDINGS.TOTAL_VALUE.

Step 22 – Compute Neighborhood Adjustment

Compute Neighborhood Adjustment in MA_ BUILDINGS.NBHD_ADJ_TOTAL.
Property Type
The Neighborhood adjustment (MA_PARM_NBHD) is based on the property type (see the section on property type at the beginning of this document).
If NULL and PROPERTY_TYPE_FROM_PC_LEGAL = “yes” then we define the property type as PC_LEGAL_INFO.PROPERTY_TYPE.
IF no record found for a given property type then we search the MA_PARM_NBHD table with a blank property type (15 spaces).
Adjustment

  • The adjustment (MA_BUILDINGS.NBHD_ADJ_TOTAL) is calculated as (MA_BUILDINGS.TOTAL_VALUE * evaluated expression MA_PARM_NBHD.BLDG_EXPRESSION / 100)
  • The nbhd adjustment is added to the MA_ BUILDINGS.TOTAL_VALUE. This value cannot produce a negative value if Allow_Negative_Value=False.

 

Step 23 – Compute Global Adjustment

The goal of this step is to apply a global adjustment. This is an adjustment that is applied after the depreciation is calculated.

Scan the records of MA_TABLE for the global adjustments types ‘g’ of structural elements
Use the same logic as in STEP4 to select the MA_TABLES records.

Read all Global adjustments (MA_TABLES.setab_rd_code = “g”) and for each record:

  • Note: The type ‘g’ only support PCT_AMT = ‘p’ and MATHS = ‘x’ (set by GNA), so we don’t need to check these values.

If no records are found then continue to step 24.

Once all records ‘g’ are read:

  • MA_BUILDINGS.TOTAL_VALUE = MAF_VALUE

 

Step 24 – Compute Final Adjustment

The goal of this step is to calculate the final adjustment

The final adjustment is calculated only if MA_BUILDINGS.FINAL_ADJ_PERCENT is not NULL.

    • Note: A value of zero reset both the final_adj and final_adj_percent to NULL

 

  • MA_BUILDINGS.FINAL_ADJ = MA_BUILDINGS.TOTAL_VALUE * MA_BUILDINGS.FINAL_ADJ_PERCENT / 100

 

  • MA_BUILDINGS.TOTAL_VALUE = MA_BUILDINGS.TOTAL_VALUE + MA_BUILDINGS.FINAL_ADJ.

 

Step 25 – Compute the Final Rounded Value

The goal of this step is to compute the final rounded value.

  • MA_BUILDINGS.TOTAL_VALUE is rounded based on the MA_PARM_MAROUND information (code = ‘bldg’).

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.

Step 26 – Set the Modification Stamp

The goal of this step is to identify that the building value has been computed.

  • MA_BUILDINGS.MODIF_STAMP = MA_MODIF_STAMP.BLDG_STAMP if not null, otherwise we use the current date/time.

 

 

101-ma-compute-Bldg

 

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 Building Drawing Apex

CAMA Building Drawing Apex

Overview

The Building Drawing Apex form is used for creating and displaying drawings of the areas within the selected building. It calculates and displays the area and perimeter of the structural elements, by element type. It provides totals for the building,

Prerequisite Forms

Before creating a Building Drawing, you need a Buildings record.

Accessing the Building Drawing Form

To access the Drawing form:

  1. Open a Profile with Mass Appraisal Drawings.
  2. Select the Mass Appraisal Drawing form in the Forms Explorer.
  3. Perform a search and load the property to the form.

The Building Drawing form has two dividers: Drawing displaying the drawing created in the Apex application and the Building Area showing the calculated areas and other building drawing dimensions in grid format.

Building Drawing Icons

Browsing Building Drawing Records

If multiple building drawing records exist for the property, use the right and left navigational arrows to scroll to a specific record.

Saving the Building Drawing Record

Click the Save icon to save a new record or any modifications to an existing one.

Open Apex

Click the Open Apex icon to open the Apex application and create or update a building drawing.
Double-clicking in any white area within the building drawing opens the Apex application as well.

Refresh

Click the Refresh icon to refresh the drawing in the Building Drawing form.
The new and delete icons do not exist on the Building Drawing form. Drawings are created and deleted from the Buildings form.

The Drawing function allow the user to view the building drawing of the selected building. The user can launch Apex to edit the drawing. If the user wants to keep the changes, he must save in govern after the changes in Apex. The areas will be recalculated and updated in the two area tables.
Roll forward will be made, but the drawing and the areas we always replaced.

See Also

Product Knowledge 3rd party APEX (303)

R&D Employees

 

 

101-ma-frm-005

 

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

101-ma-bp-001

Import APEX Sketch

Overview

 

What’s New

 

Technical Information

 

 

101-ma-bp-001

 

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