Metrics
| Metric | Value |
|---|---|
| TOTAL_NUMBER_OF_FILES | 104 |
| NUMBER_OF_FILES_MAIN | 31 |
| LINES_OF_CODE_MAIN | 2,435 |
| NUMBER_OF_FILES_MAIN_EXT_SCSS | 14 |
| LINES_OF_CODE_MAIN_EXT_SCSS | 1,223 |
| NUMBER_OF_FILES_MAIN_EXT_JS | 11 |
| LINES_OF_CODE_MAIN_EXT_JS | 907 |
| NUMBER_OF_FILES_MAIN_EXT_HTML | 5 |
| LINES_OF_CODE_MAIN_EXT_HTML | 236 |
| NUMBER_OF_FILES_MAIN_EXT_SASS | 1 |
| LINES_OF_CODE_MAIN_EXT_SASS | 69 |
| NUMBER_OF_FILES_TEST | 0 |
| LINES_OF_CODE_TEST | 0 |
| TEST_VS_MAIN_LINES_OF_CODE_PERCENTAGE | 0 |
| NUMBER_OF_FILES_GENERATED | 0 |
| LINES_OF_CODE_GENERATED | 0 |
| NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT | 3 |
| LINES_OF_CODE_BUILD_AND_DEPLOYMENT | 41 |
| NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_BABELRC | 1 |
| LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_BABELRC | 34 |
| NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_GITIGNORE | 2 |
| LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_GITIGNORE | 7 |
| NUMBER_OF_FILES_OTHER | 9 |
| LINES_OF_CODE_OTHER | 239 |
| NUMBER_OF_FILES_OTHER_EXT_MD | 1 |
| LINES_OF_CODE_OTHER_EXT_MD | 126 |
| NUMBER_OF_FILES_OTHER_EXT_JSON | 4 |
| LINES_OF_CODE_OTHER_EXT_JSON | 109 |
| NUMBER_OF_FILES_OTHER_EXT_SVG | 4 |
| LINES_OF_CODE_OTHER_EXT_SVG | 4 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_HARNESS | 1 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_HARNESS | 102 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_HARNESS_EXT_HTML | 1 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_HARNESS_EXT_HTML | 102 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT | 1 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT | 263 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT_EXT_JS | 1 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT_EXT_JS | 263 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SRC | 29 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_SRC | 2,070 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SRC_EXT_SCSS | 14 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_SRC_EXT_SCSS | 1,223 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SRC_EXT_JS | 10 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_SRC_EXT_JS | 644 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SRC_EXT_HTML | 4 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_SRC_EXT_HTML | 134 |
| NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SRC_EXT_SASS | 1 |
| LINES_OF_CODE_DECOMPOSITION_PRIMARY_SRC_EXT_SASS | 69 |
| NUMBER_OF_DEPENDENCY_LINKS_DECOMPOSITION_PRIMARY | 0 |
| NUMBER_OF_DEPENDENCIES_DECOMPOSITION_PRIMARY | 0 |
| NUMBER_OF_PLACES_WITH_CYCLIC_DEPENDENCIES_DECOMPOSITION_PRIMARY | 0 |
| NUMBER_OF_FILES_CONCERN_GENERAL_TODOS | 1 |
| LINES_OF_CODE_CONCERN_GENERAL_TODOS | 263 |
| NUMBER_OF_FILES_CONCERN_GENERAL_TODOS_EXT_JS | 1 |
| LINES_OF_CODE_CONCERN_GENERAL_TODOS_EXT_JS | 263 |
| NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED | 30 |
| LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED | 2,172 |
| NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_SCSS | 14 |
| LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_SCSS | 1,223 |
| NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS | 10 |
| LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS | 644 |
| NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_HTML | 5 |
| LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_HTML | 236 |
| NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_SASS | 1 |
| LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_SASS | 69 |
| NEGLIGIBLE_RISK_FILE_SIZE_COUNT | 23 |
| LOW_RISK_FILE_SIZE_COUNT | 5 |
| MEDIUM_RISK_FILE_SIZE_COUNT | 3 |
| HIGH_RISK_FILE_SIZE_COUNT | 0 |
| VERY_HIGH_RISK_FILE_SIZE_COUNT | 0 |
| NEGLIGIBLE_RISK_FILE_SIZE_LOC | 921 |
| LOW_RISK_FILE_SIZE_LOC | 607 |
| MEDIUM_RISK_FILE_SIZE_LOC | 907 |
| HIGH_RISK_FILE_SIZE_LOC | 0 |
| VERY_HIGH_RISK_FILE_SIZE_LOC | 0 |
| NUMBER_OF_UNITS | 37 |
| LINES_OF_CODE_IN_UNITS | 506 |
| LINES_OF_CODE_OUTSIDE_UNITS | 1,929 |
| UNIT_SIZE_NEGLIGIBLE_RISK_LOC | 110 |
| UNIT_SIZE_NEGLIGIBLE_RISK_PERCENTAGE | 21.74 |
| UNIT_SIZE_NEGLIGIBLE_RISK_COUNT | 21 |
| UNIT_SIZE_LOW_RISK_LOC | 133 |
| UNIT_SIZE_LOW_RISK_PERCENTAGE | 26.28 |
| UNIT_SIZE_LOW_RISK_COUNT | 8 |
| UNIT_SIZE_MEDIUM_RISK_LOC | 263 |
| UNIT_SIZE_MEDIUM_RISK_PERCENTAGE | 51.98 |
| UNIT_SIZE_MEDIUM_RISK_COUNT | 8 |
| UNIT_SIZE_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_VERY_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_VERY_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_VERY_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_COMPONENT_ROOT_NEGLIGIBLE_RISK_LOC | 25 |
| UNIT_SIZE_COMPONENT_ROOT_NEGLIGIBLE_RISK_PERCENTAGE | 34.72 |
| UNIT_SIZE_COMPONENT_ROOT_NEGLIGIBLE_RISK_COUNT | 4 |
| UNIT_SIZE_COMPONENT_ROOT_LOW_RISK_LOC | 13 |
| UNIT_SIZE_COMPONENT_ROOT_LOW_RISK_PERCENTAGE | 18.06 |
| UNIT_SIZE_COMPONENT_ROOT_LOW_RISK_COUNT | 1 |
| UNIT_SIZE_COMPONENT_ROOT_MEDIUM_RISK_LOC | 34 |
| UNIT_SIZE_COMPONENT_ROOT_MEDIUM_RISK_PERCENTAGE | 47.22 |
| UNIT_SIZE_COMPONENT_ROOT_MEDIUM_RISK_COUNT | 1 |
| UNIT_SIZE_COMPONENT_ROOT_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_COMPONENT_ROOT_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_COMPONENT_ROOT_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_COMPONENT_ROOT_VERY_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_COMPONENT_ROOT_VERY_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_COMPONENT_ROOT_VERY_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_COMPONENT_SRC_NEGLIGIBLE_RISK_LOC | 85 |
| UNIT_SIZE_COMPONENT_SRC_NEGLIGIBLE_RISK_PERCENTAGE | 19.59 |
| UNIT_SIZE_COMPONENT_SRC_NEGLIGIBLE_RISK_COUNT | 17 |
| UNIT_SIZE_COMPONENT_SRC_LOW_RISK_LOC | 120 |
| UNIT_SIZE_COMPONENT_SRC_LOW_RISK_PERCENTAGE | 27.65 |
| UNIT_SIZE_COMPONENT_SRC_LOW_RISK_COUNT | 7 |
| UNIT_SIZE_COMPONENT_SRC_MEDIUM_RISK_LOC | 229 |
| UNIT_SIZE_COMPONENT_SRC_MEDIUM_RISK_PERCENTAGE | 52.76 |
| UNIT_SIZE_COMPONENT_SRC_MEDIUM_RISK_COUNT | 7 |
| UNIT_SIZE_COMPONENT_SRC_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_COMPONENT_SRC_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_COMPONENT_SRC_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_COMPONENT_SRC_VERY_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_COMPONENT_SRC_VERY_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_COMPONENT_SRC_VERY_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_LOC | 110 |
| UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_PERCENTAGE | 21.74 |
| UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_COUNT | 21 |
| UNIT_SIZE_EXTENSION_JS_LOW_RISK_LOC | 133 |
| UNIT_SIZE_EXTENSION_JS_LOW_RISK_PERCENTAGE | 26.28 |
| UNIT_SIZE_EXTENSION_JS_LOW_RISK_COUNT | 8 |
| UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_LOC | 263 |
| UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_PERCENTAGE | 51.98 |
| UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_COUNT | 8 |
| UNIT_SIZE_EXTENSION_JS_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_EXTENSION_JS_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_EXTENSION_JS_HIGH_RISK_COUNT | 0 |
| UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_LOC | 0 |
| UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_PERCENTAGE | 0 |
| UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_LOC | 385 |
| CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_PERCENTAGE | 76.09 |
| CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_COUNT | 33 |
| CONDITIONAL_COMPLEXITY_LOW_RISK_LOC | 121 |
| CONDITIONAL_COMPLEXITY_LOW_RISK_PERCENTAGE | 23.91 |
| CONDITIONAL_COMPLEXITY_LOW_RISK_COUNT | 4 |
| CONDITIONAL_COMPLEXITY_MEDIUM_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_MEDIUM_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_MEDIUM_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_NEGLIGIBLE_RISK_LOC | 72 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_NEGLIGIBLE_RISK_PERCENTAGE | 100 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_NEGLIGIBLE_RISK_COUNT | 6 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_LOW_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_LOW_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_LOW_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_MEDIUM_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_MEDIUM_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_MEDIUM_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_VERY_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_VERY_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_ROOT_VERY_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_NEGLIGIBLE_RISK_LOC | 313 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_NEGLIGIBLE_RISK_PERCENTAGE | 72.12 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_NEGLIGIBLE_RISK_COUNT | 27 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_LOW_RISK_LOC | 121 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_LOW_RISK_PERCENTAGE | 27.88 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_LOW_RISK_COUNT | 4 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_MEDIUM_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_MEDIUM_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_MEDIUM_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_VERY_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_VERY_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_SRC_VERY_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_LOC | 385 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_PERCENTAGE | 76.09 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_COUNT | 33 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_LOC | 121 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_PERCENTAGE | 23.91 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_COUNT | 4 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_COUNT | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_LOC | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_PERCENTAGE | 0 |
| CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_COUNT | 0 |
| NEGLIGIBLE_RISK_FILE_COMPLEXITY_COUNT | 9 |
| NEGLIGIBLE_RISK_FILE_COMPLEXITY_LOC | 595 |
| LOW_RISK_FILE_COMPLEXITY_COUNT | 1 |
| LOW_RISK_FILE_COMPLEXITY_LOC | 230 |
| MEDIUM_RISK_FILE_COMPLEXITY_COUNT | 0 |
| MEDIUM_RISK_FILE_COMPLEXITY_LOC | 0 |
| HIGH_RISK_FILE_COMPLEXITY_COUNT | 0 |
| HIGH_RISK_FILE_COMPLEXITY_LOC | 0 |
| VERY_HIGH_RISK_FILE_COMPLEXITY_COUNT | 0 |
| VERY_HIGH_RISK_FILE_COMPLEXITY_LOC | 0 |
| FILE_CHANGE_HISTORY_TOTAL_AGE_DAYS | 2,568 |
| FILE_CHANGE_HISTORY_ACTIVE_DAYS | 10 |
| FILE_CHANGE_HISTORY_WEEKS | 6 |
| FILE_CHANGE_HISTORY_ESTIMATED_WORKING_DAYS | 30 |
| FILE_AGE_NEGLIGIBLE_RISK_COUNT | 0 |
| FILE_AGE_LOW_RISK_COUNT | 0 |
| FILE_AGE_MEDIUM_RISK_COUNT | 0 |
| FILE_AGE_HIGH_RISK_COUNT | 0 |
| FILE_AGE_VERY_HIGH_RISK_COUNT | 10 |
| FILE_AGE_NEGLIGIBLE_RISK_LOC | 0 |
| FILE_AGE_LOW_RISK_LOC | 0 |
| FILE_AGE_MEDIUM_RISK_LOC | 0 |
| FILE_AGE_HIGH_RISK_LOC | 0 |
| FILE_AGE_VERY_HIGH_RISK_LOC | 1,150 |
| NUMBER_OF_CONTRIBUTORS | 2 |
| DUPLICATION_NUMBER_OF_DUPLICATES | 3 |
| DUPLICATION_NUMBER_OF_FILES_WITH_DUPLICATES | 2 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES | 46 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES | 2,238 |
| DUPLICATION_PERCENTAGE | 2.06 |
| UNIT_DUPLICATES_COUNT | 0 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_SRC | 12 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_SRC | 1,928 |
| DUPLICATION_PERCENTAGE_PRIMARY_SRC | 0.62 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ROOT | 34 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ROOT | 222 |
| DUPLICATION_PERCENTAGE_PRIMARY_ROOT | 15.32 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_HARNESS | 0 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_HARNESS | 88 |
| DUPLICATION_PERCENTAGE_PRIMARY_HARNESS | 0 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES_SCSS | 12 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES_SCSS | 1,223 |
| DUPLICATION_PERCENTAGE_SCSS | 0.98 |
| DUPLICATION_NUMBER_OF_DUPLICATED_LINES_JS | 34 |
| DUPLICATION_NUMBER_OF_CLEANED_LINES_JS | 762 |
| DUPLICATION_PERCENTAGE_JS | 4.46 |
| MAINTAINABILITY_SCORE_HUMAN | 6.5 |
| MAINTAINABILITY_SCORE_AI | 5.7 |
| TOTAL_ANALYSIS_TIME_IN_MILLIS | 54 |
About This Analysis
- Metrics are all numeric values measured by Sokrates.
- You can use these metrics to define goals and controls.