diff --git a/.eslintrc b/.eslintrc index c47ef827..5969726f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,196 +1,80 @@ { + "root": true, "extends": [ - "airbnb", - "prettier", - "plugin:prettier/recommended", - "plugin:react/recommended" + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime" ], "plugins": [ - "prettier", "react" ], - "parser": "@babel/eslint-parser", - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true + "settings": { + "react": { + "version": "detect" } }, - "overrides": [ - { - "files": ["*.ts", "*.tsx"], - "extends": [ - "plugin:@typescript-eslint/recommended" - ], - "plugins": [ - "@typescript-eslint" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "./tsconfig.json", - "tsconfigRootDir": "./" - } - } - ], + "parser": "@babel/eslint-parser", "env": { - "browser": true, "es6": true, + "browser": true, "node": true, - "jest": true - }, - "settings": { - "import/resolver": { - "node": { - "moduleDirectory": [ - "src", - "node_modules" - ], - "extensions": [ - ".js", - ".jsx", - ".ts", - ".tsx" - ] - } - } + "jquery": true, + "mocha": true }, "rules": { - "prettier/prettier": ["error",{ - "endOfLine": "auto"} - ], - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "camelcase": "off", - "comma-dangle": [ - "error", - "never" - ], - "default-case": "off", - "function-paren-newline": [ - "error", - "consistent" - ], - "import/extensions": [ - "error", - "ignorePackages", - { - "js": "never", - "jsx": "never", - "ts": "never", - "tsx": "never" - } - ], - "import/no-extraneous-dependencies": 0, - "import/prefer-default-export": "off", - "jsx-a11y/control-has-associated-label": "off", - "max-len": [ - "warn", - { - "code": 120, - "tabWidth": 4, - "ignoreComments": true, - "ignoreTrailingComments": true, - "ignoreUrls": true, - "ignoreStrings": true, - "ignoreTemplateLiterals": true, - "ignoreRegExpLiterals": true - } - ], - "no-console": [ - "error", - { - "allow": [ - "error", - "warn" - ] - } - ], - "no-mixed-operators": "error", - "no-multi-spaces": [ - "error", - { - "ignoreEOLComments": true - } - ], - "no-param-reassign": [ - "error", - { - "props": false - } - ], - "no-underscore-dangle": "off", - "no-unused-expressions": [ - "error", - { - "allowShortCircuit": true - } - ], - "no-use-before-define": "off", - "object-curly-spacing": [ - "error", - "always" - ], - "operator-linebreak": [ - "warn", - "after" - ], - "prefer-destructuring": "off", - "quotes": [ - "error", - "single", - { - "avoidEscape": true - } - ], - "quote-props": [ - "error", - "consistent-as-needed", - { - "keywords": false, - "unnecessary": true, - "numbers": false - } - ], - "semi": [ - "error", - "always" - ], - "react/destructuring-assignment": "off", - "react/jsx-curly-newline": "off", - "react/jsx-filename-extension": [ - "error", - { - "extensions": [ - ".jsx", - ".tsx" - ] - } - ], - "react/jsx-indent": [ - "error", - 4 - ], - "react/jsx-indent-props": [ - "error", - 4 - ], - "react/jsx-one-expression-per-line": "off", - "react/jsx-props-no-spreading": "off", - "react/jsx-tag-spacing": "error", - "react/jsx-wrap-multilines": "off", - "react/jsx-uses-vars": 2, - "react/jsx-uses-react": 2, - "react/require-default-props": "off", - "react/static-property-placement": [ - "warn", - "static public field" - ], - "@typescript-eslint/explicit-function-return-type": "off" + "no-mixed-spaces-and-tabs": ["warn", "smart-tabs"], + "eqeqeq": ["warn", "smart"], + "no-eval": "warn", + "quotes": ["warn", "double"], + "indent": ["warn", "tab"], + "no-console": 1, + "no-debugger": 1, + "no-var": "error", + "semi": ["warn", "always"], + "no-trailing-spaces": 0, + "eol-last": "warn", + "no-underscore-dangle": 0, + "no-alert": 0, + "no-lone-blocks": 0, + "no-unused-vars": "warn", + "prefer-template": "warn", + "jsx-quotes": 1, + "prefer-const": ["warn", { + "destructuring": "any", + "ignoreReadBeforeAssign": false + }], + "react/display-name": [ 1, {"ignoreTranspilerName": false }], + "react/forbid-prop-types": [1, {"forbid": ["any"]}], + "react/jsx-boolean-value": 0, + "react/jsx-closing-bracket-location": 0, + "react/jsx-curly-spacing": 1, + "react/jsx-indent-props": 0, + "react/jsx-key": 1, + "react/jsx-max-props-per-line": 0, + "react/jsx-no-bind": 0, + "react/jsx-no-duplicate-props": 1, + "react/jsx-no-literals": 0, + "react/jsx-no-undef": 1, + "react/jsx-pascal-case": 1, + "react/jsx-sort-prop-types": 0, + "react/jsx-sort-props": 0, + "react/jsx-uses-react": 0, + "react/jsx-uses-vars": 1, + "react/no-danger": 1, + "react/no-did-mount-set-state": 1, + "react/no-did-update-set-state": 1, + "react/no-direct-mutation-state": 1, + "react/no-multi-comp": 1, + "react/no-set-state": 0, + "react/no-unknown-property": 1, + "react/prefer-es6-class": 1, + "react/prop-types": 0, + "react/react-in-jsx-scope": 0, + "react/self-closing-comp": 1, + "react/sort-comp": 1, + "react/jsx-wrap-multilines": 1 + }, + "globals": { } } diff --git a/.gitignore b/.gitignore index d3357f80..8648ef13 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ build/ coverage/ node_modules/ +# IDEA: +.idea/ +**.iml + .env -*.log +.huskyrc *.DS_Store diff --git a/CHANGELOG.md b/CHANGELOG.md index 908218b9..2f76078a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [0.3.0] - 2023-05-03 + +### Added +- Popup alert for unfinished programs [#58](https://github.com/policy-design-lab/pdl-frontend/issues/58) +- Navigation from PDL title and PDL logo [#51](https://github.com/policy-design-lab/pdl-frontend/issues/51) +- Icon for left menu [#62](https://github.com/policy-design-lab/pdl-frontend/issues/62) +- Background color for selected columns in table [#68](https://github.com/policy-design-lab/pdl-frontend/issues/68) + +### Changed +- Landing page uses the api endpoint for AllProgram Maps [#20](https://github.com/policy-design-lab/pdl-frontend/issues/20)- Table sorting icon [#55](https://github.com/policy-design-lab/pdl-frontend/issues/55) +- Landing page text display for each different tab selection [#53](https://github.com/policy-design-lab/pdl-frontend/issues/53) +- The left menu margin and background color [#61](https://github.com/policy-design-lab/pdl-frontend/issues/61) +- Number style for semi-donut chart [#64](https://github.com/policy-design-lab/pdl-frontend/issues/64) +- Popup menu styles [#66](https://github.com/policy-design-lab/pdl-frontend/issues/66) +- Table styles [#76](https://github.com/policy-design-lab/pdl-frontend/issues/76) +- Updated EQIP JSON data files. [#84](https://github.com/policy-design-lab/pdl-frontend/issues/84) +- Map legends and EQIP popper text [#91](https://github.com/policy-design-lab/pdl-frontend/issues/91) +- color schemes back and hid crop insurance tab for release 0.3.0 [#105](https://github.com/policy-design-lab/pdl-frontend/issues/105) + +### Fixed +- Table sorting functions [#49](https://github.com/policy-design-lab/pdl-frontend/issues/49) +- Dynamic api uri creation [#78](https://github.com/policy-design-lab/pdl-frontend/issues/78) +- Tooltip styles for semi donut chart [#80](https://github.com/policy-design-lab/pdl-frontend/issues/80) +- Number format shown on map when hovering [#82](https://github.com/policy-design-lab/pdl-frontend/issues/82) +- Errors in the EQIP JSON data files. [#87](https://github.com/policy-design-lab/pdl-frontend/issues/87) + ## [0.2.0] - 2023-03-03 ### Added @@ -35,3 +61,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Landing page details(colors, etc) based on figma design [#9](https://github.com/policy-design-lab/pdl-frontend/issues/9) - Map data json [#12](https://github.com/policy-design-lab/pdl-frontend/issues/12) - Final landing page changes for initial milestone [#15](https://github.com/policy-design-lab/pdl-frontend/issues/15) + +[unreleased]: https://github.com/policy-design-lab/pdl-frontend/compare/0.3.0...HEAD +[0.3.0]: https://github.com/policy-design-lab/pdl-frontend/tag/0.3.0 diff --git a/package.json b/package.json index 27047e55..c6ab4af9 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "policy-design-lab", - "version": "0.2.0", + "version": "0.3.0", "description": "the front end of policy design lab", "repository": "https://github.com/policy-design-lab/pdl-frontend", "main": "src/app.tsx", "scripts": { "start": "webpack serve --config webpack.dev.js", "build": "webpack --config ./webpack.prod.js", - "test": "jest --coverage", + "test": "jest --coverage --passWithNoTests", "test:watch": "npm run test -- --watch", "lint": "eslint src", "lint:fix": "npm run lint -- --fix", diff --git a/src/app.config.js b/src/app.config.js new file mode 100644 index 00000000..148e7e3e --- /dev/null +++ b/src/app.config.js @@ -0,0 +1,23 @@ +const baseConfig = { + // put any unchanging configuration information in here +}; + +const deployConfig = { + apiUrl: "/pdl", + ...baseConfig +}; + +const localConfig = { + apiUrl: "http://localhost:5000/pdl", + ...baseConfig +}; + +// eslint-disable-next-line no-unused-vars +function getConfig() { + if (process.env.APP_ENV === "local") { + return localConfig; + } + return deployConfig; +} + +export const config = getConfig(); diff --git a/src/app.tsx b/src/app.tsx index 0580d31e..5254ee50 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,10 +1,10 @@ -import React from 'react'; -import Main from './main'; +import React from "react"; +import Main from "./main"; export default function App(): JSX.Element { - return ( -
-
-
- ); + return ( +
+
+
+ ); } diff --git a/src/components/AllProgramMap.tsx b/src/components/AllProgramMap.tsx index 75ad8d97..055bfe0a 100644 --- a/src/components/AllProgramMap.tsx +++ b/src/components/AllProgramMap.tsx @@ -1,192 +1,261 @@ -import React, { useState } from 'react'; -import { geoCentroid } from 'd3-geo'; -import { ComposableMap, Geographies, Geography, Marker, Annotation } from 'react-simple-maps'; -import ReactTooltip from 'react-tooltip'; -import { scaleQuantile } from 'd3-scale'; -import Divider from '@mui/material/Divider'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; +import React, { useEffect, useState } from "react"; +import { geoCentroid } from "d3-geo"; +import { ComposableMap, Geographies, Geography, Marker, Annotation } from "react-simple-maps"; +import ReactTooltip from "react-tooltip"; +import { scaleQuantile, scaleQuantize } from "d3-scale"; +import Divider from "@mui/material/Divider"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import { config } from "../app.config"; -import PropTypes from 'prop-types'; -import allStates from '../data/allstates.json'; -import allPrograms from '../data/allPrograms.json'; -import stateCodes from '../data/stateCodes.json'; -import '../styles/map.css'; +import PropTypes from "prop-types"; +import "../styles/map.css"; +import summary from "../data/summary.json"; +import { getJsonDataFromUrl} from "../utils/apiutil"; +import {convertAllState} from "../utils/apiutil"; +import HorizontalStackedBar from "./HorizontalStackedBar"; -const geoUrl = 'https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json'; +const geoUrl = "https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json"; const offsets = { - VT: [50, -8], - NH: [34, 2], - MA: [30, -1], - RI: [28, 2], - CT: [35, 10], - NJ: [34, 1], - DE: [33, 0], - MD: [47, 10], - DC: [49, 21] + VT: [50, -8], + NH: [34, 2], + MA: [30, -1], + RI: [28, 2], + CT: [35, 10], + NJ: [34, 1], + DE: [33, 0], + MD: [47, 10], + DC: [49, 21] }; -const MapChart = ({ setTooltipContent }) => { - const colorScale = scaleQuantile() - .domain(allPrograms.map((d) => d['18-22 All Programs Total'])) - .range(['#FFF9D8', '#E1F2C4', '#9FD9BA', '#1B9577', '#005A45']); +const MapChart = (props) => { + const { setTooltipContent, stateCodes, allPrograms, allStates } = props; - return ( -
- - - {({ geographies }) => ( - <> - {geographies.map((geo) => { - const cur = allStates.find((s) => s.val === geo.id); - const records = allPrograms.filter((s) => s.State === cur.id); - let total = 0; - records.forEach((record) => { - total += record['18-22 All Programs Total']; - }); - const hoverContent = ( - - - {stateCodes[cur.id]} - Total Benefit - - $ - {Number(total / 1000000.0).toLocaleString(undefined, { - maximumFractionDigits: 2 - })} - M - - - - - - Payments: -
- {records.map((record) => ( -
- 2018: $ - {Number( - record['2018 All Programs Total'] / 1000000.0 - ).toLocaleString(undefined, { maximumFractionDigits: 2 })} - M -
- 2019: $ - {Number( - record['2019 All Programs Total'] / 1000000.0 - ).toLocaleString(undefined, { maximumFractionDigits: 2 })} - M -
- 2020: $ - {Number( - record['2020 All Programs Total'] / 1000000.0 - ).toLocaleString(undefined, { maximumFractionDigits: 2 })} - M -
- 2021: $ - {Number( - record['2021 All Programs Total'] / 1000000.0 - ).toLocaleString(undefined, { maximumFractionDigits: 2 })} - M -
- 2022: $ - {Number( - record['2022 All Programs Total'] / 1000000.0 - ).toLocaleString(undefined, { maximumFractionDigits: 2 })} - M -
-
+ const minValue = 0; + + const hashmap = new Map([]); + summary.forEach( + (item) => { + const state = item.State; + if(!hashmap.has(state)) { + hashmap.set(state, 0); + } + hashmap.set(state, hashmap.get(state) + item.Amount); + } + ); + + const maxValue = Math.max(...hashmap.values()); + + const colorScale = scaleQuantile() + .domain(allPrograms.map((d) => d["18-22 All Programs Total"])) + .range(["#FFF9D8", "#E1F2C4", "#9FD9BA", "#1B9577", "#005A45"]); + + const label1 = (maxValue-minValue) / 5 * 0 + minValue; + const label2 = (maxValue-minValue) / 5 * 1 + minValue; + const label3 = (maxValue-minValue) / 5 * 2 + minValue; + const label4 = (maxValue-minValue) / 5 * 3 + minValue; + const label5 = (maxValue-minValue) / 5 * 4 + minValue; + + return ( +
+ + + Total Farm Bill Benefits from 2018 - 2022 + } + color1="#FFF9D8" + color2="#E1F2C4" + color3="#9FD9BA" + color4="#1B9577" + color5="#005A45" + label1={"0"} + label2={"20%"} + label3={"40%"} + label4={"60%"} + label5={"80%"} + label6={"100%"} + /> + + {allPrograms.length === 0 ? null : + + + {({ geographies }) => ( + <> + {geographies.map((geo) => { + let records = []; + let total = 0; + const cur = allStates.find((s) => s.val === geo.id); + if (cur !== undefined) { + records = allPrograms.filter((s) => s.State === cur.id); + records.forEach((record) => { + total += record["18-22 All Programs Total"]; + }); + } + const hoverContent = ( + + + {cur?stateCodes[cur.id]:""} + Total Benefit + + $ + {Number(total / 1000000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })} + M + + + + + + Payments: +
+ {records.map((record) => ( +
+ 2018: $ + {Number( + record["2018 All Programs Total"] / 1000000.0 + ).toLocaleString(undefined, { maximumFractionDigits: 2 })} + M +
+ 2019: $ + {Number( + record["2019 All Programs Total"] / 1000000.0 + ).toLocaleString(undefined, { maximumFractionDigits: 2 })} + M +
+ 2020: $ + {Number( + record["2020 All Programs Total"] / 1000000.0 + ).toLocaleString(undefined, { maximumFractionDigits: 2 })} + M +
+ 2021: $ + {Number( + record["2021 All Programs Total"] / 1000000.0 + ).toLocaleString(undefined, { maximumFractionDigits: 2 })} + M +
+ 2022: $ + {Number( + record["2022 All Programs Total"] / 1000000.0 + ).toLocaleString(undefined, { maximumFractionDigits: 2 })} + M +
+
+ ))} +
+
+
+ ); + return ( + { + setTooltipContent(hoverContent); + }} + onMouseLeave={() => { + setTooltipContent(""); + }} + fill={colorScale(total)} + stroke="#FFF" + style={{ + default: { stroke: "#FFFFFF", strokeWidth: 0.75, outline: "none" }, + hover: { + stroke: "#232323", + strokeWidth: 2, + outline: "none" + }, + pressed: { + fill: "#345feb", + outline: "none" + } + }} + /> + ); + })} + {geographies.map((geo) => { + const centroid = geoCentroid(geo); + const cur = allStates.find((s) => s.val === geo.id); + return ( + + {cur && + centroid[0] > -160 && + centroid[0] < -67 && + (Object.keys(offsets).indexOf(cur.id) === -1 ? ( + + + {cur.id} + + + ) : ( + + + {cur.id} + + ))} - - - - ); - return ( - { - setTooltipContent(hoverContent); - }} - onMouseLeave={() => { - setTooltipContent(''); - }} - fill={colorScale(total)} - stroke="#FFF" - style={{ - default: { stroke: '#FFFFFF', strokeWidth: 0.75, outline: 'none' }, - hover: { - stroke: '#232323', - strokeWidth: 2, - outline: 'none' - }, - pressed: { - fill: '#345feb', - outline: 'none' - } - }} - /> - ); - })} - {geographies.map((geo) => { - const centroid = geoCentroid(geo); - const cur = allStates.find((s) => s.val === geo.id); - return ( - - {cur && - centroid[0] > -160 && - centroid[0] < -67 && - (Object.keys(offsets).indexOf(cur.id) === -1 ? ( - - - {cur.id} - - - ) : ( - - - {cur.id} - - - ))} - - ); - })} - - )} -
-
-
- ); + + ); + })} + + )} +
+
+ } +
+ ); }; MapChart.propTypes = { - setTooltipContent: PropTypes.func + setTooltipContent: PropTypes.func }; const AllProgramMap = (): JSX.Element => { - const [content, setContent] = useState(''); - return ( -
- -
- - {content} - -
-
- ); + const [content, setContent] = useState(""); + const [stateCodesData, setStateCodesData] = useState([]); + const [allProgramsData, setAllProgramsData] = useState([]); + const [allStatesData, setAllStatesData] = useState([]); + + useEffect(() => { + const statecode_url = `${config.apiUrl}/statecodes`; + getJsonDataFromUrl(statecode_url).then((response) => { + const converted_json = convertAllState(response); + setStateCodesData(converted_json); + }); + const allprograms_url = `${config.apiUrl}/allprograms`; + getJsonDataFromUrl(allprograms_url).then((response) => { + setAllProgramsData(response); + }); + const allstates_url = `${config.apiUrl}/states`; + getJsonDataFromUrl(allstates_url).then((response) => { + setAllStatesData(response); + }); + }, []); + + return ( +
+ +
+ + {content} + +
+
+ ); }; export default AllProgramMap; diff --git a/src/components/ColorLegend.tsx b/src/components/ColorLegend.tsx index a436031c..a4a58920 100644 --- a/src/components/ColorLegend.tsx +++ b/src/components/ColorLegend.tsx @@ -1,13 +1,13 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; +import * as React from "react"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; export default function ColorLegend({ - color1, - color2, - color3, - color4, - color5 + color1, + color2, + color3, + color4, + color5 }: { color1: string; color2: string; @@ -15,38 +15,38 @@ export default function ColorLegend({ color4: string; color5: string; }): JSX.Element { - return ( -
- - - Quantile: - - 0% - - - 20% - - - 40% - - - 60% - - - 80% - - 100% - - -
- ); + return ( +
+ + + Quantile: + + 0% + + + 20% + + + 40% + + + 60% + + + 80% + + 100% + + +
+ ); } diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 55ee98be..644744fb 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,141 +1,141 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; -import { CardMedia, Grid } from '@mui/material'; -import ncsa from '../images/logos/ncsa logo.png'; -import aces from '../images/logos/aces logo.png'; -import isee from '../images/logos/isee logo.png'; -import igpa from '../images/logos/igpa logo.png'; +import * as React from "react"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import { CardMedia, Grid } from "@mui/material"; +import ncsa from "../images/logos/ncsa logo.png"; +import aces from "../images/logos/aces logo.png"; +import isee from "../images/logos/isee logo.png"; +import igpa from "../images/logos/igpa logo.png"; function ISEELogo() { - return ( -
- -
- ); + return ( +
+ +
+ ); } function ACESLogo() { - return ( -
- -
- ); + return ( +
+ +
+ ); } function IGPALogo() { - return ( -
- -
- ); + return ( +
+ +
+ ); } function NCSALogo() { - return ( -
- -
- ); + return ( +
+ +
+ ); } export default function Footer(): JSX.Element { - return ( - - - - - - - FARM BILL MAP DATA - - + return ( + + + + + + + FARM BILL MAP DATA + + Total Farm Bill Benefits - - + + Conservation Programs (Title II) - - + + Commodities Programs (Title I) - - + + Crop Insurance - - + + Supplemental Nutrition Assistance Program (SNAP) - - - - - RELATED RESOURCES - - + + + + + RELATED RESOURCES + + Senate Committee on Agriculture, Nutrition, and Forestry - - + + House Agriculture Committee - - + + U.S. Department of Agriculture - - + + farmdoc - - - - - ABOUT US - - + + + + + ABOUT US + + Data Resource - - + + PDL Team - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + COPYRIGHT © 2022 UNIVERSITY OF ILLINOIS. ALL RIGHTS RESERVED - - - - + + + + PRIVACY STATEMENT & TERMS OF USE - - - - + + + + IMAGE ATTRIBUTION - - - - - ); + + + + + ); } diff --git a/src/components/HorizontalStackedBar.tsx b/src/components/HorizontalStackedBar.tsx index d2b3f83d..4ff1e5b2 100644 --- a/src/components/HorizontalStackedBar.tsx +++ b/src/components/HorizontalStackedBar.tsx @@ -1,20 +1,20 @@ -import React from 'react'; -import HSBar from 'react-horizontal-stacked-bar-chart'; -import { Box, Typography } from '@mui/material'; +import React from "react"; +import HSBar from "react-horizontal-stacked-bar-chart"; +import { Box, Typography } from "@mui/material"; export default function HorizontalStackedBar({ - title, - color1, - color2, - color3, - color4, - color5, - label1, - label2, - label3, - label4, - label5, - label6 + title, + color1, + color2, + color3, + color4, + color5, + label1, + label2, + label3, + label4, + label5, + label6 }: { title: string; color1: string; @@ -29,43 +29,44 @@ export default function HorizontalStackedBar({ label5: string; label6: string; }): JSX.Element { - return ( - - - - {title} - - - - - - - - ); + return ( + + + + {title} + + + + + + + + ); } diff --git a/src/components/LandingDisplay.tsx b/src/components/LandingDisplay.tsx index 08514a2a..bc73e752 100644 --- a/src/components/LandingDisplay.tsx +++ b/src/components/LandingDisplay.tsx @@ -1,133 +1,259 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import { Button, CardMedia, Grid, Typography } from '@mui/material'; -import Divider from '@mui/material/Divider'; -import ArrowForwardIcon from '@mui/icons-material/ArrowForward'; -import { Link } from 'react-router-dom'; -import gov from '../images/gov.png'; -import teamButton from '../images/buttons/PDL Team Button.png'; -import resourceButton from '../images/buttons/Data Resource Button.png'; -import '../styles/fonts.css'; +import * as React from "react"; +import Box from "@mui/material/Box"; +import { Button, Card, CardActions, CardContent, CardMedia, Dialog, Grid, Typography } from "@mui/material"; +import Divider from "@mui/material/Divider"; +import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; +import { Link } from "react-router-dom"; +import gov from "../images/gov.png"; +import teamButton from "../images/buttons/PDL Team Button.png"; +import resourceButton from "../images/buttons/Data Resource Button.png"; +import "../styles/fonts.css"; +import alert from "../images/alert.png"; -export default function LandingDisplay(): JSX.Element { - return ( - -
- -
- -
- - - - What is Farm Bill? - - - - - Federal agricultural, conservation and food assistance policy is periodically - reauthorized in omnibus legislation commonly known as the Farm Bill, with federal - mandatory outlays exceeding $100 billion annually. The Farm Bill authorizes 4 major - categories of mandatory spending programs: programs: commodities; conservation - assistance; crop insurance; and the Supplemental Nutrition Nutrition Program (SNAP) - which provides food assistance to low income families. The most recent reauthorization - was the Agricultural Improvement Act of 2018 and is scheduled to expire in 2023, - requiring a reauthorization debate in Congress. - - - -
-
- - - - - - - - - Learn more about - - - Policy Design Lab - - - - {/* eslint-disable-next-line max-len */} +export default function LandingDisplay({ programTitle }: { programTitle: string }): JSX.Element { + let boldText = ""; + let bodyText = ""; + let route = ""; + let buttonText = ""; + let button =
; + + const [alertOpen, setAlertOpen] = React.useState(false); + + const handleAlertOpen = () => { + setAlertOpen(true); + }; + + const handleAlertClose = () => { + setAlertOpen(false); + }; + + switch (programTitle) { + case "Title I: Commodities": + boldText = "What are commodity programs in the farm bill?"; + bodyText = + "Title I, Commodities cover price and income support for the farmers who raise widely-produced and traded non-perishable crops, like corn, soybeans, wheat, cotton and rice – as well as dairy and sugar. The title also includes agricultural disaster assistance. The map shows the total benefits paid to farmers from of the commodities programs by state from 2018-2022."; + route = "/"; + buttonText = "Explore Maps of Commodities Programs"; + button = ( + + ); + break; + case "Title II: Conservation": + boldText = "What is Title II, conservation programs?"; + bodyText = + "Title II of the law authorizes the Farm Bill’s conservation programs. The programs in this title programs help agricultural producers and landowners adopt conservation activities on private farm and forest lands. In general, conservation activities are intended to protect and improve water quality and quantity, soil health, wildlife habitat, and air quality. The map shows the total benefit of the conservation program by state from 2018-2022."; + route = "/eqip"; + buttonText = "Explore Maps of Conservation Programs"; + button = ( + + ); + break; + case "Crop Insurance": + boldText = "What is CROP INSURANCE?"; + bodyText = + "Crop Insurance provides farmers with the option to purchase insurance policies on the acres of crops they plant to help manage the risks of farming, including to indemnify against losses in yields, crop or whole farm revenue, crop margins and other risks. The program also offsets the cost of the insurance policies through premium subsidies. In addition, the program provides Administrative and Operating (A&O) subsidies to the private crop insurance companies who provide federal crop insurance to farmers. The map shows the total farmer net benefitbenefit of the crop insurance program by state from 2018-2022."; + route = "/"; + buttonText = "Explore Maps of Crop Insurance"; + button = ( + + ); + break; + case "Supplemental Nutrition Assistance Program (SNAP)": + boldText = "What is Farm Bill?"; + bodyText = + "The Supplemental Nutrition Assistance Program [SNAP] provides financial assistance to low-income families to help cover the cost of food. Benefits can only be used to purchase food products and are provided in electronic format similar to a credit card and known as the Electronic Benefit Transfer (EBT) card. The map shows the total SNAP benefits of the nutrition title by state from 2018-2022."; + route = "/"; + buttonText = "Explore Maps of SNAP"; + button = ( + + ); + break; + case "All Programs": + boldText = "What is Farm Bill?"; + bodyText = + "The map shows the total benefits from the current farm bill by state since its last reauthorization from 2018-2022 for the major mandatory titles and programs.\n" + + "\n" + + "Federal agricultural, conservation and food assistance policy is periodically reauthorized in omnibus legislation commonly known as the Farm Bill. The Farm Bill authorizes four major categories of mandatory spending programs, benefits distributed to those entitled to receive them and without appropriations. These four categories align with titles in the Farm Bill: Title I Commodities; Title II Conservation assistance; Title XI Crop Insurance; and the Supplemental Nutrition Assistance Program (SNAP) in Title IV. The benefits provided by the commodities and conservation programs, as well as crop insurance, are provided to farmers. The benefits in SNAP are for food assistance to low income families. The most recent reauthorization was the Agricultural Improvement Act of 2018 (P.L. 115-334) and is scheduled to expire in 2023, requiring a reauthorization debate in Congress."; + route = "/"; + buttonText = "Explore Maps of Total Farm Bill"; + button = ( + + ); + break; + } + return ( + + + + + + The page is under construction + + + It will be available as soon as possible + + + + + + + + +
+ +
+ {button} +
+ + + + {boldText} + + + + {bodyText} + + +
+
+ + + + + + + + + Learn more about + + + Policy Design Lab + + + + {/* eslint-disable-next-line max-len */} The Policy Design Lab is a collaboration with ACES Office of Research, iSEE, and NCSA, that will develop unique capabilities to translate, apply and integrate research from multiple disciplines to the evaluation of existing federal policy and to the development of federal policy concepts or ideas, beginning with agricultural conservation, sustainability and climate change through the Farm Bill Mapping Initiative. - + - - - - - - - - -
- ); + + + + + + + + + + ); } diff --git a/src/components/LandingPageMap.tsx b/src/components/LandingPageMap.tsx index 32689c03..17d8d70f 100644 --- a/src/components/LandingPageMap.tsx +++ b/src/components/LandingPageMap.tsx @@ -1,250 +1,303 @@ -import React, { useState } from 'react'; -import { geoCentroid } from 'd3-geo'; -import { ComposableMap, Geographies, Geography, Marker, Annotation } from 'react-simple-maps'; -import ReactTooltip from 'react-tooltip'; -import { scaleQuantile, scaleThreshold } from 'd3-scale'; -import Divider from '@mui/material/Divider'; - -import PropTypes from 'prop-types'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; -import allStates from '../data/allstates.json'; -import summary from '../data/summary.json'; -import allPrograms from '../data/allPrograms.json'; -import stateCodes from '../data/stateCodes.json'; -import '../styles/map.css'; - -const geoUrl = 'https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json'; +import React, { useState } from "react"; +import { geoCentroid } from "d3-geo"; +import { ComposableMap, Geographies, Geography, Marker, Annotation } from "react-simple-maps"; +import ReactTooltip from "react-tooltip"; +import { scaleQuantile, scaleQuantize, scaleThreshold } from "d3-scale"; +import Divider from "@mui/material/Divider"; + +import PropTypes from "prop-types"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import allStates from "../data/allstates.json"; +import summary from "../data/summary.json"; +import allPrograms from "../data/allPrograms.json"; +import stateCodes from "../data/stateCodes.json"; +import "../styles/map.css"; +import HorizontalStackedBar from "./HorizontalStackedBar"; + +const geoUrl = "https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json"; const offsets = { - VT: [50, -8], - NH: [34, 2], - MA: [30, -1], - RI: [28, 2], - CT: [35, 10], - NJ: [34, 1], - DE: [33, 0], - MD: [47, 10], - DC: [49, 21] + VT: [50, -8], + NH: [34, 2], + MA: [30, -1], + RI: [28, 2], + CT: [35, 10], + NJ: [34, 1], + DE: [33, 0], + MD: [47, 10], + DC: [49, 21] }; const MapChart = ({ setTooltipContent, title }) => { - let searchKey = ''; - let color1 = ''; - let color2 = ''; - let color3 = ''; - let color4 = ''; - let color5 = ''; - - switch (title) { - case 'Title I: Commodities': - searchKey = 'Title I Total'; - color1 = '#F9F9D3'; - color2 = '#F9D48B'; - color3 = '#F59020'; - color4 = '#D95F0E'; - color5 = '#993404'; - break; - case 'Title II: Conservation': - searchKey = 'Title II Total'; - color1 = '#F0F9E8'; - color2 = '#BAE4BC'; - color3 = '#7BCCC4'; - color4 = '#43A2CA'; - color5 = '#0868AC'; - break; - case 'Crop Insurance': - searchKey = 'Crop Insurance Total'; - color1 = '#A1622F'; - color2 = '#DCC287'; - color3 = '#E3E3E3'; - color4 = '#89CBC1'; - color5 = '#2C8472'; - break; - case 'Supplemental Nutrition Assistance Program (SNAP)': - searchKey = 'SNAP Total'; - color1 = '#F1EEF6'; - color2 = '#CBD9F4'; - color3 = '#74A9CF'; - color4 = '#2B8CBE'; - color5 = '#045A8D'; - break; - } - - let colorScale = null; - - if (title !== 'Crop Insurance') { - colorScale = scaleQuantile() - .domain(allPrograms.map((d) => d[searchKey])) - .range([color1, color2, color3, color4, color5]); - } else { - colorScale = scaleThreshold() - .domain([-500000000, 0, 500000000, 1000000000]) - .range([color1, color2, color3, color4, color5]); - } - - // Get list of unique years - const yearList = summary - .map((item) => item['Fiscal Year']) - .filter((value, index, self) => self.indexOf(value) === index); - - return ( -
- - - {({ geographies }) => ( - <> - {geographies.map((geo) => { - const cur = allStates.find((s) => s.val === geo.id); - const records = summary.filter((s) => s.State === cur.id && s.Title === title); - let total = 0; - let totalAverageMonthlyParticipation = 0; - - records.forEach((record) => { - total += record.Amount; - }); - - if (title === 'Supplemental Nutrition Assistance Program (SNAP)') { - records.forEach((record) => { - totalAverageMonthlyParticipation += record['Average Monthly Participation']; - }); - } - - const hoverContent = ( - - - {stateCodes[cur.id]} - Total Benefit - + let searchKey = ""; + let color1 = ""; + let color2 = ""; + let color3 = ""; + let color4 = ""; + let color5 = ""; + let minValue = 0; + let maxValue = 0; + let legendTitle =
; + + const hashmap = new Map([]); + summary.forEach( + (item) => { + if(item.Title === title){ + const state = item.State; + if(!hashmap.has(state)) { + hashmap.set(state, 0); + } + hashmap.set(state, hashmap.get(state) + item.Amount); + } + } + ); + + maxValue = Math.max(...hashmap.values()); + + switch (title) { + case "Title I: Commodities": + searchKey = "Title I Total"; + color1 = "#F9F9D3"; + color2 = "#F9D48B"; + color3 = "#F59020"; + color4 = "#D95F0E"; + color5 = "#993404"; + legendTitle = ( + Total Commodities Programs (Title I) Benefits from 2018 - 2022 + ); + break; + case "Title II: Conservation": + searchKey = "Title II Total"; + color1 = "#F0F9E8"; + color2 = "#BAE4BC"; + color3 = "#7BCCC4"; + color4 = "#43A2CA"; + color5 = "#0868AC"; + legendTitle = ( + Total Conservation Programs (Title II) Benefits from 2018 - 2022 + ); + break; + case "Crop Insurance": + searchKey = "Crop Insurance Total"; + color1 = "#A1622F"; + color2 = "#DCC287"; + color3 = "#E3E3E3"; + color4 = "#89CBC1"; + color5 = "#2C8472"; + minValue = -1000000000; + legendTitle = (
+ + + Total Net Farmer Benefits from 2018 - 2022 + + + Net Farmer Benefit = Total Indemnities - (Total Premium - Total Premium Subsidy) + +
); + break; + case "Supplemental Nutrition Assistance Program (SNAP)": + searchKey = "SNAP Total"; + color1 = "#F1EEF6"; + color2 = "#CBD9F4"; + color3 = "#74A9CF"; + color4 = "#2B8CBE"; + color5 = "#045A8D"; + legendTitle = ( + Total Supplemental Nutrition Assistance Programs Benefits from 2018 - 2022 + ); + break; + } + + + const colorScale = scaleQuantile() + .domain(allPrograms.map((d) => d[searchKey])) + .range([color1, color2, color3, color4, color5]); + + // Get list of unique years + const yearList = summary + .map((item) => item["Fiscal Year"]) + .filter((value, index, self) => self.indexOf(value) === index); + + const label1 = (maxValue-minValue) / 5 * 0 + minValue; + const label2 = (maxValue-minValue) / 5 * 1 + minValue; + const label3 = (maxValue-minValue) / 5 * 2 + minValue; + const label4 = (maxValue-minValue) / 5 * 3 + minValue; + const label5 = (maxValue-minValue) / 5 * 4 + minValue; + + return ( +
+ + + + + + {({ geographies }) => ( + <> + {geographies.map((geo) => { + const cur = allStates.find((s) => s.val === geo.id); + const records = summary.filter((s) => s.State === cur.id && s.Title === title); + let total = 0; + let totalAverageMonthlyParticipation = 0; + + records.forEach((record) => { + total += record.Amount; + }); + + if (title === "Supplemental Nutrition Assistance Program (SNAP)") { + records.forEach((record) => { + totalAverageMonthlyParticipation += record["Average Monthly Participation"]; + }); + } + + const hoverContent = ( + + + {stateCodes[cur.id]} + Total Benefit + $ - {Number(total / 1000000.0).toLocaleString(undefined, { - maximumFractionDigits: 2 - })} + {Number(total / 1000000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })} M - -
- {/* Show additional data on hover for SNAP */} - {title === 'Supplemental Nutrition Assistance Program (SNAP)' && ( - + +
+ {/* Show additional data on hover for SNAP */} + {title === "Supplemental Nutrition Assistance Program (SNAP)" && ( + Avg. Monthly Participation - - )} - {/* Average SNAP monthly participation for the current years */} - {title === 'Supplemental Nutrition Assistance Program (SNAP)' && ( - - {Number( - totalAverageMonthlyParticipation / yearList.length - ).toLocaleString(undefined, { - maximumFractionDigits: 0 - })} - - )} -
- - - + + )} + {/* Average SNAP monthly participation for the current years */} + {title === "Supplemental Nutrition Assistance Program (SNAP)" && ( + + {Number( + totalAverageMonthlyParticipation / yearList.length + ).toLocaleString(undefined, { + maximumFractionDigits: 0 + })} + + )} + + + + Payments: -
- {records.map((record) => ( -
- {record['Fiscal Year']}: $ - {Number(record.Amount / 1000000.0).toLocaleString(undefined, { - maximumFractionDigits: 2 - })} +
+ {records.map((record) => ( +
+ {record["Fiscal Year"]}: $ + {Number(record.Amount / 1000000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })} M -
- ))} - - - - ); - return ( - { - setTooltipContent(hoverContent); - }} - onMouseLeave={() => { - setTooltipContent(''); - }} - fill={colorScale(total)} - stroke="#FFF" - style={{ - default: { stroke: '#FFFFFF', strokeWidth: 0.75, outline: 'none' }, - hover: { - stroke: '#232323', - strokeWidth: 2, - outline: 'none' - }, - pressed: { - fill: '#345feb', - outline: 'none' - } - }} - /> - ); - })} - {geographies.map((geo) => { - const centroid = geoCentroid(geo); - const cur = allStates.find((s) => s.val === geo.id); - return ( - - {cur && +
+ ))} +
+
+
+ ); + return ( + { + setTooltipContent(hoverContent); + }} + onMouseLeave={() => { + setTooltipContent(""); + }} + fill={colorScale(total)} + stroke="#FFF" + style={{ + default: { stroke: "#FFFFFF", strokeWidth: 0.75, outline: "none" }, + hover: { + stroke: "#232323", + strokeWidth: 2, + outline: "none" + }, + pressed: { + fill: "#345feb", + outline: "none" + } + }} + /> + ); + })} + {geographies.map((geo) => { + const centroid = geoCentroid(geo); + const cur = allStates.find((s) => s.val === geo.id); + return ( + + {cur && centroid[0] > -160 && centroid[0] < -67 && (Object.keys(offsets).indexOf(cur.id) === -1 ? ( - - - {cur.id} - - + + + {cur.id} + + ) : ( - - - {cur.id} - - + + + {cur.id} + + ))} - - ); - })} - - )} -
-
-
- ); + + ); + })} + + )} + + +
+ ); }; MapChart.propTypes = { - setTooltipContent: PropTypes.func, - title: PropTypes.string + setTooltipContent: PropTypes.func, + title: PropTypes.string }; const LandingPageMap = ({ programTitle }: { programTitle: string }): JSX.Element => { - const [content, setContent] = useState(''); - return ( -
- -
- - {content} - -
-
- ); + const [content, setContent] = useState(""); + return ( +
+ +
+ + {content} + +
+
+ ); }; export default LandingPageMap; diff --git a/src/components/LandingPageMapTab.tsx b/src/components/LandingPageMapTab.tsx index 7e8c1aef..83200ec4 100644 --- a/src/components/LandingPageMapTab.tsx +++ b/src/components/LandingPageMapTab.tsx @@ -1,24 +1,20 @@ -import * as React from 'react'; -import Tabs from '@mui/material/Tabs'; -import Tab from '@mui/material/Tab'; -import Box from '@mui/material/Box'; -import { CardMedia, createTheme, styled, Typography, ThemeProvider } from '@mui/material'; -import Divider from '@mui/material/Divider'; -import LandingPageMap from './LandingPageMap'; -import AllProgramMap from './AllProgramMap'; -import allPrograms from '../data/allPrograms.json'; -import commodities from '../images/legends/Commodities benefits 2018 - 2022.png'; -import conservation from '../images/legends/conservation programs benefits 2018 - 2022.png'; -import crop from '../images/legends/crop insurance 2018 - 2022.png'; -import snap from '../images/legends/SNAP programs benefits 2018 - 2022.png'; -import total from '../images/legends/total farm bill benefits 2018 - 2022.png'; +import * as React from "react"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import Box from "@mui/material/Box"; +import { CardMedia, createTheme, styled, Typography, ThemeProvider } from "@mui/material"; +import Divider from "@mui/material/Divider"; +import LandingPageMap from "./LandingPageMap"; +import AllProgramMap from "./AllProgramMap"; +import allPrograms from "../data/allPrograms.json"; +import LandingDisplay from "./LandingDisplay"; const theme = createTheme({ - palette: { - primary: { - main: '#2F7164' - } - } + palette: { + primary: { + main: "#2F7164" + } + } }); interface TabPanelProps { @@ -28,147 +24,131 @@ interface TabPanelProps { } function TabPanel(props: TabPanelProps) { - const { value, index, title, ...other } = props; - let colorLegend = null; - - switch (title) { - case 'Title I: Commodities': - colorLegend = commodities; - break; - case 'Title II: Conservation': - colorLegend = conservation; - break; - case 'Crop Insurance': - colorLegend = crop; - break; - case 'Supplemental Nutrition Assistance Program (SNAP)': - colorLegend = snap; - break; - case 'All Programs': - colorLegend = total; - break; - } + const { value, index, title, ...other } = props; - return ( - - ); + return ( + + ); } export default function LandingPageMapTab(): JSX.Element { - const [value, setValue] = React.useState(2); + const [value, setValue] = React.useState(2); - const handleChange = (_event: React.SyntheticEvent, newValue: number) => { - setValue(newValue); - }; + const handleChange = (_event: React.SyntheticEvent, newValue: number) => { + setValue(newValue); + }; interface StyledTabProps { label: JSX.Element; } const CustomTab = styled((props: StyledTabProps) => )({ - textTransform: 'none' + textTransform: "none" }); - const cur = allPrograms.find((s) => s.State === 'Total'); - const allProgramTotal = cur['18-22 All Programs Total']; - const titleITotal = cur['Title I Total']; - const titleIITotal = cur['Title II Total']; - const cropTotal = cur['Crop Insurance Total']; - const snapTotal = cur['SNAP Total']; + const cur = allPrograms.find((s) => s.State === "Total"); + const allProgramTotal = cur["18-22 All Programs Total"]; + const titleITotal = cur["Title I Total"]; + const titleIITotal = cur["Title II Total"]; + const cropTotal = cur["Crop Insurance Total"]; + const snapTotal = cur["SNAP Total"]; return ( - - - - - - - Farm Bill Data - - - Map visualization - - - - - All Programs -
- ${Number(allProgramTotal / 1000000000.0).toFixed(2)}B -
- } - /> - - - Title I: Commodities -
- ${Number(titleITotal / 1000000000.0).toFixed(2)}B -
- } - /> - - - Title II: Conservation -
- ${Number(titleIITotal / 1000000000.0).toFixed(2)}B -
- } - /> - - - Crop Insurance -
- ${Number(cropTotal / 1000000000.0).toFixed(2)}B -
- } - /> - - - Supplemental Nutrition Assistance Program -
- ${Number(snapTotal / 1000000000.0).toFixed(2)}B - - } - /> - - - - - - - - - - + + + + + + + Farm Bill Data + + + Map visualization + + + + + All Programs +
+ ${Number(allProgramTotal / 1000000000.0).toFixed(2)}B +
+ } + /> + + + Title I: Commodities +
+ ${Number(titleITotal / 1000000000.0).toFixed(2)}B +
+ } + /> + + + Title II: Conservation +
+ ${Number(titleIITotal / 1000000000.0).toFixed(2)}B + + } + /> + {/* + + Crop Insurance +
+ ${Number(cropTotal / 1000000000.0).toFixed(2)}B + + } + /> */} + + + Supplemental Nutrition Assistance Program +
+ ${Number(snapTotal / 1000000000.0).toFixed(2)}B + + } + /> + + + + + + + + {/* */} + + ); } diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx index a1def3a9..2dbf453b 100644 --- a/src/components/NavBar.tsx +++ b/src/components/NavBar.tsx @@ -1,112 +1,119 @@ -import * as React from 'react'; -import AppBar from '@mui/material/AppBar'; -import Box from '@mui/material/Box'; -import Divider from '@mui/material/Divider'; -import Drawer from '@mui/material/Drawer'; -import IconButton from '@mui/material/IconButton'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import ListItemButton from '@mui/material/ListItemButton'; -import ListItemText from '@mui/material/ListItemText'; -import Toolbar from '@mui/material/Toolbar'; -import Typography from '@mui/material/Typography'; -import Button from '@mui/material/Button'; -import { createTheme, ThemeProvider } from '@mui/material'; -import { Link } from 'react-router-dom'; +import * as React from "react"; +import AppBar from "@mui/material/AppBar"; +import Box from "@mui/material/Box"; +import Divider from "@mui/material/Divider"; +import Drawer from "@mui/material/Drawer"; +import IconButton from "@mui/material/IconButton"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemButton from "@mui/material/ListItemButton"; +import ListItemText from "@mui/material/ListItemText"; +import Toolbar from "@mui/material/Toolbar"; +import Typography from "@mui/material/Typography"; +import Button from "@mui/material/Button"; +import { CardMedia, createTheme, ThemeProvider } from "@mui/material"; +import { Link } from "react-router-dom"; +import PDLLogo from "./PDLLogo"; const drawerWidth = 240; -const navItems = ['HOME', 'EXPLORE FARM BILL DATA', 'ABOUT PDL']; +const navItems = ["HOME", "EXPLORE FARM BILL DATA", "ABOUT PDL"]; const theme = createTheme({ - components: { - MuiAppBar: { - styleOverrides: { - colorPrimary: { - backgroundColor: '#2F7164' - } - } - } - } + components: { + MuiAppBar: { + styleOverrides: { + colorPrimary: { + backgroundColor: "#2F7164" + } + } + } + } }); export default function NavBar(): JSX.Element { - const [mobileOpen, setMobileOpen] = React.useState(false); + const [mobileOpen, setMobileOpen] = React.useState(false); - const handleDrawerToggle = () => { - setMobileOpen(!mobileOpen); - }; + const handleDrawerToggle = () => { + setMobileOpen(!mobileOpen); + }; - const drawer = ( - - + const drawer = ( + + Policy Design Lab - - - - {navItems.map((item) => ( - - - - - - ))} - - - ); + + + + {navItems.map((item) => ( + + + + + + ))} + + + ); - return ( - - - - - - - Policy Design Lab - - - {navItems.map((item) => { - if (item === 'HOME') { - return ( - - ); - } - return ( - - ); - })} - - - - - - {drawer} - - - - - ); + return ( + + + + + + + + {navItems.map((item) => { + if (item === "HOME") { + return ( + + ); + } + return ( + + ); + })} + + + + + + {drawer} + + + + + ); } diff --git a/src/components/News.tsx b/src/components/News.tsx index e0675b52..6591a762 100644 --- a/src/components/News.tsx +++ b/src/components/News.tsx @@ -1,102 +1,102 @@ -import Typography from '@mui/material/Typography'; -import React from 'react'; -import Box from '@mui/material/Box'; -import { Button, Card, CardActions, CardContent, CardMedia, Divider } from '@mui/material'; -import senate from '../images/resources/Senate Committee on Agriculture, Nutrition, and Forestry.png'; -import house from '../images/resources/House Agriculture Committee.png'; -import department from '../images/resources/United States Department of Agriculture.png'; -import farmdoc from '../images/resources/farmdoc.png'; +import Typography from "@mui/material/Typography"; +import React from "react"; +import Box from "@mui/material/Box"; +import { Button, Card, CardActions, CardContent, CardMedia, Divider } from "@mui/material"; +import senate from "../images/resources/Senate Committee on Agriculture, Nutrition, and Forestry.png"; +import house from "../images/resources/House Agriculture Committee.png"; +import department from "../images/resources/United States Department of Agriculture.png"; +import farmdoc from "../images/resources/farmdoc.png"; export default function News(): JSX.Element { - return ( - - - - Related Resources - - - Updated on DECEMBER 2022 - - - - - - - - + return ( + + + + Related Resources + + + Updated on DECEMBER 2022 + + + + + + + + Senate Committee on - - + + Agriculture, Nutrition, - - + + and Forestry - - - - - - - - - - + + + + + + + House Committee - - + + on Agriculture - - - - - - - - - - + + + + + + + United States - - + + Department of - - + + Agriculture - - - - - - - - - - + + + + + + + Farmdoc - - - - - - - - - ); + + + + + + ); } diff --git a/src/components/PDLLogo.tsx b/src/components/PDLLogo.tsx new file mode 100644 index 00000000..cde02481 --- /dev/null +++ b/src/components/PDLLogo.tsx @@ -0,0 +1,26 @@ +import React from "react"; + +function PDLLogo({ width, height }: { width: string; height: string }) { + return ( + + + + + + ); +} + +export default PDLLogo; diff --git a/src/components/ProgramDrawer.tsx b/src/components/ProgramDrawer.tsx index 1b49d835..dac8d888 100644 --- a/src/components/ProgramDrawer.tsx +++ b/src/components/ProgramDrawer.tsx @@ -1,229 +1,251 @@ -import React from 'react'; -import Drawer from '@mui/material/Drawer'; -import MenuItem from '@mui/material/MenuItem'; -import Box from '@mui/material/Box'; -import { Popper, Radio, Typography } from '@mui/material'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import ListItemButton from '@mui/material/ListItemButton'; -import ListItemIcon from '@mui/material/ListItemIcon'; -import ListItemText from '@mui/material/ListItemText'; -import PropTypes from 'prop-types'; -import { useLocation } from 'react-router-dom'; +import React from "react"; +import Drawer from "@mui/material/Drawer"; +import MenuItem from "@mui/material/MenuItem"; +import Box from "@mui/material/Box"; +import { Popper, Radio, Typography } from "@mui/material"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemButton from "@mui/material/ListItemButton"; +import ListItemText from "@mui/material/ListItemText"; +import PropTypes from "prop-types"; +import { useLocation } from "react-router-dom"; +import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; const drawerWidth = 240; EQIPCheckboxList.propTypes = { - setEQIPChecked: PropTypes.func, - setShowPopUp: PropTypes.func + setEQIPChecked: PropTypes.func, + setShowPopUp: PropTypes.func }; ProgramDrawer.propTypes = { - setEQIPChecked: PropTypes.func + setEQIPChecked: PropTypes.func }; let currentChecked = 0; function EQIPCheckboxList({ setEQIPChecked, setShowPopUp }) { - const [checked, setChecked] = React.useState(currentChecked); + const [checked, setChecked] = React.useState(currentChecked); - const handleToggle = (value: number) => () => { - setChecked(value); - setEQIPChecked(value); - currentChecked = value; - setShowPopUp(false); - }; + const handleToggle = (value: number) => () => { + setChecked(value); + setEQIPChecked(value); + currentChecked = value; + setShowPopUp(false); + }; - const EQIPList = [ - 'Total EQIP Benefits', - 'Land management', - 'Forest management', - 'Structural', - 'Soil remediation', - 'Vegetative', - 'Other improvement', - 'Soil testing', - 'Other planning', - 'Conservation planning assessment', - 'Resource-conserving crop rotation', - 'Soil health', - 'Comprehensive Nutrient Mgt.' - ]; + const EQIPList = [ + "Total EQIP Benefits", + "Land management", + "Forest management", + "Structural", + "Soil remediation", + "Vegetative", + "Other improvement", + "Soil testing", + "Other planning", + "Conservation planning assessment", + "Resource-conserving crop rotation", + "Soil health", + "Comprehensive Nutrient Mgt." + ]; - return ( - - {EQIPList.map((category, value) => { - const labelId = `checkbox-list-label-${value}`; - if ( - category !== 'Land management' && - category !== 'Other planning' && - category !== 'Total EQIP Benefits' - ) { - return ( - - - - - - - - - ); - } - if (category === 'Total EQIP Benefits') { - return ( - - - - - - - - - ); - } - if (category === 'Land management') { - return ( - - - (6)(A) Practices - - - - - - - - - - - ); - } - return ( - - - (6)(B) Practices - - - - - - - - - - - ); - })} - - ); + return ( + + {EQIPList.map((category, value) => { + const labelId = `checkbox-list-label-${value}`; + if ( + category !== "Land management" && + category !== "Other planning" && + category !== "Total EQIP Benefits" + ) { + return ( + + + + + + + ); + } + if (category === "Total EQIP Benefits") { + return ( + + + + + + + ); + } + if (category === "Land management") { + return ( + + + (6)(A) Improvements + + + + + + + + + ); + } + return ( + + + (6)(B) Planning + + + + + + + + + ); + })} + + ); } export default function ProgramDrawer({ setEQIPChecked }): JSX.Element { - const location = useLocation(); - const [eqipOpen, setEqipOpen] = React.useState(false); - const eqipRef = React.useRef(null); - const handleEqipClick = () => { - setEqipOpen((prevEqipOpen) => !prevEqipOpen); - }; - const prevEqipOpen = React.useRef(eqipOpen); - React.useEffect(() => { - if (prevEqipOpen.current === true && eqipOpen === false) { - eqipRef.current.focus(); - } + const location = useLocation(); + const [eqipOpen, setEqipOpen] = React.useState(false); + const eqipRef = React.useRef(null); + const handleEqipClick = () => { + setEqipOpen((prevEqipOpen) => !prevEqipOpen); + }; + const prevEqipOpen = React.useRef(eqipOpen); + React.useEffect(() => { + if (prevEqipOpen.current === true && eqipOpen === false) { + eqipRef.current.focus(); + } - prevEqipOpen.current = eqipOpen; - }, [eqipOpen]); + prevEqipOpen.current = eqipOpen; + }, [eqipOpen]); - return ( - - - - {location.pathname === '/eqip' ? ( - Total Conservation Programs Benefits - ) : ( - Total Conservation Programs Benefits - )} - - - - {location.pathname === '/eqip' ? ( - EQIP: Environmental Quality Incentives Program - ) : ( - EQIP: Environmental Quality Incentives Program - )} - - - - - - - - - {location.pathname === '/eqip' ? ( - CSP: Conservation Stewardship Program - ) : ( - CSP: Conservation Stewardship Program - )} - - - {location.pathname === '/eqip' ? ( - CRP: Conservation Reserve Program - ) : ( - CRP: Conservation Reserve Program - )} - - - {location.pathname === '/eqip' ? ( - ACEP: Agriculture Conservation Easement Program - ) : ( - ACEP: Agriculture Conservation Easement Program - )} - - - {location.pathname === '/eqip' ? ( - RCPP: Regional Conservation Partnership Program - ) : ( - RCPP: Regional Conservation Partnership Program - )} - - - {location.pathname === '/eqip' ? ( - Other Conservation - ) : ( - Other Conservation - )} - - - ); + return ( + + + + Total Conservation Programs Benefits + + + + + {eqipOpen ? ( + + EQIP: Environmental Quality Incentives Program + + ) : ( + EQIP: Environmental Quality Incentives Program + )} + + + + STATUTE + + + + + + + + + + + + + + CSP: Conservation Stewardship Program + + + CRP: Conservation Reserve Program + + + ACEP: Agriculture Conservation Easement Program + + + RCPP: Regional Conservation Partnership Program + + + Other Conservation + + + ); } diff --git a/src/components/SemiDonutChart.tsx b/src/components/SemiDonutChart.tsx index 0be64a1b..44870b59 100644 --- a/src/components/SemiDonutChart.tsx +++ b/src/components/SemiDonutChart.tsx @@ -1,78 +1,104 @@ -import React from 'react'; -import { PieChart, Pie, Tooltip, Label, Cell } from 'recharts'; -import { Box } from '@mui/material'; +import React from "react"; +import { PieChart, Pie, Tooltip, Label, Cell } from "recharts"; +import { Box } from "@mui/material"; const RADIAN = Math.PI / 180; // eslint-disable-next-line export default function SemiDonutChart({ data, label1, label2 }: any): JSX.Element { - const data01 = data; - // eslint-disable-next-line + const data01 = data; + // eslint-disable-next-line const renderCustomizedLabel = ({ cx, cy, midAngle, innerRadius, outerRadius, percent }: any) => { - const radius = innerRadius + (outerRadius - innerRadius) * 0.5; - const x = cx + radius * Math.cos(-midAngle * RADIAN); - const y = cy + radius * Math.sin(-midAngle * RADIAN); + const radius = innerRadius + (outerRadius - innerRadius) * 0.5; + const x = cx + radius * Math.cos(-midAngle * RADIAN); + const y = cy + radius * Math.sin(-midAngle * RADIAN); - return ( - cx ? 'start' : 'end'} dominantBaseline="central"> - {`${(percent * 100).toFixed(1)}%`} - - ); - }; - // eslint-disable-next-line + return ( + cx ? "start" : "end"} dominantBaseline="central"> + {`${(percent * 100).toFixed(1)}%`} + + ); + }; + // eslint-disable-next-line const renderCustomizedLabel2 = ({ x, cx, y, name }: any) => { - return ( - cx ? 'start' : 'end'} dominantBaseline="central"> - {name} - - ); - }; + return ( + cx ? "start" : "end"} dominantBaseline="central"> + {name} + + ); + }; - return ( - - - - - - {data.map((entry) => ( - - ))} - - - - - ); + const CustomTooltip = ({ active, payload, label }: any) => { + if (active && payload && payload.length) { + return ( +
+

{payload[0].name} Payment:

+

{payload[0].value.toLocaleString("en-US", { style: "currency", currency: "USD" })}

+
+ ); + } + + return null; + }; + + return ( + + + + + + {data.map((entry) => ( + + ))} + + } wrapperStyle={{ backgroundColor: "white", borderStyle: "ridge", outline: "none", borderRadius: "10px" }}/> + + + ); } diff --git a/src/components/eqip/CategoryMap.tsx b/src/components/eqip/CategoryMap.tsx index 676c924d..f9d3c495 100644 --- a/src/components/eqip/CategoryMap.tsx +++ b/src/components/eqip/CategoryMap.tsx @@ -1,247 +1,249 @@ -import React, { useState } from 'react'; -import { geoCentroid } from 'd3-geo'; -import { ComposableMap, Geographies, Geography, Marker, Annotation } from 'react-simple-maps'; -import ReactTooltip from 'react-tooltip'; -import { scaleQuantile, scaleQuantize } from 'd3-scale'; -import Divider from '@mui/material/Divider'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; +import React, { useState } from "react"; +import { geoCentroid } from "d3-geo"; +import { ComposableMap, Geographies, Geography, Marker, Annotation } from "react-simple-maps"; +import ReactTooltip from "react-tooltip"; +import { scaleQuantile, scaleQuantize } from "d3-scale"; +import Divider from "@mui/material/Divider"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; -import PropTypes from 'prop-types'; -import allStates from '../../data/allstates.json'; -import statePerformance from '../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json'; -import '../../styles/map.css'; -import HorizontalStackedBar from '../HorizontalStackedBar'; +import PropTypes from "prop-types"; +import allStates from "../../data/allstates.json"; +import statePerformance from "../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json"; +import "../../styles/map.css"; +import HorizontalStackedBar from "../HorizontalStackedBar"; -const geoUrl = 'https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json'; +const geoUrl = "https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json"; const offsets = { - VT: [50, -8], - NH: [34, 2], - MA: [30, -1], - RI: [28, 2], - CT: [35, 10], - NJ: [34, 1], - DE: [33, 0], - MD: [47, 10], - DC: [49, 21] + VT: [50, -8], + NH: [34, 2], + MA: [30, -1], + RI: [28, 2], + CT: [35, 10], + NJ: [34, 1], + DE: [33, 0], + MD: [47, 10], + DC: [49, 21] }; const MapChart = ({ setTooltipContent, category, maxValue }) => { - const colorScale = scaleQuantize() - .domain([0, maxValue]) - .range(['#F0F9E8', '#BAE4BC', '#7BCCC4', '#43A2CA', '#0868AC']); + const colorScale = scaleQuantize() + .domain([0, maxValue]) + .range(["#F0F9E8", "#BAE4BC", "#7BCCC4", "#43A2CA", "#0868AC"]); - return ( -
- - - {({ geographies }) => ( - <> - {geographies.map((geo) => { - if (!Object.keys(statePerformance).includes(geo.properties.name)) { - return null; - } - const statuteRecord = statePerformance[geo.properties.name][0].statutes; - const ACur = statuteRecord.find((s) => s.statuteName === '(6)(A) Practices'); - const AArray = ACur.practiceCategories; - const BCur = statuteRecord.find((s) => s.statuteName === '(6)(B) Practices'); - const BArray = BCur.practiceCategories; - const TotalArray = AArray.concat(BArray); - const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); - const categoryPayment = categoryRecord.paymentInDollars; - const nationwidePercentage = categoryRecord.paymentInPercentageNationwide; - const withinStatePercentage = categoryRecord.paymentInPercentageWithinState; - const hoverContent = ( - - - {geo.properties.name} - - - $ - {Number(categoryPayment / 1000000.0).toLocaleString(undefined, { - maximumFractionDigits: 2 - })} - M - - - - {nationwidePercentage}% - - - - - ); - return ( - { - setTooltipContent(hoverContent); - }} - onMouseLeave={() => { - setTooltipContent(''); - }} - fill={colorScale(categoryPayment)} - stroke="#FFF" - style={{ - default: { stroke: '#FFFFFF', strokeWidth: 0.75, outline: 'none' }, - hover: { - stroke: '#232323', - strokeWidth: 2, - outline: 'none' - }, - pressed: { - fill: '#345feb', - outline: 'none' - } - }} - /> - ); - })} - {geographies.map((geo) => { - const centroid = geoCentroid(geo); - const cur = allStates.find((s) => s.val === geo.id); - return ( - - {cur && + return ( +
+ + + {({ geographies }) => ( + <> + {geographies.map((geo) => { + if (!Object.keys(statePerformance).includes(geo.properties.name)) { + return null; + } + const statuteRecord = statePerformance[geo.properties.name][0].statutes; + const ACur = statuteRecord.find((s) => s.statuteName === "(6)(A) Practices"); + const AArray = ACur.practiceCategories; + const BCur = statuteRecord.find((s) => s.statuteName === "(6)(B) Practices"); + const BArray = BCur.practiceCategories; + const TotalArray = AArray.concat(BArray); + const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); + const categoryPayment = categoryRecord.paymentInDollars; + const nationwidePercentage = categoryRecord.paymentInPercentageNationwide; + const withinStatePercentage = categoryRecord.paymentInPercentageWithinState; + const hoverContent = ( + + + {geo.properties.name} + + + {Number(categoryPayment) < 1000000 + ? `$${Number(Number(categoryPayment) / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })}K` + : `$${Number(Number(categoryPayment) / 1000000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })}M`} + + + + {nationwidePercentage ? `${ nationwidePercentage } %` : "0%"} + + + + + ); + return ( + { + setTooltipContent(hoverContent); + }} + onMouseLeave={() => { + setTooltipContent(""); + }} + fill={colorScale(categoryPayment)} + stroke="#FFF" + style={{ + default: { stroke: "#FFFFFF", strokeWidth: 0.75, outline: "none" }, + hover: { + stroke: "#232323", + strokeWidth: 2, + outline: "none" + }, + pressed: { + fill: "#345feb", + outline: "none" + } + }} + /> + ); + })} + {geographies.map((geo) => { + const centroid = geoCentroid(geo); + const cur = allStates.find((s) => s.val === geo.id); + return ( + + {cur && centroid[0] > -160 && centroid[0] < -67 && (Object.keys(offsets).indexOf(cur.id) === -1 ? ( - - - {cur.id} - - + + + {cur.id} + + ) : ( - - - {cur.id} - - + + + {cur.id} + + ))} - - ); - })} - - )} - - -
- ); +
+ ); + })} + + )} +
+
+
+ ); }; MapChart.propTypes = { - setTooltipContent: PropTypes.func, - category: PropTypes.string, - maxValue: PropTypes.number + setTooltipContent: PropTypes.func, + category: PropTypes.string, + maxValue: PropTypes.number }; const CategoryMap = ({ category }: { category: string }): JSX.Element => { - const [content, setContent] = useState(''); - const title = `${category} Benefits`; - const quantizeArray: number[] = []; - Object.values(statePerformance).map((value) => { - const statuteRecord = value[0].statutes; - const ACur = statuteRecord.find((s) => s.statuteName === '(6)(A) Practices'); - const AArray = ACur.practiceCategories; - const BCur = statuteRecord.find((s) => s.statuteName === '(6)(B) Practices'); - const BArray = BCur.practiceCategories; - const TotalArray = AArray.concat(BArray); - const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); - quantizeArray.push(categoryRecord.paymentInDollars); - return null; - }); - const maxValue = Math.max(...quantizeArray); - const label1 = (maxValue / 5) * 0; - const label2 = (maxValue / 5) * 1; - const label3 = (maxValue / 5) * 2; - const label4 = (maxValue / 5) * 3; - const label5 = (maxValue / 5) * 4; - return ( -
- - = 1000000 - ? `$${Number(label2 / 1000000).toLocaleString(undefined, { - maximumFractionDigits: 0 - })}M` - : `$${Number(label2 / 1000.0).toLocaleString(undefined, { - maximumFractionDigits: 1 - })}K` - } - label3={ - label3 >= 1000000 - ? `$${Number(label3 / 1000000).toLocaleString(undefined, { - maximumFractionDigits: 0 - })}M` - : `$${Number(label3 / 1000.0).toLocaleString(undefined, { - maximumFractionDigits: 1 - })}K` - } - label4={ - label4 >= 1000000 - ? `$${Number(label4 / 1000000).toLocaleString(undefined, { - maximumFractionDigits: 0 - })}M` - : `$${Number(label4 / 1000.0).toLocaleString(undefined, { - maximumFractionDigits: 1 - })}K` - } - label5={ - label5 >= 1000000 - ? `$${Number(label5 / 1000000).toLocaleString(undefined, { - maximumFractionDigits: 0 - })}M` - : `$${Number(label5 / 1000.0).toLocaleString(undefined, { - maximumFractionDigits: 1 - })}K` - } - label6={ - maxValue >= 1000000 - ? `$${Number(maxValue / 1000000).toLocaleString(undefined, { - maximumFractionDigits: 0 - })}M` - : `$${Number(maxValue / 1000.0).toLocaleString(undefined, { - maximumFractionDigits: 1 - })}K` - } - /> - - -
- - {content} - -
-
- ); + const [content, setContent] = useState(""); + const title = `${category} Benefits`; + const quantizeArray: number[] = []; + Object.values(statePerformance).map((value) => { + const statuteRecord = value[0].statutes; + const ACur = statuteRecord.find((s) => s.statuteName === "(6)(A) Practices"); + const AArray = ACur.practiceCategories; + const BCur = statuteRecord.find((s) => s.statuteName === "(6)(B) Practices"); + const BArray = BCur.practiceCategories; + const TotalArray = AArray.concat(BArray); + const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); + quantizeArray.push(categoryRecord.paymentInDollars); + return null; + }); + const maxValue = Math.max(...quantizeArray); + const label1 = (maxValue / 5) * 0; + const label2 = (maxValue / 5) * 1; + const label3 = (maxValue / 5) * 2; + const label4 = (maxValue / 5) * 3; + const label5 = (maxValue / 5) * 4; + return ( +
+ + = 1000000 + ? `$${Number(label2 / 1000000).toLocaleString(undefined, { + maximumFractionDigits: 0 + })}M` + : `$${Number(label2 / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 1 + })}K` + } + label3={ + label3 >= 1000000 + ? `$${Number(label3 / 1000000).toLocaleString(undefined, { + maximumFractionDigits: 0 + })}M` + : `$${Number(label3 / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 1 + })}K` + } + label4={ + label4 >= 1000000 + ? `$${Number(label4 / 1000000).toLocaleString(undefined, { + maximumFractionDigits: 0 + })}M` + : `$${Number(label4 / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 1 + })}K` + } + label5={ + label5 >= 1000000 + ? `$${Number(label5 / 1000000).toLocaleString(undefined, { + maximumFractionDigits: 0 + })}M` + : `$${Number(label5 / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 1 + })}K` + } + label6={ + maxValue >= 1000000 + ? `$${Number(maxValue / 1000000).toLocaleString(undefined, { + maximumFractionDigits: 0 + })}M` + : `$${Number(maxValue / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 1 + })}K` + } + /> + + +
+ + {content} + +
+
+ ); }; export default CategoryMap; diff --git a/src/components/eqip/CategoryTable.tsx b/src/components/eqip/CategoryTable.tsx index 04bbc334..440b3a18 100644 --- a/src/components/eqip/CategoryTable.tsx +++ b/src/components/eqip/CategoryTable.tsx @@ -1,8 +1,9 @@ -import React from 'react'; -import styled from 'styled-components'; -import { useTable, useSortBy } from 'react-table'; -import Box from '@mui/material/Box'; -import statePerformance from '../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json'; +import React from "react"; +import styled from "styled-components"; +import { useTable, useSortBy } from "react-table"; +import Box from "@mui/material/Box"; +import statePerformance from "../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json"; +import "../../styles/table.css"; const Styles = styled.div` padding: 1rem; @@ -23,19 +24,20 @@ const Styles = styled.div` th { background-color: #f1f1f1; - padding: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; } td { margin: 0; - padding: 1rem; - padding-left: 5rem; - padding-right: 5rem; + padding: 0rem; + padding-left: 3rem; + padding-right: 3rem; border-bottom: 1px solid #e4ebe7; border-right: none; :last-child { - border-right: 0; + border-right: 2rem; } } } @@ -43,135 +45,237 @@ const Styles = styled.div` // eslint-disable-next-line function Table({ columns, data }: { columns: any; data: any }) { - const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable( - { - columns, - data - }, - useSortBy - ); - - const firstPageRows = rows.slice(0, 50); - - return ( - <> - - - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - // Add the sorting props to control sorting. - - ))} - - ))} - - - { - // eslint-disable-next-line + const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable( + { + columns, + data + }, + useSortBy + ); + + const firstPageRows = rows.slice(0, 50); + + return ( + <> +
- {column.render('Header')} - {/* Add a sort direction indicator */} - - {(() => { - if (!column.isSorted) return ''; - if (column.isSortedDesc) return ' 🔽'; - return ' 🔼'; - })()} - -
+ + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + // Add the sorting props to control sorting. + + ))} + + ))} + + + { + // eslint-disable-next-line firstPageRows.map((row, i) => { - prepareRow(row); - return ( - - {row.cells.map((cell) => { - return ( - - ); - })} - - ); - }) - } - -
+ + {column.render("Header")} +
+ {(() => { + if (!column.isSorted) return {"\u{2B83}"}; + if (column.isSortedDesc) return {"\u{25BC}"}; + return {"\u{25B2}"}; + })()} +
+
+
- {cell.render('Cell')} -
-
-
+ prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + {cell.render("Cell")} + + ); + })} + + ); + }) + } + + +
+
Showing the first {rows.length} results of {rows.length} rows -
- - ); +
+ + ); } function App({ category }: { category: string }): JSX.Element { - const eqipTableData: any[] = []; - - // eslint-disable-next-line no-restricted-syntax - for (const [key, value] of Object.entries(statePerformance)) { - const ACur = value[0].statutes.find((s) => s.statuteName === '(6)(A) Practices'); - const AArray = ACur.practiceCategories; - const BCur = value[0].statutes.find((s) => s.statuteName === '(6)(B) Practices'); - const BArray = BCur.practiceCategories; - const TotalArray = AArray.concat(BArray); - const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); - const newRecord = () => { - return { - state: key, - categoryBenefit: `$${Number(categoryRecord.paymentInDollars).toLocaleString(undefined, { - minimumFractionDigits: 2 - })}`, - categoryPercentage: `${categoryRecord.paymentInPercentageWithinState.toString()}%`, - eqipBenefit: `$${value[0].totalPaymentInDollars.toLocaleString(undefined, { - minimumFractionDigits: 2 - })}`, - percentage: `${value[0].totalPaymentInPercentageNationwide.toString()}%` - }; - }; - eqipTableData.push(newRecord()); - } + const eqipTableData: any[] = []; - const columns = React.useMemo( - () => [ - { - Header: 'STATES', - accessor: 'state', - paddingLeft: '5rem', - paddingRight: '10rem' - }, - { - Header: `${category} Benefit`, - accessor: 'categoryBenefit' - }, - { - Header: `${category} Percentage Within State`, - accessor: 'categoryPercentage' - }, - { - Header: 'EQIP BENEFITS', - accessor: 'eqipBenefit' - }, - { - Header: 'PCT. NATIONWIDE', - accessor: 'percentage' - } - ], - [] - ); - - return ( - - - - - - ); + // eslint-disable-next-line no-restricted-syntax + for (const [key, value] of Object.entries(statePerformance)) { + const ACur = value[0].statutes.find((s) => s.statuteName === "(6)(A) Practices"); + const AArray = ACur.practiceCategories; + const BCur = value[0].statutes.find((s) => s.statuteName === "(6)(B) Practices"); + const BArray = BCur.practiceCategories; + const TotalArray = AArray.concat(BArray); + const categoryRecord = TotalArray.find((s) => s.practiceCategoryName === category); + const newRecord = () => { + return { + state: key, + categoryBenefit: `$${Number(categoryRecord.paymentInDollars).toLocaleString(undefined, { + minimumFractionDigits: 2 + })}`, + categoryPercentage: `${categoryRecord.paymentInPercentageWithinState.toString()}%`, + eqipBenefit: `$${value[0].totalPaymentInDollars.toLocaleString(undefined, { + minimumFractionDigits: 2 + })}`, + percentage: `${value[0].totalPaymentInPercentageNationwide.toString()}%` + }; + }; + eqipTableData.push(newRecord()); + } + + function compareWithDollarSign(rowA, rowB, id, desc) { + const a = Number.parseFloat(rowA.values[id].substring(1).replaceAll(",", "")); + const b = Number.parseFloat(rowB.values[id].substring(1).replaceAll(",", "")); + if (a > b) return 1; + if (a < b) return -1; + return 0; + } + + function compareWithPercentSign(rowA, rowB, id, desc) { + const a = Number.parseFloat(rowA.values[id].replaceAll("%", "")); + const b = Number.parseFloat(rowB.values[id].replaceAll("%", "")); + if (a > b) return 1; + if (a < b) return -1; + return 0; + } + + const columns = React.useMemo( + () => [ + { + Header: ( + + STATES + + ), + accessor: "state", + Cell: function styleCells(props: { + value: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined; + }) { + return ( +
+ + {props.value} + +
+ ); + } + }, + { + Header: ( + + {`${category} Benefit`.toUpperCase()} + + ), + accessor: "categoryBenefit", + sortType: compareWithDollarSign, + Cell: function styleCells(props: { + value: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined; + }) { + return ( +
+ + {props.value} + +
+ ); + } + }, + { + Header: ( + + {`${category} Percentage Within State`.toUpperCase()} + + ), + accessor: "categoryPercentage", + sortType: compareWithPercentSign, + Cell: function styleCells(props: { + value: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined; + }) { + return ( +
+ + {props.value} + +
+ ); + } + }, + { + Header: ( + + EQIP BENEFITS + + ), + accessor: "eqipBenefit", + sortType: compareWithDollarSign, + Cell: function styleCells(row) { + return
{row.value}
; + } + }, + { + Header: PCT. NATIONWIDE, + accessor: "percentage", + sortType: compareWithPercentSign, + Cell: function styleCells(row) { + return
{row.value}
; + } + } + ], + [] + ); + + return ( + + +
+ + + ); } export default App; diff --git a/src/components/eqip/EQIPTotalTable.tsx b/src/components/eqip/EQIPTotalTable.tsx index 29913572..a80e7f18 100644 --- a/src/components/eqip/EQIPTotalTable.tsx +++ b/src/components/eqip/EQIPTotalTable.tsx @@ -1,8 +1,9 @@ -import React from 'react'; -import styled from 'styled-components'; -import { useTable, useSortBy } from 'react-table'; -import Box from '@mui/material/Box'; -import statePerformance from '../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json'; +import React from "react"; +import styled from "styled-components"; +import { useTable, useSortBy } from "react-table"; +import Box from "@mui/material/Box"; +import statePerformance from "../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json"; +import "../../styles/table.css"; const Styles = styled.div` padding: 1rem; @@ -43,117 +44,149 @@ const Styles = styled.div` // eslint-disable-next-line function Table({ columns, data }: { columns: any; data: any }) { - const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable( - { - columns, - data - }, - useSortBy - ); - - const firstPageRows = rows.slice(0, 50); - - return ( - <> -
- - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - // Add the sorting props to control sorting. - - ))} - - ))} - - - { - // eslint-disable-next-line + const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable( + { + columns, + data + }, + useSortBy + ); + + const firstPageRows = rows.slice(0, 50); + + return ( + <> +
- {column.render('Header')} - {/* Add a sort direction indicator */} - - {(() => { - if (!column.isSorted) return ''; - if (column.isSortedDesc) return ' 🔽'; - return ' 🔼'; - })()} - -
+ + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + // Add the sorting props to control sorting. + + ))} + + ))} + + + { + // eslint-disable-next-line firstPageRows.map((row, i) => { - prepareRow(row); - return ( - - {row.cells.map((cell) => { - return ( - - ); - })} - - ); - }) - } - -
+ + {column.render("Header")} +
+ {(() => { + if (!column.isSorted) return {"\u{2B83}"}; + if (column.isSortedDesc) return {"\u{25BC}"}; + return {"\u{25B2}"}; + })()} +
+
+
- {cell.render('Cell')} -
-
-
+ prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + {cell.render("Cell")} + + ); + })} + + ); + }) + } + + +
+
Showing the first {rows.length} results of {rows.length} rows -
- - ); +
+ + ); } const eqipTableData: any[] = []; // eslint-disable-next-line no-restricted-syntax for (const [key, value] of Object.entries(statePerformance)) { - const newRecord = () => { - return { - state: key, - eqipBenefit: `$${value[0].totalPaymentInDollars - .toLocaleString(undefined, { minimumFractionDigits: 2 }) - .toString()}`, - percentage: `${value[0].totalPaymentInPercentageNationwide.toString()}%` - }; - }; - eqipTableData.push(newRecord()); + const newRecord = () => { + return { + state: key, + eqipBenefit: `$${value[0].totalPaymentInDollars + .toLocaleString(undefined, { minimumFractionDigits: 2 }) + .toString()}`, + percentage: `${value[0].totalPaymentInPercentageNationwide.toString()}%` + }; + }; + eqipTableData.push(newRecord()); } function App(): JSX.Element { - const columns = React.useMemo( - () => [ - { - Header: 'STATES', - accessor: 'state', - paddingLeft: '5rem', - paddingRight: '32rem' - }, - { - Header: 'EQIP BENEFITS', - accessor: 'eqipBenefit' - }, - { - Header: 'PCT. NATIONWIDE', - accessor: 'percentage' - } - ], - [] - ); - - return ( - - - - - - ); + function compareWithDollarSign(rowA, rowB, id, desc) { + const a = Number.parseFloat(rowA.values[id].substring(1).replaceAll(",", "")); + const b = Number.parseFloat(rowB.values[id].substring(1).replaceAll(",", "")); + if (a > b) return 1; + if (a < b) return -1; + return 0; + } + + function compareWithPercentSign(rowA, rowB, id, desc) { + const a = Number.parseFloat(rowA.values[id].replaceAll("%", "")); + const b = Number.parseFloat(rowB.values[id].replaceAll("%", "")); + if (a > b) return 1; + if (a < b) return -1; + return 0; + } + + const columns = React.useMemo( + () => [ + { + Header: STATES, + accessor: "state", + paddingLeft: "5rem", + paddingRight: "32rem" + }, + { + Header: ( + + EQIP BENEFITS + + ), + accessor: "eqipBenefit", + sortType: compareWithDollarSign, + Cell: function styleCells(row) { + return
{row.value}
; + } + }, + { + Header: PCT. NATIONWIDE, + accessor: "percentage", + sortType: compareWithPercentSign, + Cell: function styleCells(row) { + return
{row.value}
; + } + } + ], + [] + ); + + return ( + + +
+ + + ); } export default App; diff --git a/src/components/eqip/EqipTotalMap.tsx b/src/components/eqip/EqipTotalMap.tsx index 408d1e2b..a86ed07e 100644 --- a/src/components/eqip/EqipTotalMap.tsx +++ b/src/components/eqip/EqipTotalMap.tsx @@ -1,201 +1,200 @@ -import React, { useState } from 'react'; -import { geoCentroid } from 'd3-geo'; -import { ComposableMap, Geographies, Geography, Marker, Annotation } from 'react-simple-maps'; -import ReactTooltip from 'react-tooltip'; -import { scaleQuantile, scaleQuantize } from 'd3-scale'; -import Divider from '@mui/material/Divider'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; +import React, { useState } from "react"; +import { geoCentroid } from "d3-geo"; +import { ComposableMap, Geographies, Geography, Marker, Annotation } from "react-simple-maps"; +import ReactTooltip from "react-tooltip"; +import { scaleQuantile, scaleQuantize } from "d3-scale"; +import Divider from "@mui/material/Divider"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; -import PropTypes from 'prop-types'; -import allStates from '../../data/allstates.json'; -import statePerformance from '../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json'; -import '../../styles/map.css'; -import HorizontalStackedBar from '../HorizontalStackedBar'; +import PropTypes from "prop-types"; +import allStates from "../../data/allstates.json"; +import statePerformance from "../../data/eqip/EQIP_STATE_PERFORMANCE_DATA.json"; +import "../../styles/map.css"; +import HorizontalStackedBar from "../HorizontalStackedBar"; -const geoUrl = 'https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json'; +const geoUrl = "https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json"; const offsets = { - VT: [50, -8], - NH: [34, 2], - MA: [30, -1], - RI: [28, 2], - CT: [35, 10], - NJ: [34, 1], - DE: [33, 0], - MD: [47, 10], - DC: [49, 21] + VT: [50, -8], + NH: [34, 2], + MA: [30, -1], + RI: [28, 2], + CT: [35, 10], + NJ: [34, 1], + DE: [33, 0], + MD: [47, 10], + DC: [49, 21] }; const MapChart = ({ setTooltipContent, maxValue }) => { - const colorScale = scaleQuantize() - .domain([0, maxValue]) - .range(['#F0F9E8', '#BAE4BC', '#7BCCC4', '#43A2CA', '#0868AC']); + const colorScale = scaleQuantize() + .domain([0, maxValue]) + .range(["#F0F9E8", "#BAE4BC", "#7BCCC4", "#43A2CA", "#0868AC"]); - return ( -
- - - {({ geographies }) => ( - <> - {geographies.map((geo) => { - if (!Object.keys(statePerformance).includes(geo.properties.name)) { - return null; - } - const record = statePerformance[geo.properties.name][0]; - const totalPaymentInDollars = record.totalPaymentInDollars; - const totalPaymentInPercentageNationwide = record.totalPaymentInPercentageNationwide; - const hoverContent = ( - - - {geo.properties.name} - - - $ - {Number(totalPaymentInDollars / 1000000.0).toLocaleString( - undefined, - { - maximumFractionDigits: 2 - } - )} - M - - - - {totalPaymentInPercentageNationwide}% - - - - - ); - return ( - { - setTooltipContent(hoverContent); - }} - onMouseLeave={() => { - setTooltipContent(''); - }} - fill={colorScale(totalPaymentInDollars)} - stroke="#FFF" - style={{ - default: { stroke: '#FFFFFF', strokeWidth: 0.75, outline: 'none' }, - hover: { - stroke: '#232323', - strokeWidth: 2, - outline: 'none' - }, - pressed: { - fill: '#345feb', - outline: 'none' - } - }} - /> - ); - })} - {geographies.map((geo) => { - const centroid = geoCentroid(geo); - const cur = allStates.find((s) => s.val === geo.id); - return ( - - {cur && + return ( +
+ + + {({ geographies }) => ( + <> + {geographies.map((geo) => { + if (!Object.keys(statePerformance).includes(geo.properties.name)) { + return null; + } + const record = statePerformance[geo.properties.name][0]; + const totalPaymentInDollars = record.totalPaymentInDollars; + const totalPaymentInPercentageNationwide = record.totalPaymentInPercentageNationwide; + const hoverContent = ( + + + {geo.properties.name} + + + {Number(totalPaymentInDollars) < 1000000 + ? `$${Number(Number(totalPaymentInDollars) / 1000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })}K` + : `$${Number(Number(totalPaymentInDollars) / 1000000.0).toLocaleString(undefined, { + maximumFractionDigits: 2 + })}M`} + + + + {totalPaymentInPercentageNationwide ? `${ totalPaymentInPercentageNationwide } %` : "0%"} + + + + + ); + return ( + { + setTooltipContent(hoverContent); + }} + onMouseLeave={() => { + setTooltipContent(""); + }} + fill={colorScale(totalPaymentInDollars)} + stroke="#FFF" + style={{ + default: { stroke: "#FFFFFF", strokeWidth: 0.75, outline: "none" }, + hover: { + stroke: "#232323", + strokeWidth: 2, + outline: "none" + }, + pressed: { + fill: "#345feb", + outline: "none" + } + }} + /> + ); + })} + {geographies.map((geo) => { + const centroid = geoCentroid(geo); + const cur = allStates.find((s) => s.val === geo.id); + return ( + + {cur && centroid[0] > -160 && centroid[0] < -67 && (Object.keys(offsets).indexOf(cur.id) === -1 ? ( - - - {cur.id} - - + + + {cur.id} + + ) : ( - - - {cur.id} - - + + + {cur.id} + + ))} - - ); - })} - - )} - - -
- ); +
+ ); + })} + + )} +
+
+
+ ); }; MapChart.propTypes = { - setTooltipContent: PropTypes.func, - maxValue: PropTypes.number + setTooltipContent: PropTypes.func, + maxValue: PropTypes.number }; const EqipTotalMap = (): JSX.Element => { - const quantizeArray: number[] = []; - Object.values(statePerformance).map((value) => quantizeArray.push(value[0].totalPaymentInDollars)); - const maxValue = Math.max(...quantizeArray); - const label1 = (maxValue / 5) * 0; - const label2 = (maxValue / 5) * 1; - const label3 = (maxValue / 5) * 2; - const label4 = (maxValue / 5) * 3; - const label5 = (maxValue / 5) * 4; - const [content, setContent] = useState(''); - return ( -
- - - - -
- - {content} - -
-
- ); + const quantizeArray: number[] = []; + Object.values(statePerformance).map((value) => quantizeArray.push(value[0].totalPaymentInDollars)); + const maxValue = Math.max(...quantizeArray); + const label1 = (maxValue / 5) * 0; + const label2 = (maxValue / 5) * 1; + const label3 = (maxValue / 5) * 2; + const label4 = (maxValue / 5) * 3; + const label5 = (maxValue / 5) * 4; + const [content, setContent] = useState(""); + return ( +
+ + + + +
+ + {content} + +
+
+ ); }; export default EqipTotalMap; diff --git a/src/data/allPrograms.json b/src/data/allPrograms.json index 934b0a0d..9ef5f945 100644 --- a/src/data/allPrograms.json +++ b/src/data/allPrograms.json @@ -324,7 +324,7 @@ "Title II Total": 271118312.49, "2018 All Programs Total": 9393064251.96, "2019 All Programs Total": 4151196982.89, - "2020 All Programs Total": 6174558567.0, + "2020 All Programs Total": 6174558567, "2021 All Programs Total": 8077333361.8, "2022 All Programs Total": 5111581542.84, "18-22 All Programs Total": 32907734706.49 diff --git a/src/data/eqip/EQIP_STATE_PERFORMANCE_DATA.json b/src/data/eqip/EQIP_STATE_PERFORMANCE_DATA.json index 59e829b3..3ca8a648 100644 --- a/src/data/eqip/EQIP_STATE_PERFORMANCE_DATA.json +++ b/src/data/eqip/EQIP_STATE_PERFORMANCE_DATA.json @@ -5,43 +5,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 388158506.31, + "statutePaymentInDollars": 433322873.95, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 179249651.0, - "paymentInPercentageNationwide": 17.24, - "paymentInPercentageWithinState": 46.16 + "paymentInDollars": 204772538.5, + "paymentInPercentageNationwide": 16.4, + "paymentInPercentageWithinState": 47.24 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 136745305.73, - "paymentInPercentageNationwide": 6.88, - "paymentInPercentageWithinState": 35.21 + "paymentInDollars": 153546722.05, + "paymentInPercentageNationwide": 7.02, + "paymentInPercentageWithinState": 35.42 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 34626076.99, - "paymentInPercentageNationwide": 8.82, - "paymentInPercentageWithinState": 8.92 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 37212624.69, + "paymentInPercentageNationwide": 5.4, + "paymentInPercentageWithinState": 8.58 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 31804596.94, - "paymentInPercentageNationwide": 5.0, - "paymentInPercentageWithinState": 8.19 + "practiceCategoryName": "Forest management", + "paymentInDollars": 31537796.4, + "paymentInPercentageNationwide": 9.32, + "paymentInPercentageWithinState": 7.28 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 3679039.05, - "paymentInPercentageNationwide": 6.69, - "paymentInPercentageWithinState": 0.95 + "paymentInDollars": 3878788.98, + "paymentInPercentageNationwide": 6.16, + "paymentInPercentageWithinState": 0.89 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 2053836.6, - "paymentInPercentageNationwide": 1.61, - "paymentInPercentageWithinState": 0.53 + "paymentInDollars": 2374403.33, + "paymentInPercentageNationwide": 1.72, + "paymentInPercentageWithinState": 0.55 }, { "practiceCategoryName": "Soil testing", @@ -52,27 +52,27 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 170095.35, + "statutePaymentInDollars": 170095.27, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 129068.25, - "paymentInPercentageNationwide": 0.54, + "paymentInDollars": 129068.17, + "paymentInPercentageNationwide": 0.51, "paymentInPercentageWithinState": 0.03 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 41027.1, - "paymentInPercentageNationwide": 0.26, + "paymentInPercentageNationwide": 0.28, "paymentInPercentageWithinState": 0.01 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -84,8 +84,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 9.07, - "totalPaymentInDollars": 388328601.66 + "totalPaymentInPercentageNationwide": 9.2, + "totalPaymentInDollars": 433492969.22 } ], "California": [ @@ -94,43 +94,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 349140117.83, + "statutePaymentInDollars": 386179480.05, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 260560528.17, - "paymentInPercentageNationwide": 13.12, - "paymentInPercentageWithinState": 74.35 + "paymentInDollars": 289560591.01, + "paymentInPercentageNationwide": 13.24, + "paymentInPercentageWithinState": 74.71 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 41969363.48, - "paymentInPercentageNationwide": 10.68, - "paymentInPercentageWithinState": 11.98 + "practiceCategoryName": "Land management", + "paymentInDollars": 47127515.13, + "paymentInPercentageNationwide": 3.77, + "paymentInPercentageWithinState": 12.16 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 34577630.46, - "paymentInPercentageNationwide": 3.33, - "paymentInPercentageWithinState": 9.87 + "practiceCategoryName": "Forest management", + "paymentInDollars": 37639828.21, + "paymentInPercentageNationwide": 11.12, + "paymentInPercentageWithinState": 9.71 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 8264634.15, - "paymentInPercentageNationwide": 6.49, - "paymentInPercentageWithinState": 2.36 + "paymentInDollars": 8232517.02, + "paymentInPercentageNationwide": 5.98, + "paymentInPercentageWithinState": 2.12 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 2822031.05, - "paymentInPercentageNationwide": 0.44, - "paymentInPercentageWithinState": 0.81 + "paymentInDollars": 3100399.53, + "paymentInPercentageNationwide": 0.45, + "paymentInPercentageWithinState": 0.8 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 945930.52, - "paymentInPercentageNationwide": 1.72, - "paymentInPercentageWithinState": 0.27 + "paymentInDollars": 518629.15, + "paymentInPercentageNationwide": 0.82, + "paymentInPercentageWithinState": 0.13 }, { "practiceCategoryName": "Soil testing", @@ -141,30 +141,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1317384.87, + "statutePaymentInDollars": 1401230.05, "practiceCategories": [ { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 1050224.44, - "paymentInPercentageNationwide": 6.6, - "paymentInPercentageWithinState": 0.3 + "paymentInDollars": 976281.46, + "paymentInPercentageNationwide": 6.63, + "paymentInPercentageWithinState": 0.25 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 203870.84, - "paymentInPercentageNationwide": 0.85, + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 217545.76, + "paymentInPercentageNationwide": 3.33, "paymentInPercentageWithinState": 0.06 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 61385.36, - "paymentInPercentageNationwide": 1.72, - "paymentInPercentageWithinState": 0.02 + "practiceCategoryName": "Other planning", + "paymentInDollars": 206322.21, + "paymentInPercentageNationwide": 0.81, + "paymentInPercentageWithinState": 0.05 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 1904.23, - "paymentInPercentageNationwide": 0.39, + "paymentInDollars": 1080.62, + "paymentInPercentageNationwide": 0.21, "paymentInPercentageWithinState": 0.0 }, { @@ -175,8 +175,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 8.19, - "totalPaymentInDollars": 350457502.7 + "totalPaymentInPercentageNationwide": 8.23, + "totalPaymentInDollars": 387580710.1 } ], "Mississippi": [ @@ -185,90 +185,89 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 180878104.97000003, + "statutePaymentInDollars": 197410907.57, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 81014685.97, - "paymentInPercentageNationwide": 4.08, - "paymentInPercentageWithinState": 44.34 + "paymentInDollars": 89827497.54, + "paymentInPercentageNationwide": 4.11, + "paymentInPercentageWithinState": 45.07 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 60197467.19, - "paymentInPercentageNationwide": 5.79, - "paymentInPercentageWithinState": 32.95 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 14244878.03, - "paymentInPercentageNationwide": 3.63, - "paymentInPercentageWithinState": 7.8 + "paymentInDollars": 69471168.85, + "paymentInPercentageNationwide": 5.56, + "paymentInPercentageWithinState": 34.86 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 14139589.36, - "paymentInPercentageNationwide": 2.22, - "paymentInPercentageWithinState": 7.74 + "paymentInDollars": 14917497.05, + "paymentInPercentageNationwide": 2.16, + "paymentInPercentageWithinState": 7.48 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 10773637.32, - "paymentInPercentageNationwide": 8.46, - "paymentInPercentageWithinState": 5.9 + "paymentInDollars": 11290936.8, + "paymentInPercentageNationwide": 8.2, + "paymentInPercentageWithinState": 5.67 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 11261252.01, + "paymentInPercentageNationwide": 3.33, + "paymentInPercentageWithinState": 5.65 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 507065.26, - "paymentInPercentageNationwide": 0.92, - "paymentInPercentageWithinState": 0.28 + "paymentInDollars": 642164.4, + "paymentInPercentageNationwide": 1.02, + "paymentInPercentageWithinState": 0.32 }, { "practiceCategoryName": "Soil testing", - "paymentInDollars": 781.84, - "paymentInPercentageNationwide": 25.87, + "paymentInDollars": 390.92, + "paymentInPercentageNationwide": 100.0, "paymentInPercentageWithinState": 0.0 } ] }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1832282.84, + "statutePaymentInDollars": 1890923.35, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 1210362.47, - "paymentInPercentageNationwide": 5.06, - "paymentInPercentageWithinState": 0.66 + "paymentInDollars": 1250359.94, + "paymentInPercentageNationwide": 4.92, + "paymentInPercentageWithinState": 0.63 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 545648.04, - "paymentInPercentageNationwide": 15.28, - "paymentInPercentageWithinState": 0.3 + "paymentInDollars": 560672.49, + "paymentInPercentageNationwide": 8.59, + "paymentInPercentageWithinState": 0.28 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 71859.47, - "paymentInPercentageNationwide": 0.45, + "paymentInDollars": 79890.92, + "paymentInPercentageNationwide": 0.54, "paymentInPercentageWithinState": 0.04 }, { - "practiceCategoryName": "Soil health", - "paymentInDollars": 4412.86, - "paymentInPercentageNationwide": 100.0, + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 4.27, - "totalPaymentInDollars": 182710387.81 + "totalPaymentInPercentageNationwide": 4.23, + "totalPaymentInDollars": 199301830.92 } ], "Georgia": [ @@ -277,43 +276,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 163376347.78, + "statutePaymentInDollars": 180526849.24, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 75113455.15, - "paymentInPercentageNationwide": 3.78, - "paymentInPercentageWithinState": 45.75 + "paymentInDollars": 84820318.38, + "paymentInPercentageNationwide": 3.88, + "paymentInPercentageWithinState": 46.76 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 45136951.12, - "paymentInPercentageNationwide": 11.49, - "paymentInPercentageWithinState": 27.49 + "paymentInDollars": 38140599.87, + "paymentInPercentageNationwide": 11.27, + "paymentInPercentageWithinState": 21.03 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 23935739.99, - "paymentInPercentageNationwide": 2.3, - "paymentInPercentageWithinState": 14.58 + "paymentInDollars": 36093737.69, + "paymentInPercentageNationwide": 2.89, + "paymentInPercentageWithinState": 19.9 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 11144705.81, - "paymentInPercentageNationwide": 1.75, - "paymentInPercentageWithinState": 6.79 + "paymentInDollars": 12468872.38, + "paymentInPercentageNationwide": 1.81, + "paymentInPercentageWithinState": 6.87 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 7328265.6, - "paymentInPercentageNationwide": 5.75, - "paymentInPercentageWithinState": 4.46 + "paymentInDollars": 8109194.52, + "paymentInPercentageNationwide": 5.89, + "paymentInPercentageWithinState": 4.47 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 717230.11, - "paymentInPercentageNationwide": 1.3, - "paymentInPercentageWithinState": 0.44 + "paymentInDollars": 894126.4, + "paymentInPercentageNationwide": 1.42, + "paymentInPercentageWithinState": 0.49 }, { "practiceCategoryName": "Soil testing", @@ -324,13 +323,13 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 805053.31, + "statutePaymentInDollars": 855649.09, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 798277.92, - "paymentInPercentageNationwide": 3.33, - "paymentInPercentageWithinState": 0.49 + "paymentInDollars": 848873.7, + "paymentInPercentageNationwide": 3.34, + "paymentInPercentageWithinState": 0.47 }, { "practiceCategoryName": "Conservation planning assessment", @@ -341,7 +340,7 @@ { "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 817.28, - "paymentInPercentageNationwide": 0.17, + "paymentInPercentageNationwide": 0.16, "paymentInPercentageWithinState": 0.0 }, { @@ -357,8 +356,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 3.84, - "totalPaymentInDollars": 164181401.09 + "totalPaymentInPercentageNationwide": 3.85, + "totalPaymentInDollars": 181382498.33 } ], "Arkansas": [ @@ -367,43 +366,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 150025905.72, + "statutePaymentInDollars": 166198056.23, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 74543227.64, - "paymentInPercentageNationwide": 3.75, - "paymentInPercentageWithinState": 49.33 + "paymentInDollars": 82384027.57, + "paymentInPercentageNationwide": 3.77, + "paymentInPercentageWithinState": 49.25 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 40059606.15, - "paymentInPercentageNationwide": 3.85, - "paymentInPercentageWithinState": 26.51 + "paymentInDollars": 47025861.89, + "paymentInPercentageNationwide": 3.77, + "paymentInPercentageWithinState": 28.11 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 13858727.41, - "paymentInPercentageNationwide": 2.18, - "paymentInPercentageWithinState": 9.17 + "paymentInDollars": 14730311.49, + "paymentInPercentageNationwide": 2.14, + "paymentInPercentageWithinState": 8.81 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 10730071.16, - "paymentInPercentageNationwide": 8.42, - "paymentInPercentageWithinState": 7.1 + "paymentInDollars": 12196571.9, + "paymentInPercentageNationwide": 8.86, + "paymentInPercentageWithinState": 7.29 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 7008798.67, - "paymentInPercentageNationwide": 1.78, - "paymentInPercentageWithinState": 4.64 + "paymentInDollars": 5752767.43, + "paymentInPercentageNationwide": 1.7, + "paymentInPercentageWithinState": 3.44 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 3825474.69, - "paymentInPercentageNationwide": 6.95, - "paymentInPercentageWithinState": 2.53 + "paymentInDollars": 4108515.95, + "paymentInPercentageNationwide": 6.52, + "paymentInPercentageWithinState": 2.46 }, { "practiceCategoryName": "Soil testing", @@ -414,16 +413,16 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1084273.97, + "statutePaymentInDollars": 1092396.47, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 1084273.97, - "paymentInPercentageNationwide": 4.53, - "paymentInPercentageWithinState": 0.72 + "paymentInDollars": 1092396.47, + "paymentInPercentageNationwide": 4.3, + "paymentInPercentageWithinState": 0.65 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -433,20 +432,20 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 3.53, - "totalPaymentInDollars": 151110179.69 + "totalPaymentInPercentageNationwide": 3.55, + "totalPaymentInDollars": 167290452.7 } ], "Colorado": [ @@ -455,43 +454,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 129456642.75999999, + "statutePaymentInDollars": 142635519.42, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 85052260.82, - "paymentInPercentageNationwide": 4.28, - "paymentInPercentageWithinState": 65.61 + "paymentInDollars": 92477472.55, + "paymentInPercentageNationwide": 4.23, + "paymentInPercentageWithinState": 64.76 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 19614349.89, - "paymentInPercentageNationwide": 4.99, - "paymentInPercentageWithinState": 15.13 + "practiceCategoryName": "Land management", + "paymentInDollars": 17938358.58, + "paymentInPercentageNationwide": 1.44, + "paymentInPercentageWithinState": 12.56 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 11828489.36, - "paymentInPercentageNationwide": 1.14, - "paymentInPercentageWithinState": 9.12 + "practiceCategoryName": "Forest management", + "paymentInDollars": 16440536.04, + "paymentInPercentageNationwide": 4.86, + "paymentInPercentageWithinState": 11.51 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 10017439.61, - "paymentInPercentageNationwide": 1.57, - "paymentInPercentageWithinState": 7.73 + "paymentInDollars": 12563281.84, + "paymentInPercentageNationwide": 1.82, + "paymentInPercentageWithinState": 8.8 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 2203689.61, - "paymentInPercentageNationwide": 1.73, + "paymentInDollars": 2423083.49, + "paymentInPercentageNationwide": 1.76, "paymentInPercentageWithinState": 1.7 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 740413.47, - "paymentInPercentageNationwide": 1.35, - "paymentInPercentageWithinState": 0.57 + "paymentInDollars": 792786.92, + "paymentInPercentageNationwide": 1.26, + "paymentInPercentageWithinState": 0.56 }, { "practiceCategoryName": "Soil testing", @@ -502,27 +501,27 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 172625.27, + "statutePaymentInDollars": 163496.95, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 156567.69, - "paymentInPercentageNationwide": 0.65, - "paymentInPercentageWithinState": 0.12 + "paymentInDollars": 147439.37, + "paymentInPercentageNationwide": 0.58, + "paymentInPercentageWithinState": 0.1 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 16057.58, - "paymentInPercentageNationwide": 0.1, + "paymentInPercentageNationwide": 0.11, "paymentInPercentageWithinState": 0.01 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -535,7 +534,7 @@ } ], "totalPaymentInPercentageNationwide": 3.03, - "totalPaymentInDollars": 129629268.03 + "totalPaymentInDollars": 142799016.37 } ], "Missouri": [ @@ -544,43 +543,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 123906573.09, + "statutePaymentInDollars": 133910958.55, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 48222465.65, - "paymentInPercentageNationwide": 2.43, - "paymentInPercentageWithinState": 38.29 + "paymentInDollars": 52399404.72, + "paymentInPercentageNationwide": 2.4, + "paymentInPercentageWithinState": 38.45 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 45780970.06, - "paymentInPercentageNationwide": 7.2, - "paymentInPercentageWithinState": 36.35 + "paymentInDollars": 47544581.52, + "paymentInPercentageNationwide": 6.9, + "paymentInPercentageWithinState": 34.89 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 18969251.52, - "paymentInPercentageNationwide": 1.82, - "paymentInPercentageWithinState": 15.06 + "paymentInDollars": 22160883.25, + "paymentInPercentageNationwide": 1.77, + "paymentInPercentageWithinState": 16.26 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 7993092.8, - "paymentInPercentageNationwide": 6.27, - "paymentInPercentageWithinState": 6.35 + "paymentInDollars": 9184082.87, + "paymentInPercentageNationwide": 6.67, + "paymentInPercentageWithinState": 6.74 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2751205.99, - "paymentInPercentageNationwide": 0.7, - "paymentInPercentageWithinState": 2.18 + "paymentInDollars": 2403245.66, + "paymentInPercentageNationwide": 0.71, + "paymentInPercentageWithinState": 1.76 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 189587.07, - "paymentInPercentageNationwide": 0.34, - "paymentInPercentageWithinState": 0.15 + "paymentInDollars": 218760.53, + "paymentInPercentageNationwide": 0.35, + "paymentInPercentageWithinState": 0.16 }, { "practiceCategoryName": "Soil testing", @@ -591,30 +590,29 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 2024041.92, + "statutePaymentInDollars": 2364373.87, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 1125926.99, - "paymentInPercentageNationwide": 4.7, - "paymentInPercentageWithinState": 0.89 + "paymentInDollars": 1368180.36, + "paymentInPercentageNationwide": 5.39, + "paymentInPercentageWithinState": 1.0 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 864474.35, - "paymentInPercentageNationwide": 5.43, - "paymentInPercentageWithinState": 0.69 + "paymentInDollars": 791637.08, + "paymentInPercentageNationwide": 5.38, + "paymentInPercentageWithinState": 0.58 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 33297.41, - "paymentInPercentageNationwide": 0.93, - "paymentInPercentageWithinState": 0.03 + "paymentInDollars": 204556.43, + "paymentInPercentageNationwide": 3.13, + "paymentInPercentageWithinState": 0.15 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 343.17, - "paymentInPercentageNationwide": 0.07, + "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { @@ -625,8 +623,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.94, - "totalPaymentInDollars": 125930615.01 + "totalPaymentInPercentageNationwide": 2.89, + "totalPaymentInDollars": 136275332.42 } ], "Wisconsin": [ @@ -635,43 +633,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 115560098.16, + "statutePaymentInDollars": 126555990.7, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 48703246.18, - "paymentInPercentageNationwide": 2.45, - "paymentInPercentageWithinState": 41.01 + "paymentInDollars": 53226789.25, + "paymentInPercentageNationwide": 2.43, + "paymentInPercentageWithinState": 40.95 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 30377599.68, - "paymentInPercentageNationwide": 4.77, - "paymentInPercentageWithinState": 25.58 + "paymentInDollars": 32437016.71, + "paymentInPercentageNationwide": 4.71, + "paymentInPercentageWithinState": 24.96 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 23591865.93, - "paymentInPercentageNationwide": 2.27, - "paymentInPercentageWithinState": 19.87 + "paymentInDollars": 27440640.08, + "paymentInPercentageNationwide": 2.2, + "paymentInPercentageWithinState": 21.11 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 6896172.34, - "paymentInPercentageNationwide": 5.41, - "paymentInPercentageWithinState": 5.81 + "paymentInDollars": 6993818.05, + "paymentInPercentageNationwide": 5.08, + "paymentInPercentageWithinState": 5.38 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 4415104.59, - "paymentInPercentageNationwide": 1.12, - "paymentInPercentageWithinState": 3.72 + "paymentInDollars": 4052207.33, + "paymentInPercentageNationwide": 1.2, + "paymentInPercentageWithinState": 3.12 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 1576109.44, - "paymentInPercentageNationwide": 2.86, - "paymentInPercentageWithinState": 1.33 + "paymentInDollars": 2405519.28, + "paymentInPercentageNationwide": 3.82, + "paymentInPercentageWithinState": 1.85 }, { "practiceCategoryName": "Soil testing", @@ -682,31 +680,31 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 3199621.7600000002, + "statutePaymentInDollars": 3410302.69, "practiceCategories": [ - { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 1455550.83, - "paymentInPercentageNationwide": 9.14, - "paymentInPercentageWithinState": 1.23 - }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 1456431.77, - "paymentInPercentageNationwide": 6.08, - "paymentInPercentageWithinState": 1.23 + "paymentInDollars": 1572020.22, + "paymentInPercentageNationwide": 6.19, + "paymentInPercentageWithinState": 1.21 }, { - "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 182025.18, - "paymentInPercentageNationwide": 37.03, - "paymentInPercentageWithinState": 0.15 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 1325180.21, + "paymentInPercentageNationwide": 9.0, + "paymentInPercentageWithinState": 1.02 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 105613.98, - "paymentInPercentageNationwide": 2.96, - "paymentInPercentageWithinState": 0.09 + "paymentInDollars": 328991.4, + "paymentInPercentageNationwide": 5.04, + "paymentInPercentageWithinState": 0.25 + }, + { + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 184110.86, + "paymentInPercentageNationwide": 35.5, + "paymentInPercentageWithinState": 0.14 }, { "practiceCategoryName": "Soil health", @@ -716,8 +714,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.77, - "totalPaymentInDollars": 118759719.92 + "totalPaymentInPercentageNationwide": 2.76, + "totalPaymentInDollars": 129966293.39 } ], "Tennessee": [ @@ -726,37 +724,37 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 114957415.69, + "statutePaymentInDollars": 124174104.36, "practiceCategories": [ { "practiceCategoryName": "Vegetative", - "paymentInDollars": 48739510.23, - "paymentInPercentageNationwide": 7.66, - "paymentInPercentageWithinState": 41.94 + "paymentInDollars": 49131770.72, + "paymentInPercentageNationwide": 7.13, + "paymentInPercentageWithinState": 39.14 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 37579239.58, - "paymentInPercentageNationwide": 1.89, - "paymentInPercentageWithinState": 32.34 + "paymentInDollars": 42629409.24, + "paymentInPercentageNationwide": 1.95, + "paymentInPercentageWithinState": 33.96 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 23683916.12, - "paymentInPercentageNationwide": 2.28, - "paymentInPercentageWithinState": 20.38 + "paymentInDollars": 27907744.53, + "paymentInPercentageNationwide": 2.24, + "paymentInPercentageWithinState": 22.24 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 3640924.18, - "paymentInPercentageNationwide": 0.93, - "paymentInPercentageWithinState": 3.13 + "paymentInDollars": 3191116.81, + "paymentInPercentageNationwide": 0.94, + "paymentInPercentageWithinState": 2.54 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1312523.3, - "paymentInPercentageNationwide": 1.03, - "paymentInPercentageWithinState": 1.13 + "paymentInDollars": 1312760.78, + "paymentInPercentageNationwide": 0.95, + "paymentInPercentageWithinState": 1.05 }, { "practiceCategoryName": "Soil remediation", @@ -773,24 +771,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1251140.91, + "statutePaymentInDollars": 1338197.45, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 849883.85, - "paymentInPercentageNationwide": 3.55, + "paymentInDollars": 911552.26, + "paymentInPercentageNationwide": 3.59, "paymentInPercentageWithinState": 0.73 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 401257.06, - "paymentInPercentageNationwide": 2.52, - "paymentInPercentageWithinState": 0.35 + "paymentInDollars": 349336.19, + "paymentInPercentageNationwide": 2.37, + "paymentInPercentageWithinState": 0.28 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 77309.0, + "paymentInPercentageNationwide": 1.18, + "paymentInPercentageWithinState": 0.06 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -805,8 +804,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.71, - "totalPaymentInDollars": 116208556.6 + "totalPaymentInPercentageNationwide": 2.66, + "totalPaymentInDollars": 125512301.81 } ], "Kansas": [ @@ -815,43 +814,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 114435620.08, + "statutePaymentInDollars": 124506438.74, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 58032966.41, - "paymentInPercentageNationwide": 2.92, - "paymentInPercentageWithinState": 50.69 + "paymentInDollars": 62862910.91, + "paymentInPercentageNationwide": 2.88, + "paymentInPercentageWithinState": 50.46 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 29186118.86, - "paymentInPercentageNationwide": 4.59, - "paymentInPercentageWithinState": 25.49 + "paymentInDollars": 31262110.63, + "paymentInPercentageNationwide": 4.53, + "paymentInPercentageWithinState": 25.09 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 21300274.41, - "paymentInPercentageNationwide": 2.05, - "paymentInPercentageWithinState": 18.61 + "paymentInDollars": 24140815.77, + "paymentInPercentageNationwide": 1.93, + "paymentInPercentageWithinState": 19.38 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 3134151.2, - "paymentInPercentageNationwide": 0.8, - "paymentInPercentageWithinState": 2.74 + "paymentInDollars": 2912613.09, + "paymentInPercentageNationwide": 0.86, + "paymentInPercentageWithinState": 2.34 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 2165266.3, - "paymentInPercentageNationwide": 3.93, - "paymentInPercentageWithinState": 1.89 + "paymentInDollars": 2622779.76, + "paymentInPercentageNationwide": 4.16, + "paymentInPercentageWithinState": 2.11 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 616842.9, - "paymentInPercentageNationwide": 0.48, - "paymentInPercentageWithinState": 0.54 + "paymentInDollars": 705208.58, + "paymentInPercentageNationwide": 0.51, + "paymentInPercentageWithinState": 0.57 }, { "practiceCategoryName": "Soil testing", @@ -862,40 +861,40 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 45540.68, + "statutePaymentInDollars": 70268.0, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 33549.9, - "paymentInPercentageNationwide": 0.14, + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 39089.0, + "paymentInPercentageNationwide": 0.6, "paymentInPercentageWithinState": 0.03 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 11990.78, - "paymentInPercentageNationwide": 0.34, - "paymentInPercentageWithinState": 0.01 + "practiceCategoryName": "Other planning", + "paymentInDollars": 31179.0, + "paymentInPercentageNationwide": 0.12, + "paymentInPercentageWithinState": 0.03 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 2.67, - "totalPaymentInDollars": 114481160.76 + "totalPaymentInPercentageNationwide": 2.64, + "totalPaymentInDollars": 124576706.74 } ], "Iowa": [ @@ -904,43 +903,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 109450001.09, + "statutePaymentInDollars": 116560339.03, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 48148684.25, - "paymentInPercentageNationwide": 2.42, - "paymentInPercentageWithinState": 43.5 + "paymentInDollars": 51141419.89, + "paymentInPercentageNationwide": 2.34, + "paymentInPercentageWithinState": 43.4 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 37388208.3, - "paymentInPercentageNationwide": 5.88, - "paymentInPercentageWithinState": 33.78 + "paymentInDollars": 39135375.19, + "paymentInPercentageNationwide": 5.68, + "paymentInPercentageWithinState": 33.21 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 16101183.99, - "paymentInPercentageNationwide": 1.55, - "paymentInPercentageWithinState": 14.55 + "paymentInDollars": 18068306.9, + "paymentInPercentageNationwide": 1.45, + "paymentInPercentageWithinState": 15.33 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 5066718.17, - "paymentInPercentageNationwide": 3.98, - "paymentInPercentageWithinState": 4.58 + "paymentInDollars": 5187817.92, + "paymentInPercentageNationwide": 3.77, + "paymentInPercentageWithinState": 4.4 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 1994413.84, - "paymentInPercentageNationwide": 3.62, - "paymentInPercentageWithinState": 1.8 + "paymentInDollars": 2370017.93, + "paymentInPercentageNationwide": 3.76, + "paymentInPercentageWithinState": 2.01 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 750792.54, + "paymentInDollars": 657401.2, "paymentInPercentageNationwide": 0.19, - "paymentInPercentageWithinState": 0.68 + "paymentInPercentageWithinState": 0.56 }, { "practiceCategoryName": "Soil testing", @@ -951,25 +950,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1238848.98, + "statutePaymentInDollars": 1280125.42, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 543337.75, - "paymentInPercentageNationwide": 3.41, - "paymentInPercentageWithinState": 0.49 + "practiceCategoryName": "Other planning", + "paymentInDollars": 475134.85, + "paymentInPercentageNationwide": 1.87, + "paymentInPercentageWithinState": 0.4 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 468167.57, - "paymentInPercentageNationwide": 1.96, - "paymentInPercentageWithinState": 0.42 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 462926.32, + "paymentInPercentageNationwide": 3.14, + "paymentInPercentageWithinState": 0.39 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 227343.66, - "paymentInPercentageNationwide": 6.37, - "paymentInPercentageWithinState": 0.21 + "paymentInDollars": 342064.25, + "paymentInPercentageNationwide": 5.24, + "paymentInPercentageWithinState": 0.29 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -984,8 +983,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.59, - "totalPaymentInDollars": 110688850.07 + "totalPaymentInPercentageNationwide": 2.5, + "totalPaymentInDollars": 117840464.45 } ], "Nebraska": [ @@ -994,43 +993,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 100799145.49999999, + "statutePaymentInDollars": 110948300.78, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 54626394.12, - "paymentInPercentageNationwide": 2.75, - "paymentInPercentageWithinState": 53.68 + "paymentInDollars": 59177079.45, + "paymentInPercentageNationwide": 2.71, + "paymentInPercentageWithinState": 52.86 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 24790917.94, - "paymentInPercentageNationwide": 3.9, - "paymentInPercentageWithinState": 24.36 + "paymentInDollars": 27926441.75, + "paymentInPercentageNationwide": 4.05, + "paymentInPercentageWithinState": 24.94 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 17589135.9, - "paymentInPercentageNationwide": 1.69, - "paymentInPercentageWithinState": 17.28 + "paymentInDollars": 19985549.94, + "paymentInPercentageNationwide": 1.6, + "paymentInPercentageWithinState": 17.85 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 1955000.24, - "paymentInPercentageNationwide": 0.5, - "paymentInPercentageWithinState": 1.92 + "paymentInDollars": 1716856.77, + "paymentInPercentageNationwide": 0.51, + "paymentInPercentageWithinState": 1.53 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1349219.92, - "paymentInPercentageNationwide": 1.06, - "paymentInPercentageWithinState": 1.33 + "paymentInDollars": 1551563.54, + "paymentInPercentageNationwide": 1.13, + "paymentInPercentageWithinState": 1.39 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 488477.38, - "paymentInPercentageNationwide": 0.89, - "paymentInPercentageWithinState": 0.48 + "paymentInDollars": 590809.33, + "paymentInPercentageNationwide": 0.94, + "paymentInPercentageWithinState": 0.53 }, { "practiceCategoryName": "Soil testing", @@ -1041,32 +1040,32 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 968146.34, + "statutePaymentInDollars": 1009135.87, "practiceCategories": [ { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 835402.41, - "paymentInPercentageNationwide": 5.25, - "paymentInPercentageWithinState": 0.82 + "paymentInDollars": 743226.84, + "paymentInPercentageNationwide": 5.05, + "paymentInPercentageWithinState": 0.66 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 136993.54, + "paymentInPercentageNationwide": 2.1, + "paymentInPercentageWithinState": 0.12 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 81049.08, - "paymentInPercentageNationwide": 16.49, + "paymentInDollars": 89285.38, + "paymentInPercentageNationwide": 17.22, "paymentInPercentageWithinState": 0.08 }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 44749.31, - "paymentInPercentageNationwide": 0.19, + "paymentInDollars": 39630.11, + "paymentInPercentageNationwide": 0.16, "paymentInPercentageWithinState": 0.04 }, - { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 6945.54, - "paymentInPercentageNationwide": 0.19, - "paymentInPercentageWithinState": 0.01 - }, { "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, @@ -1076,52 +1075,52 @@ } ], "totalPaymentInPercentageNationwide": 2.38, - "totalPaymentInDollars": 101767291.84 + "totalPaymentInDollars": 111957436.65 } ], - "Ohio": [ + "South Carolina": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 92958485.96, + "statutePaymentInDollars": 104057468.44, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 32560680.31, - "paymentInPercentageNationwide": 1.64, - "paymentInPercentageWithinState": 34.04 + "paymentInDollars": 31637552.36, + "paymentInPercentageNationwide": 1.45, + "paymentInPercentageWithinState": 29.86 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 29129557.52, - "paymentInPercentageNationwide": 4.58, - "paymentInPercentageWithinState": 30.45 + "practiceCategoryName": "Land management", + "paymentInDollars": 24023667.96, + "paymentInPercentageNationwide": 1.92, + "paymentInPercentageWithinState": 22.67 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 28034592.9, - "paymentInPercentageNationwide": 2.7, - "paymentInPercentageWithinState": 29.3 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 18833492.64, + "paymentInPercentageNationwide": 13.68, + "paymentInPercentageWithinState": 17.77 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 1578239.09, - "paymentInPercentageNationwide": 0.4, - "paymentInPercentageWithinState": 1.65 + "paymentInDollars": 16181437.26, + "paymentInPercentageNationwide": 4.78, + "paymentInPercentageWithinState": 15.27 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 932196.43, - "paymentInPercentageNationwide": 1.69, - "paymentInPercentageWithinState": 0.97 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 12399050.57, + "paymentInPercentageNationwide": 1.8, + "paymentInPercentageWithinState": 11.7 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 723219.71, - "paymentInPercentageNationwide": 0.57, - "paymentInPercentageWithinState": 0.76 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 982267.65, + "paymentInPercentageNationwide": 1.56, + "paymentInPercentageWithinState": 0.93 }, { "practiceCategoryName": "Soil testing", @@ -1132,25 +1131,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 2706747.12, + "statutePaymentInDollars": 1906246.97, "practiceCategories": [ { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 1262599.43, - "paymentInPercentageNationwide": 35.37, - "paymentInPercentageWithinState": 1.32 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 955158.1, + "paymentInPercentageNationwide": 6.49, + "paymentInPercentageWithinState": 0.9 }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 1089349.55, - "paymentInPercentageNationwide": 4.55, - "paymentInPercentageWithinState": 1.14 + "paymentInDollars": 765757.82, + "paymentInPercentageNationwide": 3.01, + "paymentInPercentageWithinState": 0.72 }, { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 354798.14, - "paymentInPercentageNationwide": 2.23, - "paymentInPercentageWithinState": 0.37 + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 185331.05, + "paymentInPercentageNationwide": 2.84, + "paymentInPercentageWithinState": 0.17 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -1165,53 +1164,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.23, - "totalPaymentInDollars": 95665233.08 + "totalPaymentInPercentageNationwide": 2.25, + "totalPaymentInDollars": 105963715.41 } ], - "South Carolina": [ + "Indiana": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 93863436.83, + "statutePaymentInDollars": 100195700.64, "practiceCategories": [ { - "practiceCategoryName": "Structural", - "paymentInDollars": 29071584.97, - "paymentInPercentageNationwide": 1.46, - "paymentInPercentageWithinState": 30.42 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 39993139.07, + "paymentInPercentageNationwide": 5.8, + "paymentInPercentageWithinState": 38.68 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 18948117.24, - "paymentInPercentageNationwide": 4.82, - "paymentInPercentageWithinState": 19.83 + "practiceCategoryName": "Structural", + "paymentInDollars": 28190846.49, + "paymentInPercentageNationwide": 1.29, + "paymentInPercentageWithinState": 27.27 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 17095789.93, - "paymentInPercentageNationwide": 1.64, - "paymentInPercentageWithinState": 17.89 + "paymentInDollars": 24203344.79, + "paymentInPercentageNationwide": 1.94, + "paymentInPercentageWithinState": 23.41 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 16831248.75, - "paymentInPercentageNationwide": 13.21, - "paymentInPercentageWithinState": 17.61 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 3221459.77, + "paymentInPercentageNationwide": 5.12, + "paymentInPercentageWithinState": 3.12 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 11186133.67, - "paymentInPercentageNationwide": 1.76, - "paymentInPercentageWithinState": 11.7 + "practiceCategoryName": "Forest management", + "paymentInDollars": 3116679.92, + "paymentInPercentageNationwide": 0.92, + "paymentInPercentageWithinState": 3.01 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 730562.27, - "paymentInPercentageNationwide": 1.33, - "paymentInPercentageWithinState": 0.76 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 1470230.6, + "paymentInPercentageNationwide": 1.07, + "paymentInPercentageWithinState": 1.42 }, { "practiceCategoryName": "Soil testing", @@ -1222,25 +1221,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1712961.82, + "statutePaymentInDollars": 3188332.59, "practiceCategories": [ - { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 929271.49, - "paymentInPercentageNationwide": 5.84, - "paymentInPercentageWithinState": 0.97 - }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 767428.28, - "paymentInPercentageNationwide": 3.21, - "paymentInPercentageWithinState": 0.8 + "paymentInDollars": 1415916.61, + "paymentInPercentageNationwide": 5.57, + "paymentInPercentageWithinState": 1.37 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 16262.05, - "paymentInPercentageNationwide": 0.46, - "paymentInPercentageWithinState": 0.02 + "paymentInDollars": 987217.27, + "paymentInPercentageNationwide": 15.12, + "paymentInPercentageWithinState": 0.95 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 785198.71, + "paymentInPercentageNationwide": 5.33, + "paymentInPercentageWithinState": 0.76 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -1255,53 +1254,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.23, - "totalPaymentInDollars": 95576398.65 + "totalPaymentInPercentageNationwide": 2.19, + "totalPaymentInDollars": 103384033.23 } ], - "Indiana": [ + "Minnesota": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 92224059.93, + "statutePaymentInDollars": 101585140.46, "practiceCategories": [ { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 38536584.09, - "paymentInPercentageNationwide": 6.06, - "paymentInPercentageWithinState": 40.51 + "practiceCategoryName": "Structural", + "paymentInDollars": 44991036.84, + "paymentInPercentageNationwide": 2.06, + "paymentInPercentageWithinState": 43.54 }, { - "practiceCategoryName": "Structural", - "paymentInDollars": 25605103.0, - "paymentInPercentageNationwide": 1.29, - "paymentInPercentageWithinState": 26.91 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 31046106.64, + "paymentInPercentageNationwide": 4.5, + "paymentInPercentageWithinState": 30.05 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 20501805.87, - "paymentInPercentageNationwide": 1.97, - "paymentInPercentageWithinState": 21.55 + "paymentInDollars": 19511740.6, + "paymentInPercentageNationwide": 1.56, + "paymentInPercentageWithinState": 18.88 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 3469950.61, - "paymentInPercentageNationwide": 0.88, - "paymentInPercentageWithinState": 3.65 + "paymentInDollars": 2198676.31, + "paymentInPercentageNationwide": 0.65, + "paymentInPercentageWithinState": 2.13 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 2826875.37, - "paymentInPercentageNationwide": 5.14, - "paymentInPercentageWithinState": 2.97 + "paymentInDollars": 2166572.49, + "paymentInPercentageNationwide": 3.44, + "paymentInPercentageWithinState": 2.1 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1283740.99, - "paymentInPercentageNationwide": 1.01, - "paymentInPercentageWithinState": 1.35 + "paymentInDollars": 1671007.58, + "paymentInPercentageNationwide": 1.21, + "paymentInPercentageWithinState": 1.62 }, { "practiceCategoryName": "Soil testing", @@ -1312,30 +1311,31 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 2915029.2199999997, + "statutePaymentInDollars": 1738167.24, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 1317657.03, - "paymentInPercentageNationwide": 5.5, - "paymentInPercentageWithinState": 1.38 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 933906.01, + "paymentInPercentageNationwide": 6.34, + "paymentInPercentageWithinState": 0.9 }, { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 915725.22, - "paymentInPercentageNationwide": 5.75, - "paymentInPercentageWithinState": 0.96 + "practiceCategoryName": "Other planning", + "paymentInDollars": 562650.82, + "paymentInPercentageNationwide": 2.21, + "paymentInPercentageWithinState": 0.54 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 681646.97, - "paymentInPercentageNationwide": 19.09, - "paymentInPercentageWithinState": 0.72 + "paymentInDollars": 232679.07, + "paymentInPercentageNationwide": 3.56, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 8931.34, + "paymentInPercentageNationwide": 1.72, + "paymentInPercentageWithinState": 0.01 }, { "practiceCategoryName": "Soil health", @@ -1345,53 +1345,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.22, - "totalPaymentInDollars": 95139089.15 + "totalPaymentInPercentageNationwide": 2.19, + "totalPaymentInDollars": 103323307.7 } ], - "Minnesota": [ + "Ohio": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 91876165.79, + "statutePaymentInDollars": 98632178.37, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 39887014.68, - "paymentInPercentageNationwide": 2.01, - "paymentInPercentageWithinState": 42.62 + "paymentInDollars": 34186267.56, + "paymentInPercentageNationwide": 1.56, + "paymentInPercentageWithinState": 33.65 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 29645178.95, - "paymentInPercentageNationwide": 4.66, - "paymentInPercentageWithinState": 31.68 + "practiceCategoryName": "Land management", + "paymentInDollars": 31734463.08, + "paymentInPercentageNationwide": 2.54, + "paymentInPercentageWithinState": 31.24 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 16827474.48, - "paymentInPercentageNationwide": 1.62, - "paymentInPercentageWithinState": 17.98 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 29597009.18, + "paymentInPercentageNationwide": 4.29, + "paymentInPercentageWithinState": 29.14 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2447972.43, - "paymentInPercentageNationwide": 0.62, - "paymentInPercentageWithinState": 2.62 + "paymentInDollars": 1405759.31, + "paymentInPercentageNationwide": 0.42, + "paymentInPercentageWithinState": 1.38 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 1570741.63, - "paymentInPercentageNationwide": 1.23, - "paymentInPercentageWithinState": 1.68 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 1017353.0, + "paymentInPercentageNationwide": 1.62, + "paymentInPercentageWithinState": 1.0 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 1497783.62, - "paymentInPercentageNationwide": 2.72, - "paymentInPercentageWithinState": 1.6 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 691326.24, + "paymentInPercentageNationwide": 0.5, + "paymentInPercentageWithinState": 0.68 }, { "practiceCategoryName": "Soil testing", @@ -1402,31 +1402,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1704788.8900000001, + "statutePaymentInDollars": 2952024.48, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 1025780.18, - "paymentInPercentageNationwide": 6.44, - "paymentInPercentageWithinState": 1.1 + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 1422142.6, + "paymentInPercentageNationwide": 21.78, + "paymentInPercentageWithinState": 1.4 }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 577309.3, - "paymentInPercentageNationwide": 2.41, - "paymentInPercentageWithinState": 0.62 + "paymentInDollars": 1179797.04, + "paymentInPercentageNationwide": 4.64, + "paymentInPercentageWithinState": 1.16 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 92768.07, - "paymentInPercentageNationwide": 2.6, - "paymentInPercentageWithinState": 0.1 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 350084.84, + "paymentInPercentageNationwide": 2.38, + "paymentInPercentageWithinState": 0.34 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 8931.34, - "paymentInPercentageNationwide": 1.82, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Soil health", @@ -1436,8 +1435,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.19, - "totalPaymentInDollars": 93580954.68 + "totalPaymentInPercentageNationwide": 2.16, + "totalPaymentInDollars": 101584202.85 } ], "Utah": [ @@ -1446,75 +1445,74 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 91373287.28000002, + "statutePaymentInDollars": 100862127.93, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 60740084.92, - "paymentInPercentageNationwide": 3.06, - "paymentInPercentageWithinState": 66.42 + "paymentInDollars": 67647486.76, + "paymentInPercentageNationwide": 3.09, + "paymentInPercentageWithinState": 67.02 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 19227580.95, - "paymentInPercentageNationwide": 1.85, - "paymentInPercentageWithinState": 21.02 + "paymentInDollars": 21336784.87, + "paymentInPercentageNationwide": 1.71, + "paymentInPercentageWithinState": 21.14 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 8449092.19, - "paymentInPercentageNationwide": 2.15, - "paymentInPercentageWithinState": 9.24 + "paymentInDollars": 7462868.37, + "paymentInPercentageNationwide": 2.21, + "paymentInPercentageWithinState": 7.39 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 1486098.65, - "paymentInPercentageNationwide": 1.17, - "paymentInPercentageWithinState": 1.62 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 2729872.15, + "paymentInPercentageNationwide": 0.4, + "paymentInPercentageWithinState": 2.7 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 1336442.76, - "paymentInPercentageNationwide": 0.21, - "paymentInPercentageWithinState": 1.46 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 1552965.92, + "paymentInPercentageNationwide": 1.13, + "paymentInPercentageWithinState": 1.54 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 133689.03, - "paymentInPercentageNationwide": 0.24, - "paymentInPercentageWithinState": 0.15 + "paymentInDollars": 132149.86, + "paymentInPercentageNationwide": 0.21, + "paymentInPercentageWithinState": 0.13 }, { "practiceCategoryName": "Soil testing", - "paymentInDollars": 298.78, - "paymentInPercentageNationwide": 9.88, + "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 79985.58, + "statutePaymentInDollars": 77614.68, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 54970.47, - "paymentInPercentageNationwide": 0.23, - "paymentInPercentageWithinState": 0.06 + "paymentInDollars": 52599.57, + "paymentInPercentageNationwide": 0.21, + "paymentInPercentageWithinState": 0.05 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 25015.11, - "paymentInPercentageNationwide": 0.16, - "paymentInPercentageWithinState": 0.03 + "paymentInPercentageNationwide": 0.17, + "paymentInPercentageWithinState": 0.02 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -1527,7 +1525,7 @@ } ], "totalPaymentInPercentageNationwide": 2.14, - "totalPaymentInDollars": 91453272.86 + "totalPaymentInDollars": 100939742.61 } ], "Alabama": [ @@ -1536,42 +1534,42 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 90561771.65, + "statutePaymentInDollars": 99286795.18, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 27721175.56, - "paymentInPercentageNationwide": 2.67, - "paymentInPercentageWithinState": 30.48 + "paymentInDollars": 37952705.5, + "paymentInPercentageNationwide": 3.04, + "paymentInPercentageWithinState": 38.08 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 27474481.76, - "paymentInPercentageNationwide": 6.99, - "paymentInPercentageWithinState": 30.21 + "practiceCategoryName": "Structural", + "paymentInDollars": 22697637.28, + "paymentInPercentageNationwide": 1.04, + "paymentInPercentageWithinState": 22.77 }, { - "practiceCategoryName": "Structural", - "paymentInDollars": 20309813.5, - "paymentInPercentageNationwide": 1.02, - "paymentInPercentageWithinState": 22.33 + "practiceCategoryName": "Forest management", + "paymentInDollars": 21869834.86, + "paymentInPercentageNationwide": 6.46, + "paymentInPercentageWithinState": 21.94 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 11198074.04, - "paymentInPercentageNationwide": 1.76, - "paymentInPercentageWithinState": 12.31 + "paymentInDollars": 12249849.46, + "paymentInPercentageNationwide": 1.78, + "paymentInPercentageWithinState": 12.29 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 3832907.45, - "paymentInPercentageNationwide": 3.01, - "paymentInPercentageWithinState": 4.21 + "paymentInDollars": 4491448.74, + "paymentInPercentageNationwide": 3.26, + "paymentInPercentageWithinState": 4.51 }, { "practiceCategoryName": "Soil remediation", "paymentInDollars": 25319.34, - "paymentInPercentageNationwide": 0.05, + "paymentInPercentageNationwide": 0.04, "paymentInPercentageWithinState": 0.03 }, { @@ -1583,27 +1581,27 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 389890.69999999995, + "statutePaymentInDollars": 375610.95, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 235872.96, - "paymentInPercentageNationwide": 0.99, - "paymentInPercentageWithinState": 0.26 + "paymentInDollars": 231504.26, + "paymentInPercentageNationwide": 0.91, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 154017.74, - "paymentInPercentageNationwide": 0.97, - "paymentInPercentageWithinState": 0.17 + "paymentInDollars": 144106.69, + "paymentInPercentageNationwide": 0.98, + "paymentInPercentageWithinState": 0.14 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -1616,52 +1614,52 @@ } ], "totalPaymentInPercentageNationwide": 2.12, - "totalPaymentInDollars": 90951662.35 + "totalPaymentInDollars": 99662406.13 } ], - "New Mexico": [ + "Montana": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 89189802.46, + "statutePaymentInDollars": 96613812.81, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 50832596.17, - "paymentInPercentageNationwide": 2.56, - "paymentInPercentageWithinState": 56.97 + "paymentInDollars": 45172618.26, + "paymentInPercentageNationwide": 2.07, + "paymentInPercentageWithinState": 46.72 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 19767018.19, - "paymentInPercentageNationwide": 1.9, - "paymentInPercentageWithinState": 22.15 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 9882017.75, - "paymentInPercentageNationwide": 2.52, - "paymentInPercentageWithinState": 11.07 + "paymentInDollars": 30523576.7, + "paymentInPercentageNationwide": 2.44, + "paymentInPercentageWithinState": 31.57 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 8450670.77, - "paymentInPercentageNationwide": 1.33, - "paymentInPercentageWithinState": 9.47 + "paymentInDollars": 11206329.83, + "paymentInPercentageNationwide": 1.63, + "paymentInPercentageWithinState": 11.59 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 160513.76, - "paymentInPercentageNationwide": 0.13, - "paymentInPercentageWithinState": 0.18 + "practiceCategoryName": "Forest management", + "paymentInDollars": 8485905.68, + "paymentInPercentageNationwide": 2.51, + "paymentInPercentageWithinState": 8.78 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 96985.82, - "paymentInPercentageNationwide": 0.18, - "paymentInPercentageWithinState": 0.11 + "paymentInDollars": 642273.73, + "paymentInPercentageNationwide": 1.02, + "paymentInPercentageWithinState": 0.66 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 583108.61, + "paymentInPercentageNationwide": 0.42, + "paymentInPercentageWithinState": 0.6 }, { "practiceCategoryName": "Soil testing", @@ -1672,27 +1670,26 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 42889.47, + "statutePaymentInDollars": 76968.73, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 41282.16, - "paymentInPercentageNationwide": 0.26, - "paymentInPercentageWithinState": 0.05 + "practiceCategoryName": "Other planning", + "paymentInDollars": 76968.73, + "paymentInPercentageNationwide": 0.3, + "paymentInPercentageWithinState": 0.08 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 1607.31, - "paymentInPercentageNationwide": 0.01, + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -1704,53 +1701,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 2.08, - "totalPaymentInDollars": 89232691.93 + "totalPaymentInPercentageNationwide": 2.05, + "totalPaymentInDollars": 96690781.54 } ], - "Louisiana": [ + "Oregon": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 83612096.56, + "statutePaymentInDollars": 95355726.63, "practiceCategories": [ { - "practiceCategoryName": "Land management", - "paymentInDollars": 32279839.95, - "paymentInPercentageNationwide": 3.11, - "paymentInPercentageWithinState": 38.58 + "practiceCategoryName": "Structural", + "paymentInDollars": 33025602.03, + "paymentInPercentageNationwide": 1.51, + "paymentInPercentageWithinState": 34.4 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 21875932.78, - "paymentInPercentageNationwide": 3.44, - "paymentInPercentageWithinState": 26.15 + "practiceCategoryName": "Land management", + "paymentInDollars": 30765582.74, + "paymentInPercentageNationwide": 2.46, + "paymentInPercentageWithinState": 32.05 }, { - "practiceCategoryName": "Structural", - "paymentInDollars": 21213720.53, - "paymentInPercentageNationwide": 1.07, - "paymentInPercentageWithinState": 25.36 + "practiceCategoryName": "Forest management", + "paymentInDollars": 27549200.95, + "paymentInPercentageNationwide": 8.14, + "paymentInPercentageWithinState": 28.7 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 6282490.57, - "paymentInPercentageNationwide": 1.6, - "paymentInPercentageWithinState": 7.51 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 2919976.1, + "paymentInPercentageNationwide": 0.42, + "paymentInPercentageWithinState": 3.04 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1107814.7, - "paymentInPercentageNationwide": 0.87, - "paymentInPercentageWithinState": 1.32 + "paymentInDollars": 653690.14, + "paymentInPercentageNationwide": 0.47, + "paymentInPercentageWithinState": 0.68 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 852298.03, - "paymentInPercentageNationwide": 1.55, - "paymentInPercentageWithinState": 1.02 + "paymentInDollars": 441674.67, + "paymentInPercentageNationwide": 0.7, + "paymentInPercentageWithinState": 0.46 }, { "practiceCategoryName": "Soil testing", @@ -1761,85 +1758,86 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 54054.18, + "statutePaymentInDollars": 641633.43, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 51703.38, - "paymentInPercentageNationwide": 0.22, - "paymentInPercentageWithinState": 0.06 + "paymentInDollars": 333643.56, + "paymentInPercentageNationwide": 1.31, + "paymentInPercentageWithinState": 0.35 }, { - "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 2350.8, - "paymentInPercentageNationwide": 0.48, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 224884.87, + "paymentInPercentageNationwide": 1.53, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 83105.0, + "paymentInPercentageNationwide": 1.27, + "paymentInPercentageWithinState": 0.09 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.95, - "totalPaymentInDollars": 83666150.74 + "totalPaymentInPercentageNationwide": 2.04, + "totalPaymentInDollars": 95997360.06 } ], - "Montana": [ + "New Mexico": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 83381759.23, + "statutePaymentInDollars": 95561344.13, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 41074007.68, - "paymentInPercentageNationwide": 2.07, - "paymentInPercentageWithinState": 49.21 + "paymentInDollars": 54208750.7, + "paymentInPercentageNationwide": 2.48, + "paymentInPercentageWithinState": 56.7 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 23357026.05, - "paymentInPercentageNationwide": 2.25, - "paymentInPercentageWithinState": 27.99 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 9893363.56, - "paymentInPercentageNationwide": 2.52, - "paymentInPercentageWithinState": 11.85 + "paymentInDollars": 22808456.69, + "paymentInPercentageNationwide": 1.83, + "paymentInPercentageWithinState": 23.86 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 7967444.92, - "paymentInPercentageNationwide": 1.25, - "paymentInPercentageWithinState": 9.55 + "paymentInDollars": 9199063.79, + "paymentInPercentageNationwide": 1.33, + "paymentInPercentageWithinState": 9.62 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 560016.94, - "paymentInPercentageNationwide": 1.02, - "paymentInPercentageWithinState": 0.67 + "practiceCategoryName": "Forest management", + "paymentInDollars": 9101234.76, + "paymentInPercentageNationwide": 2.69, + "paymentInPercentageWithinState": 9.52 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 529900.08, - "paymentInPercentageNationwide": 0.42, - "paymentInPercentageWithinState": 0.63 + "paymentInDollars": 147217.19, + "paymentInPercentageNationwide": 0.11, + "paymentInPercentageWithinState": 0.15 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 96621.0, + "paymentInPercentageNationwide": 0.15, + "paymentInPercentageWithinState": 0.1 }, { "practiceCategoryName": "Soil testing", @@ -1850,17 +1848,18 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 76968.73, + "statutePaymentInDollars": 42889.47, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 76968.73, - "paymentInPercentageNationwide": 0.32, - "paymentInPercentageWithinState": 0.09 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 41282.16, + "paymentInPercentageNationwide": 0.28, + "paymentInPercentageWithinState": 0.04 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, + "practiceCategoryName": "Other planning", + "paymentInDollars": 1607.31, + "paymentInPercentageNationwide": 0.01, "paymentInPercentageWithinState": 0.0 }, { @@ -1869,65 +1868,65 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.95, - "totalPaymentInDollars": 83458727.96 + "totalPaymentInPercentageNationwide": 2.03, + "totalPaymentInDollars": 95604233.6 } ], - "Oregon": [ + "Oklahoma": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 82451949.14999999, + "statutePaymentInDollars": 94471395.84, "practiceCategories": [ { - "practiceCategoryName": "Forest management", - "paymentInDollars": 31348934.05, - "paymentInPercentageNationwide": 7.98, - "paymentInPercentageWithinState": 37.75 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 37117292.64, + "paymentInPercentageNationwide": 5.38, + "paymentInPercentageWithinState": 39.27 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 27625338.18, - "paymentInPercentageNationwide": 1.39, - "paymentInPercentageWithinState": 33.27 + "paymentInDollars": 24628810.15, + "paymentInPercentageNationwide": 1.13, + "paymentInPercentageWithinState": 26.06 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 20309767.42, - "paymentInPercentageNationwide": 1.95, - "paymentInPercentageWithinState": 24.46 + "paymentInDollars": 24008266.74, + "paymentInPercentageNationwide": 1.92, + "paymentInPercentageWithinState": 25.4 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 2140847.64, - "paymentInPercentageNationwide": 0.34, - "paymentInPercentageWithinState": 2.58 + "practiceCategoryName": "Forest management", + "paymentInDollars": 6180103.56, + "paymentInPercentageNationwide": 1.83, + "paymentInPercentageWithinState": 6.54 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 568514.35, - "paymentInPercentageNationwide": 0.45, - "paymentInPercentageWithinState": 0.68 + "paymentInDollars": 1656557.91, + "paymentInPercentageNationwide": 1.2, + "paymentInPercentageWithinState": 1.75 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 458547.51, - "paymentInPercentageNationwide": 0.83, - "paymentInPercentageWithinState": 0.55 + "paymentInDollars": 880364.84, + "paymentInPercentageNationwide": 1.4, + "paymentInPercentageWithinState": 0.93 }, { "practiceCategoryName": "Soil testing", @@ -1938,27 +1937,26 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 585336.85, + "statutePaymentInDollars": 45674.34, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 313980.73, - "paymentInPercentageNationwide": 1.31, - "paymentInPercentageWithinState": 0.38 + "paymentInDollars": 45674.34, + "paymentInPercentageNationwide": 0.18, + "paymentInPercentageWithinState": 0.05 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 271356.12, - "paymentInPercentageNationwide": 1.7, - "paymentInPercentageWithinState": 0.33 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -1970,53 +1968,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.94, - "totalPaymentInDollars": 83037286.0 + "totalPaymentInPercentageNationwide": 2.01, + "totalPaymentInDollars": 94517070.18 } ], - "Virginia": [ + "North Carolina": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 81199142.75, + "statutePaymentInDollars": 91982703.02, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 32516682.34, - "paymentInPercentageNationwide": 1.64, - "paymentInPercentageWithinState": 39.74 + "paymentInDollars": 62739110.17, + "paymentInPercentageNationwide": 2.87, + "paymentInPercentageWithinState": 67.68 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 28101287.8, - "paymentInPercentageNationwide": 2.7, - "paymentInPercentageWithinState": 34.35 + "paymentInDollars": 10670873.11, + "paymentInPercentageNationwide": 0.85, + "paymentInPercentageWithinState": 11.51 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 14541423.54, - "paymentInPercentageNationwide": 2.29, - "paymentInPercentageWithinState": 17.77 - }, - { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 3593551.19, - "paymentInPercentageNationwide": 6.53, - "paymentInPercentageWithinState": 4.39 + "paymentInDollars": 9499495.63, + "paymentInPercentageNationwide": 1.38, + "paymentInPercentageWithinState": 10.25 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2230380.39, - "paymentInPercentageNationwide": 0.57, - "paymentInPercentageWithinState": 2.73 + "paymentInDollars": 4296760.68, + "paymentInPercentageNationwide": 1.27, + "paymentInPercentageWithinState": 4.64 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 215817.49, - "paymentInPercentageNationwide": 0.17, - "paymentInPercentageWithinState": 0.26 + "paymentInDollars": 4169740.82, + "paymentInPercentageNationwide": 3.03, + "paymentInPercentageWithinState": 4.5 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 606722.61, + "paymentInPercentageNationwide": 0.96, + "paymentInPercentageWithinState": 0.65 }, { "practiceCategoryName": "Soil testing", @@ -2027,85 +2025,87 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 619291.0800000001, + "statutePaymentInDollars": 713457.96, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 576893.53, - "paymentInPercentageNationwide": 2.41, - "paymentInPercentageWithinState": 0.71 + "paymentInDollars": 478290.08, + "paymentInPercentageNationwide": 1.88, + "paymentInPercentageWithinState": 0.52 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 149461.56, + "paymentInPercentageNationwide": 1.02, + "paymentInPercentageWithinState": 0.16 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 42397.55, - "paymentInPercentageNationwide": 1.19, - "paymentInPercentageWithinState": 0.05 + "paymentInDollars": 79474.33, + "paymentInPercentageNationwide": 1.22, + "paymentInPercentageWithinState": 0.09 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 6231.99, + "paymentInPercentageNationwide": 1.2, + "paymentInPercentageWithinState": 0.01 }, { "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 - }, - { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.91, - "totalPaymentInDollars": 81818433.83 + "totalPaymentInPercentageNationwide": 1.97, + "totalPaymentInDollars": 92696160.98 } ], - "North Carolina": [ + "Virginia": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 80511675.49, + "statutePaymentInDollars": 90163248.17, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 54738028.3, - "paymentInPercentageNationwide": 2.76, - "paymentInPercentageWithinState": 67.41 + "paymentInDollars": 36087096.14, + "paymentInPercentageNationwide": 1.65, + "paymentInPercentageWithinState": 39.73 + }, + { + "practiceCategoryName": "Land management", + "paymentInDollars": 31609054.25, + "paymentInPercentageNationwide": 2.53, + "paymentInPercentageWithinState": 34.8 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 8041928.98, - "paymentInPercentageNationwide": 1.26, - "paymentInPercentageWithinState": 9.9 + "paymentInDollars": 16114573.3, + "paymentInPercentageNationwide": 2.34, + "paymentInPercentageWithinState": 17.74 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 7743245.23, - "paymentInPercentageNationwide": 0.74, - "paymentInPercentageWithinState": 9.54 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 4155634.71, + "paymentInPercentageNationwide": 6.6, + "paymentInPercentageWithinState": 4.57 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 5539249.0, - "paymentInPercentageNationwide": 1.41, - "paymentInPercentageWithinState": 6.82 + "paymentInDollars": 1988230.37, + "paymentInPercentageNationwide": 0.59, + "paymentInPercentageWithinState": 2.19 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 3995761.68, - "paymentInPercentageNationwide": 3.14, - "paymentInPercentageWithinState": 4.92 - }, - { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 453462.3, - "paymentInPercentageNationwide": 0.82, - "paymentInPercentageWithinState": 0.56 + "paymentInDollars": 208659.4, + "paymentInPercentageNationwide": 0.15, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Soil testing", @@ -2116,31 +2116,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 688122.38, + "statutePaymentInDollars": 673513.01, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 468642.75, - "paymentInPercentageNationwide": 1.96, - "paymentInPercentageWithinState": 0.58 + "paymentInDollars": 611284.46, + "paymentInPercentageNationwide": 2.41, + "paymentInPercentageWithinState": 0.67 }, { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 204681.56, - "paymentInPercentageNationwide": 1.29, - "paymentInPercentageWithinState": 0.25 + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 42397.55, + "paymentInPercentageNationwide": 0.65, + "paymentInPercentageWithinState": 0.05 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 8566.08, - "paymentInPercentageNationwide": 0.24, - "paymentInPercentageWithinState": 0.01 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 19831.0, + "paymentInPercentageNationwide": 0.13, + "paymentInPercentageWithinState": 0.02 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 6231.99, - "paymentInPercentageNationwide": 1.27, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Soil health", @@ -2150,53 +2149,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.9, - "totalPaymentInDollars": 81199797.87 + "totalPaymentInPercentageNationwide": 1.93, + "totalPaymentInDollars": 90836761.18 } ], - "Oklahoma": [ + "Louisiana": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 81081083.32000001, + "statutePaymentInDollars": 88449539.49, "practiceCategories": [ { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 30321868.01, - "paymentInPercentageNationwide": 4.77, - "paymentInPercentageWithinState": 37.37 + "practiceCategoryName": "Land management", + "paymentInDollars": 36553816.14, + "paymentInPercentageNationwide": 2.93, + "paymentInPercentageWithinState": 41.31 }, { - "practiceCategoryName": "Structural", - "paymentInDollars": 20845225.84, - "paymentInPercentageNationwide": 1.05, - "paymentInPercentageWithinState": 25.69 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 22374884.05, + "paymentInPercentageNationwide": 3.25, + "paymentInPercentageWithinState": 25.28 }, { - "practiceCategoryName": "Land management", - "paymentInDollars": 20729519.61, - "paymentInPercentageNationwide": 1.99, - "paymentInPercentageWithinState": 25.55 + "practiceCategoryName": "Structural", + "paymentInDollars": 22175232.2, + "paymentInPercentageNationwide": 1.01, + "paymentInPercentageWithinState": 25.06 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 6711429.32, - "paymentInPercentageNationwide": 1.71, - "paymentInPercentageWithinState": 8.27 + "paymentInDollars": 5371533.82, + "paymentInPercentageNationwide": 1.59, + "paymentInPercentageWithinState": 6.07 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1693854.59, - "paymentInPercentageNationwide": 1.33, - "paymentInPercentageWithinState": 2.09 + "paymentInDollars": 1080551.66, + "paymentInPercentageNationwide": 0.78, + "paymentInPercentageWithinState": 1.22 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 779185.95, + "paymentInDollars": 893521.62, "paymentInPercentageNationwide": 1.42, - "paymentInPercentageWithinState": 0.96 + "paymentInPercentageWithinState": 1.01 }, { "practiceCategoryName": "Soil testing", @@ -2207,16 +2206,16 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 50226.52, + "statutePaymentInDollars": 46868.6, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 50226.52, - "paymentInPercentageNationwide": 0.21, - "paymentInPercentageWithinState": 0.06 + "paymentInDollars": 46868.6, + "paymentInPercentageNationwide": 0.18, + "paymentInPercentageWithinState": 0.05 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -2226,20 +2225,20 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.9, - "totalPaymentInDollars": 81131309.84 + "totalPaymentInPercentageNationwide": 1.88, + "totalPaymentInDollars": 88496408.09 } ], "Pennsylvania": [ @@ -2248,43 +2247,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 76929773.91999999, + "statutePaymentInDollars": 82797816.04, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 44566463.0, - "paymentInPercentageNationwide": 2.24, - "paymentInPercentageWithinState": 57.18 + "paymentInDollars": 47610686.78, + "paymentInPercentageNationwide": 2.18, + "paymentInPercentageWithinState": 56.74 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 20968873.52, - "paymentInPercentageNationwide": 2.02, - "paymentInPercentageWithinState": 26.9 + "paymentInDollars": 23601806.59, + "paymentInPercentageNationwide": 1.89, + "paymentInPercentageWithinState": 28.13 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 7159023.07, - "paymentInPercentageNationwide": 1.13, - "paymentInPercentageWithinState": 9.18 + "paymentInDollars": 7488175.14, + "paymentInPercentageNationwide": 1.09, + "paymentInPercentageWithinState": 8.92 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2579934.12, - "paymentInPercentageNationwide": 0.66, - "paymentInPercentageWithinState": 3.31 + "paymentInDollars": 2338858.81, + "paymentInPercentageNationwide": 0.69, + "paymentInPercentageWithinState": 2.79 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1369325.71, - "paymentInPercentageNationwide": 1.07, - "paymentInPercentageWithinState": 1.76 + "paymentInDollars": 1419537.34, + "paymentInPercentageNationwide": 1.03, + "paymentInPercentageWithinState": 1.69 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 286154.5, - "paymentInPercentageNationwide": 0.52, - "paymentInPercentageWithinState": 0.37 + "paymentInDollars": 338751.38, + "paymentInPercentageNationwide": 0.54, + "paymentInPercentageWithinState": 0.4 }, { "practiceCategoryName": "Soil testing", @@ -2295,30 +2294,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1016764.64, + "statutePaymentInDollars": 1109483.01, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 505829.66, - "paymentInPercentageNationwide": 3.18, - "paymentInPercentageWithinState": 0.65 + "practiceCategoryName": "Other planning", + "paymentInDollars": 537034.55, + "paymentInPercentageNationwide": 2.11, + "paymentInPercentageWithinState": 0.64 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 506863.14, - "paymentInPercentageNationwide": 2.12, - "paymentInPercentageWithinState": 0.65 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 455312.62, + "paymentInPercentageNationwide": 3.09, + "paymentInPercentageWithinState": 0.54 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 3640.5, - "paymentInPercentageNationwide": 0.1, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 116704.5, + "paymentInPercentageNationwide": 1.79, + "paymentInPercentageWithinState": 0.14 }, { "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 431.34, - "paymentInPercentageNationwide": 0.09, + "paymentInPercentageNationwide": 0.08, "paymentInPercentageWithinState": 0.0 }, { @@ -2329,8 +2328,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.82, - "totalPaymentInDollars": 77946538.56 + "totalPaymentInPercentageNationwide": 1.78, + "totalPaymentInDollars": 83907299.05 } ], "Florida": [ @@ -2339,43 +2338,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 72673029.72999999, + "statutePaymentInDollars": 80791994.73, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 26336786.99, - "paymentInPercentageNationwide": 2.53, - "paymentInPercentageWithinState": 36.11 + "paymentInDollars": 34987434.88, + "paymentInPercentageNationwide": 2.8, + "paymentInPercentageWithinState": 43.16 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 23450731.63, - "paymentInPercentageNationwide": 1.18, - "paymentInPercentageWithinState": 32.15 + "paymentInDollars": 25150629.01, + "paymentInPercentageNationwide": 1.15, + "paymentInPercentageWithinState": 31.02 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 12249964.99, - "paymentInPercentageNationwide": 3.12, - "paymentInPercentageWithinState": 16.8 + "paymentInDollars": 9372367.53, + "paymentInPercentageNationwide": 2.77, + "paymentInPercentageWithinState": 11.56 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 7534349.24, - "paymentInPercentageNationwide": 1.18, - "paymentInPercentageWithinState": 10.33 + "paymentInDollars": 7942923.85, + "paymentInPercentageNationwide": 1.15, + "paymentInPercentageWithinState": 9.8 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 2268983.63, - "paymentInPercentageNationwide": 1.78, - "paymentInPercentageWithinState": 3.11 + "paymentInDollars": 2344096.54, + "paymentInPercentageNationwide": 1.7, + "paymentInPercentageWithinState": 2.89 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 832213.25, - "paymentInPercentageNationwide": 1.51, - "paymentInPercentageWithinState": 1.14 + "paymentInDollars": 994542.92, + "paymentInPercentageNationwide": 1.58, + "paymentInPercentageWithinState": 1.23 }, { "practiceCategoryName": "Soil testing", @@ -2386,27 +2385,27 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 260336.02, + "statutePaymentInDollars": 276017.67, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 197453.78, - "paymentInPercentageNationwide": 0.82, + "paymentInDollars": 220676.35, + "paymentInPercentageNationwide": 0.87, "paymentInPercentageWithinState": 0.27 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 62882.24, - "paymentInPercentageNationwide": 0.4, - "paymentInPercentageWithinState": 0.09 + "paymentInDollars": 55341.32, + "paymentInPercentageNationwide": 0.38, + "paymentInPercentageWithinState": 0.07 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -2418,53 +2417,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.7, - "totalPaymentInDollars": 72933365.75 + "totalPaymentInPercentageNationwide": 1.72, + "totalPaymentInDollars": 81068012.4 } ], - "Michigan": [ + "Idaho": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 65675369.58, + "statutePaymentInDollars": 73125376.16, "practiceCategories": [ - { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 24381138.27, - "paymentInPercentageNationwide": 3.83, - "paymentInPercentageWithinState": 35.43 - }, { "practiceCategoryName": "Structural", - "paymentInDollars": 22744987.69, - "paymentInPercentageNationwide": 1.15, - "paymentInPercentageWithinState": 33.06 + "paymentInDollars": 44853734.43, + "paymentInPercentageNationwide": 2.05, + "paymentInPercentageWithinState": 61.15 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 12145504.33, - "paymentInPercentageNationwide": 1.17, - "paymentInPercentageWithinState": 17.65 + "paymentInDollars": 16141673.97, + "paymentInPercentageNationwide": 1.29, + "paymentInPercentageWithinState": 22.0 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 2869759.46, - "paymentInPercentageNationwide": 2.25, - "paymentInPercentageWithinState": 4.17 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 4606301.26, + "paymentInPercentageNationwide": 0.67, + "paymentInPercentageWithinState": 6.28 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2729025.15, - "paymentInPercentageNationwide": 0.69, - "paymentInPercentageWithinState": 3.97 + "paymentInDollars": 4112749.3, + "paymentInPercentageNationwide": 1.22, + "paymentInPercentageWithinState": 5.61 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 804954.68, - "paymentInPercentageNationwide": 1.46, - "paymentInPercentageWithinState": 1.17 + "paymentInDollars": 2327851.21, + "paymentInPercentageNationwide": 3.7, + "paymentInPercentageWithinState": 3.17 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 1083065.99, + "paymentInPercentageNationwide": 0.79, + "paymentInPercentageWithinState": 1.48 }, { "practiceCategoryName": "Soil testing", @@ -2475,31 +2474,28 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 3130817.18, + "statutePaymentInDollars": 230914.15, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 2288455.06, - "paymentInPercentageNationwide": 9.56, - "paymentInPercentageWithinState": 3.33 + "paymentInDollars": 230914.15, + "paymentInPercentageNationwide": 0.91, + "paymentInPercentageWithinState": 0.31 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 767339.77, - "paymentInPercentageNationwide": 4.82, - "paymentInPercentageWithinState": 1.12 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 59017.99, - "paymentInPercentageNationwide": 1.65, - "paymentInPercentageWithinState": 0.09 + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 16004.36, - "paymentInPercentageNationwide": 3.26, - "paymentInPercentageWithinState": 0.02 + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Soil health", @@ -2509,53 +2505,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.61, - "totalPaymentInDollars": 68806186.76 + "totalPaymentInPercentageNationwide": 1.56, + "totalPaymentInDollars": 73356290.31 } ], - "Idaho": [ + "North Dakota": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 66874479.8, + "statutePaymentInDollars": 73436635.25, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 41424669.65, - "paymentInPercentageNationwide": 2.09, - "paymentInPercentageWithinState": 61.74 + "paymentInDollars": 28610209.41, + "paymentInPercentageNationwide": 1.31, + "paymentInPercentageWithinState": 38.88 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 13495860.87, - "paymentInPercentageNationwide": 1.3, - "paymentInPercentageWithinState": 20.11 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 4521772.0, - "paymentInPercentageNationwide": 1.15, - "paymentInPercentageWithinState": 6.74 + "paymentInDollars": 20572988.7, + "paymentInPercentageNationwide": 1.65, + "paymentInPercentageWithinState": 27.96 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 4306604.04, - "paymentInPercentageNationwide": 0.68, - "paymentInPercentageWithinState": 6.42 + "paymentInDollars": 15623775.33, + "paymentInPercentageNationwide": 2.27, + "paymentInPercentageWithinState": 21.23 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 2083407.1, - "paymentInPercentageNationwide": 3.79, - "paymentInPercentageWithinState": 3.11 + "paymentInDollars": 7374399.85, + "paymentInPercentageNationwide": 11.71, + "paymentInPercentageWithinState": 10.02 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 879748.88, + "paymentInPercentageNationwide": 0.26, + "paymentInPercentageWithinState": 1.2 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1042166.14, - "paymentInPercentageNationwide": 0.82, - "paymentInPercentageWithinState": 1.55 + "paymentInDollars": 375513.08, + "paymentInPercentageNationwide": 0.27, + "paymentInPercentageWithinState": 0.51 }, { "practiceCategoryName": "Soil testing", @@ -2566,18 +2562,19 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 222472.45, + "statutePaymentInDollars": 148202.56, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 222472.45, - "paymentInPercentageNationwide": 0.93, - "paymentInPercentageWithinState": 0.33 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 132308.06, + "paymentInPercentageNationwide": 0.9, + "paymentInPercentageWithinState": 0.18 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Other planning", + "paymentInDollars": 15894.5, + "paymentInPercentageNationwide": 0.06, + "paymentInPercentageWithinState": 0.02 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -2585,65 +2582,65 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.57, - "totalPaymentInDollars": 67096952.25 + "totalPaymentInPercentageNationwide": 1.56, + "totalPaymentInDollars": 73584837.81 } ], - "Washington": [ + "Michigan": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 64582830.8, + "statutePaymentInDollars": 69064539.23, "practiceCategories": [ + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 24950908.88, + "paymentInPercentageNationwide": 3.62, + "paymentInPercentageWithinState": 34.43 + }, { "practiceCategoryName": "Structural", - "paymentInDollars": 30492287.03, - "paymentInPercentageNationwide": 1.54, - "paymentInPercentageWithinState": 46.54 + "paymentInDollars": 23832049.65, + "paymentInPercentageNationwide": 1.09, + "paymentInPercentageWithinState": 32.88 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 11127484.01, - "paymentInPercentageNationwide": 1.07, - "paymentInPercentageWithinState": 16.98 + "paymentInDollars": 13802689.92, + "paymentInPercentageNationwide": 1.11, + "paymentInPercentageWithinState": 19.04 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 10594094.62, - "paymentInPercentageNationwide": 19.25, - "paymentInPercentageWithinState": 16.17 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 3094496.81, + "paymentInPercentageNationwide": 2.25, + "paymentInPercentageWithinState": 4.27 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 9150676.0, - "paymentInPercentageNationwide": 2.33, - "paymentInPercentageWithinState": 13.97 - }, - { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 2451536.39, - "paymentInPercentageNationwide": 0.39, - "paymentInPercentageWithinState": 3.74 + "paymentInDollars": 2351325.31, + "paymentInPercentageNationwide": 0.69, + "paymentInPercentageWithinState": 3.24 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 766752.75, - "paymentInPercentageNationwide": 0.6, - "paymentInPercentageWithinState": 1.17 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 1033068.66, + "paymentInPercentageNationwide": 1.64, + "paymentInPercentageWithinState": 1.43 }, { "practiceCategoryName": "Soil testing", @@ -2654,30 +2651,31 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 934636.12, + "statutePaymentInDollars": 3411939.07, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 517394.25, - "paymentInPercentageNationwide": 2.16, - "paymentInPercentageWithinState": 0.79 + "paymentInDollars": 2481635.06, + "paymentInPercentageNationwide": 9.77, + "paymentInPercentageWithinState": 3.42 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 411321.87, - "paymentInPercentageNationwide": 2.58, - "paymentInPercentageWithinState": 0.63 + "paymentInDollars": 726238.69, + "paymentInPercentageNationwide": 4.93, + "paymentInPercentageWithinState": 1.0 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 5920.0, - "paymentInPercentageNationwide": 0.17, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 192262.16, + "paymentInPercentageNationwide": 2.94, + "paymentInPercentageWithinState": 0.27 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 11803.16, + "paymentInPercentageNationwide": 2.28, + "paymentInPercentageWithinState": 0.02 }, { "practiceCategoryName": "Soil health", @@ -2687,53 +2685,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.53, - "totalPaymentInDollars": 65517466.92 + "totalPaymentInPercentageNationwide": 1.54, + "totalPaymentInDollars": 72476478.3 } ], - "North Dakota": [ + "Washington": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 64417476.21, + "statutePaymentInDollars": 70023199.96, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 26871394.19, - "paymentInPercentageNationwide": 1.35, - "paymentInPercentageWithinState": 41.62 + "paymentInDollars": 33217835.45, + "paymentInPercentageNationwide": 1.52, + "paymentInPercentageWithinState": 46.79 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 17105745.12, - "paymentInPercentageNationwide": 1.65, - "paymentInPercentageWithinState": 26.49 - }, - { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 13554906.21, - "paymentInPercentageNationwide": 2.13, - "paymentInPercentageWithinState": 20.99 + "paymentInDollars": 14648560.74, + "paymentInPercentageNationwide": 1.17, + "paymentInPercentageWithinState": 20.63 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 5601499.98, - "paymentInPercentageNationwide": 10.18, - "paymentInPercentageWithinState": 8.68 + "paymentInDollars": 10866281.69, + "paymentInPercentageNationwide": 17.25, + "paymentInPercentageWithinState": 15.31 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 896455.88, - "paymentInPercentageNationwide": 0.23, - "paymentInPercentageWithinState": 1.39 + "paymentInDollars": 7632621.23, + "paymentInPercentageNationwide": 2.26, + "paymentInPercentageWithinState": 10.75 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 2927943.5, + "paymentInPercentageNationwide": 0.42, + "paymentInPercentageWithinState": 4.12 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 387474.83, - "paymentInPercentageNationwide": 0.3, - "paymentInPercentageWithinState": 0.6 + "paymentInDollars": 729957.35, + "paymentInPercentageNationwide": 0.53, + "paymentInPercentageWithinState": 1.03 }, { "practiceCategoryName": "Soil testing", @@ -2744,24 +2742,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 148202.56, + "statutePaymentInDollars": 971958.32, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 132308.06, - "paymentInPercentageNationwide": 0.83, - "paymentInPercentageWithinState": 0.2 + "practiceCategoryName": "Other planning", + "paymentInDollars": 540911.15, + "paymentInPercentageNationwide": 2.13, + "paymentInPercentageWithinState": 0.76 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 15894.5, - "paymentInPercentageNationwide": 0.07, - "paymentInPercentageWithinState": 0.02 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 383396.17, + "paymentInPercentageNationwide": 2.6, + "paymentInPercentageWithinState": 0.54 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 47651.0, + "paymentInPercentageNationwide": 0.73, + "paymentInPercentageWithinState": 0.07 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -2777,7 +2776,7 @@ } ], "totalPaymentInPercentageNationwide": 1.51, - "totalPaymentInDollars": 64565678.77 + "totalPaymentInDollars": 70995158.28 } ], "South Dakota": [ @@ -2786,43 +2785,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 63252870.57, + "statutePaymentInDollars": 68579651.78, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 33411575.0, - "paymentInPercentageNationwide": 1.68, - "paymentInPercentageWithinState": 52.81 + "paymentInDollars": 35698531.57, + "paymentInPercentageNationwide": 1.63, + "paymentInPercentageWithinState": 52.04 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 17202620.08, - "paymentInPercentageNationwide": 1.65, - "paymentInPercentageWithinState": 27.19 + "paymentInDollars": 18822164.53, + "paymentInPercentageNationwide": 1.51, + "paymentInPercentageWithinState": 27.44 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 9321058.06, - "paymentInPercentageNationwide": 1.47, - "paymentInPercentageWithinState": 14.73 + "paymentInDollars": 10553945.06, + "paymentInPercentageNationwide": 1.53, + "paymentInPercentageWithinState": 15.39 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1292873.2, - "paymentInPercentageNationwide": 1.01, - "paymentInPercentageWithinState": 2.04 + "paymentInDollars": 1348163.6, + "paymentInPercentageNationwide": 0.98, + "paymentInPercentageWithinState": 1.97 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 1120552.38, - "paymentInPercentageNationwide": 0.29, - "paymentInPercentageWithinState": 1.77 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 1162264.46, + "paymentInPercentageNationwide": 1.85, + "paymentInPercentageWithinState": 1.69 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 904191.85, - "paymentInPercentageNationwide": 1.64, - "paymentInPercentageWithinState": 1.43 + "practiceCategoryName": "Forest management", + "paymentInDollars": 994582.56, + "paymentInPercentageNationwide": 0.29, + "paymentInPercentageWithinState": 1.45 }, { "practiceCategoryName": "Soil testing", @@ -2838,35 +2837,35 @@ { "practiceCategoryName": "Other planning", "paymentInDollars": 13851.24, - "paymentInPercentageNationwide": 0.06, + "paymentInPercentageNationwide": 0.05, "paymentInPercentageWithinState": 0.02 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 2184.3, - "paymentInPercentageNationwide": 0.06, + "paymentInPercentageNationwide": 0.03, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.48, - "totalPaymentInDollars": 63268906.11 + "totalPaymentInPercentageNationwide": 1.46, + "totalPaymentInDollars": 68595687.32 } ], "Kentucky": [ @@ -2875,43 +2874,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 57610155.449999996, + "statutePaymentInDollars": 63377291.03, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 21453821.39, - "paymentInPercentageNationwide": 1.08, - "paymentInPercentageWithinState": 36.47 + "paymentInDollars": 23458514.77, + "paymentInPercentageNationwide": 1.07, + "paymentInPercentageWithinState": 36.28 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 16297645.59, - "paymentInPercentageNationwide": 1.57, - "paymentInPercentageWithinState": 27.7 + "paymentInDollars": 19259492.81, + "paymentInPercentageNationwide": 1.54, + "paymentInPercentageWithinState": 29.79 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 12485541.83, - "paymentInPercentageNationwide": 1.96, - "paymentInPercentageWithinState": 21.22 + "paymentInDollars": 13265347.68, + "paymentInPercentageNationwide": 1.92, + "paymentInPercentageWithinState": 20.52 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 3832858.4, - "paymentInPercentageNationwide": 0.98, - "paymentInPercentageWithinState": 6.52 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 3795759.71, + "paymentInPercentageNationwide": 2.76, + "paymentInPercentageWithinState": 5.87 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 3352307.86, - "paymentInPercentageNationwide": 2.63, - "paymentInPercentageWithinState": 5.7 + "practiceCategoryName": "Forest management", + "paymentInDollars": 3360685.6, + "paymentInPercentageNationwide": 0.99, + "paymentInPercentageWithinState": 5.2 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 187980.38, - "paymentInPercentageNationwide": 0.34, - "paymentInPercentageWithinState": 0.32 + "paymentInDollars": 237490.46, + "paymentInPercentageNationwide": 0.38, + "paymentInPercentageWithinState": 0.37 }, { "practiceCategoryName": "Soil testing", @@ -2922,32 +2921,32 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1218334.31, + "statutePaymentInDollars": 1283668.37, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 693285.59, - "paymentInPercentageNationwide": 2.9, - "paymentInPercentageWithinState": 1.18 + "paymentInDollars": 726325.36, + "paymentInPercentageNationwide": 2.86, + "paymentInPercentageWithinState": 1.12 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 482302.04, - "paymentInPercentageNationwide": 3.03, - "paymentInPercentageWithinState": 0.82 + "paymentInDollars": 438864.33, + "paymentInPercentageNationwide": 2.98, + "paymentInPercentageWithinState": 0.68 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 93580.6, + "paymentInPercentageNationwide": 1.43, + "paymentInPercentageWithinState": 0.14 }, { "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 24898.08, - "paymentInPercentageNationwide": 5.07, + "paymentInPercentageNationwide": 4.8, "paymentInPercentageWithinState": 0.04 }, - { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 17848.6, - "paymentInPercentageNationwide": 0.5, - "paymentInPercentageWithinState": 0.03 - }, { "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, @@ -2957,7 +2956,7 @@ } ], "totalPaymentInPercentageNationwide": 1.37, - "totalPaymentInDollars": 58828489.76 + "totalPaymentInDollars": 64660959.4 } ], "New York": [ @@ -2966,43 +2965,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 51051689.69, + "statutePaymentInDollars": 55025838.55, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 35945990.96, - "paymentInPercentageNationwide": 1.81, - "paymentInPercentageWithinState": 69.23 + "paymentInDollars": 38403192.89, + "paymentInPercentageNationwide": 1.76, + "paymentInPercentageWithinState": 68.55 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 10126264.43, - "paymentInPercentageNationwide": 0.97, - "paymentInPercentageWithinState": 19.5 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 1747184.4, - "paymentInPercentageNationwide": 0.44, - "paymentInPercentageWithinState": 3.36 + "paymentInDollars": 11517134.89, + "paymentInPercentageNationwide": 0.92, + "paymentInPercentageWithinState": 20.56 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1614656.12, - "paymentInPercentageNationwide": 1.27, - "paymentInPercentageWithinState": 3.11 + "paymentInDollars": 1717796.26, + "paymentInPercentageNationwide": 1.25, + "paymentInPercentageWithinState": 3.07 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 1465480.12, - "paymentInPercentageNationwide": 0.23, - "paymentInPercentageWithinState": 2.82 + "paymentInDollars": 1620009.27, + "paymentInPercentageNationwide": 0.24, + "paymentInPercentageWithinState": 2.89 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 1572904.47, + "paymentInPercentageNationwide": 0.46, + "paymentInPercentageWithinState": 2.81 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 152113.66, - "paymentInPercentageNationwide": 0.28, - "paymentInPercentageWithinState": 0.29 + "paymentInDollars": 194800.77, + "paymentInPercentageNationwide": 0.31, + "paymentInPercentageWithinState": 0.35 }, { "practiceCategoryName": "Soil testing", @@ -3013,30 +3012,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 873282.78, + "statutePaymentInDollars": 994097.03, "practiceCategories": [ { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 485999.73, - "paymentInPercentageNationwide": 3.05, - "paymentInPercentageWithinState": 0.94 + "paymentInDollars": 460425.62, + "paymentInPercentageNationwide": 3.13, + "paymentInPercentageWithinState": 0.82 }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 356414.27, - "paymentInPercentageNationwide": 1.49, - "paymentInPercentageWithinState": 0.69 + "paymentInDollars": 395565.35, + "paymentInPercentageNationwide": 1.56, + "paymentInPercentageWithinState": 0.71 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 20059.13, - "paymentInPercentageNationwide": 0.56, - "paymentInPercentageWithinState": 0.04 + "paymentInDollars": 129412.13, + "paymentInPercentageNationwide": 1.98, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 10809.65, - "paymentInPercentageNationwide": 2.2, + "paymentInDollars": 8693.93, + "paymentInPercentageNationwide": 1.68, "paymentInPercentageWithinState": 0.02 }, { @@ -3047,53 +3046,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.21, - "totalPaymentInDollars": 51924972.47 + "totalPaymentInPercentageNationwide": 1.19, + "totalPaymentInDollars": 56019935.58 } ], - "Arizona": [ + "Wyoming": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 50319645.519999996, + "statutePaymentInDollars": 54896259.53, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 23901999.39, - "paymentInPercentageNationwide": 1.2, - "paymentInPercentageWithinState": 47.5 + "paymentInDollars": 37616008.96, + "paymentInPercentageNationwide": 1.72, + "paymentInPercentageWithinState": 68.43 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 18738417.31, - "paymentInPercentageNationwide": 1.8, - "paymentInPercentageWithinState": 37.24 + "paymentInDollars": 12409217.35, + "paymentInPercentageNationwide": 0.99, + "paymentInPercentageWithinState": 22.58 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 6819431.37, - "paymentInPercentageNationwide": 1.74, - "paymentInPercentageWithinState": 13.55 + "paymentInDollars": 2079387.08, + "paymentInPercentageNationwide": 0.61, + "paymentInPercentageWithinState": 3.78 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 695253.58, - "paymentInPercentageNationwide": 0.55, - "paymentInPercentageWithinState": 1.38 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 2049846.2, + "paymentInPercentageNationwide": 0.3, + "paymentInPercentageWithinState": 3.73 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 143982.14, - "paymentInPercentageNationwide": 0.02, - "paymentInPercentageWithinState": 0.29 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 632125.11, + "paymentInPercentageNationwide": 0.46, + "paymentInPercentageWithinState": 1.15 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 20561.73, - "paymentInPercentageNationwide": 0.04, - "paymentInPercentageWithinState": 0.04 + "paymentInDollars": 109674.83, + "paymentInPercentageNationwide": 0.17, + "paymentInPercentageWithinState": 0.2 }, { "practiceCategoryName": "Soil testing", @@ -3104,18 +3103,19 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1803.12, + "statutePaymentInDollars": 71491.51, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 1803.12, - "paymentInPercentageNationwide": 0.01, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 67851.19, + "paymentInPercentageNationwide": 0.46, + "paymentInPercentageWithinState": 0.12 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Other planning", + "paymentInDollars": 3640.32, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 0.01 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -3123,65 +3123,65 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 1.18, - "totalPaymentInDollars": 50321448.64 + "totalPaymentInPercentageNationwide": 1.17, + "totalPaymentInDollars": 54967751.04 } ], - "Illinois": [ + "Arizona": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 48133266.06999999, + "statutePaymentInDollars": 54340329.53, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 29844093.88, - "paymentInPercentageNationwide": 1.5, - "paymentInPercentageWithinState": 60.1 + "paymentInDollars": 26170555.05, + "paymentInPercentageNationwide": 1.2, + "paymentInPercentageWithinState": 48.16 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 9788957.44, - "paymentInPercentageNationwide": 0.94, - "paymentInPercentageWithinState": 19.71 + "paymentInDollars": 20976627.37, + "paymentInPercentageNationwide": 1.68, + "paymentInPercentageWithinState": 38.6 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 6597727.41, - "paymentInPercentageNationwide": 1.04, - "paymentInPercentageWithinState": 13.29 + "practiceCategoryName": "Forest management", + "paymentInDollars": 6343014.58, + "paymentInPercentageNationwide": 1.87, + "paymentInPercentageWithinState": 11.67 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 845466.66, - "paymentInPercentageNationwide": 0.66, - "paymentInPercentageWithinState": 1.7 + "paymentInDollars": 686244.69, + "paymentInPercentageNationwide": 0.5, + "paymentInPercentageWithinState": 1.26 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 718408.44, - "paymentInPercentageNationwide": 0.18, - "paymentInPercentageWithinState": 1.45 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 143326.11, + "paymentInPercentageNationwide": 0.02, + "paymentInPercentageWithinState": 0.26 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 338612.24, - "paymentInPercentageNationwide": 0.62, - "paymentInPercentageWithinState": 0.68 + "paymentInDollars": 20561.73, + "paymentInPercentageNationwide": 0.03, + "paymentInPercentageWithinState": 0.04 }, { "practiceCategoryName": "Soil testing", @@ -3192,31 +3192,28 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1523322.7, + "statutePaymentInDollars": 1803.12, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 713462.37, - "paymentInPercentageNationwide": 2.98, - "paymentInPercentageWithinState": 1.44 + "paymentInDollars": 1803.12, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 654957.37, - "paymentInPercentageNationwide": 4.11, - "paymentInPercentageWithinState": 1.32 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 152012.52, - "paymentInPercentageNationwide": 30.93, - "paymentInPercentageWithinState": 0.31 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 2890.44, - "paymentInPercentageNationwide": 0.08, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Soil health", @@ -3226,53 +3223,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.16, - "totalPaymentInDollars": 49656588.77 + "totalPaymentInPercentageNationwide": 1.15, + "totalPaymentInDollars": 54342132.65 } ], - "Wyoming": [ + "Illinois": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 48875404.77, + "statutePaymentInDollars": 52392541.02, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 33469338.99, - "paymentInPercentageNationwide": 1.69, - "paymentInPercentageWithinState": 68.38 + "paymentInDollars": 32183448.71, + "paymentInPercentageNationwide": 1.47, + "paymentInPercentageWithinState": 59.56 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 10653329.94, - "paymentInPercentageNationwide": 1.02, - "paymentInPercentageWithinState": 21.77 - }, - { - "practiceCategoryName": "Forest management", - "paymentInDollars": 2337326.47, - "paymentInPercentageNationwide": 0.6, - "paymentInPercentageWithinState": 4.78 + "paymentInDollars": 11035631.21, + "paymentInPercentageNationwide": 0.88, + "paymentInPercentageWithinState": 20.42 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 1825617.74, - "paymentInPercentageNationwide": 0.29, - "paymentInPercentageWithinState": 3.73 + "paymentInDollars": 7167817.08, + "paymentInPercentageNationwide": 1.04, + "paymentInPercentageWithinState": 13.26 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 492000.8, - "paymentInPercentageNationwide": 0.39, - "paymentInPercentageWithinState": 1.01 + "paymentInDollars": 850338.81, + "paymentInPercentageNationwide": 0.62, + "paymentInPercentageWithinState": 1.57 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 642256.82, + "paymentInPercentageNationwide": 0.19, + "paymentInPercentageWithinState": 1.19 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 97790.83, - "paymentInPercentageNationwide": 0.18, - "paymentInPercentageWithinState": 0.2 + "paymentInDollars": 513048.39, + "paymentInPercentageNationwide": 0.81, + "paymentInPercentageWithinState": 0.95 }, { "practiceCategoryName": "Soil testing", @@ -3283,29 +3280,31 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 71491.51000000001, + "statutePaymentInDollars": 1643137.56, "practiceCategories": [ - { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 67851.19, - "paymentInPercentageNationwide": 0.43, - "paymentInPercentageWithinState": 0.14 - }, { "practiceCategoryName": "Other planning", - "paymentInDollars": 3640.32, - "paymentInPercentageNationwide": 0.02, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 765328.54, + "paymentInPercentageNationwide": 3.01, + "paymentInPercentageWithinState": 1.42 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 576024.5, + "paymentInPercentageNationwide": 3.91, + "paymentInPercentageWithinState": 1.07 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 178561.52, + "paymentInPercentageNationwide": 34.43, + "paymentInPercentageWithinState": 0.33 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 123223.0, + "paymentInPercentageNationwide": 1.89, + "paymentInPercentageWithinState": 0.23 }, { "practiceCategoryName": "Soil health", @@ -3315,8 +3314,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.14, - "totalPaymentInDollars": 48946896.28 + "totalPaymentInPercentageNationwide": 1.15, + "totalPaymentInDollars": 54035678.58 } ], "Maine": [ @@ -3325,42 +3324,42 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 42940444.42, + "statutePaymentInDollars": 45488605.15, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 25577871.04, - "paymentInPercentageNationwide": 1.29, - "paymentInPercentageWithinState": 56.24 + "paymentInDollars": 26723067.83, + "paymentInPercentageNationwide": 1.22, + "paymentInPercentageWithinState": 55.4 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 10190841.31, - "paymentInPercentageNationwide": 0.98, - "paymentInPercentageWithinState": 22.41 + "paymentInDollars": 11787107.03, + "paymentInPercentageNationwide": 0.94, + "paymentInPercentageWithinState": 24.44 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 3447539.13, - "paymentInPercentageNationwide": 0.88, - "paymentInPercentageWithinState": 7.58 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 3133491.81, + "paymentInPercentageNationwide": 0.45, + "paymentInPercentageWithinState": 6.5 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 2914854.89, - "paymentInPercentageNationwide": 0.46, - "paymentInPercentageWithinState": 6.41 + "practiceCategoryName": "Forest management", + "paymentInDollars": 3015448.24, + "paymentInPercentageNationwide": 0.89, + "paymentInPercentageWithinState": 6.25 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 677168.92, - "paymentInPercentageNationwide": 0.53, - "paymentInPercentageWithinState": 1.49 + "paymentInDollars": 688579.42, + "paymentInPercentageNationwide": 0.5, + "paymentInPercentageWithinState": 1.43 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 132169.13, - "paymentInPercentageNationwide": 0.24, + "paymentInDollars": 140910.82, + "paymentInPercentageNationwide": 0.22, "paymentInPercentageWithinState": 0.29 }, { @@ -3372,25 +3371,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 2536276.4699999997, + "statutePaymentInDollars": 2748856.08, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 1428463.02, - "paymentInPercentageNationwide": 5.97, - "paymentInPercentageWithinState": 3.14 + "paymentInDollars": 1539451.38, + "paymentInPercentageNationwide": 6.06, + "paymentInPercentageWithinState": 3.19 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 1095195.17, - "paymentInPercentageNationwide": 6.88, - "paymentInPercentageWithinState": 2.41 + "paymentInDollars": 994802.42, + "paymentInPercentageNationwide": 6.76, + "paymentInPercentageWithinState": 2.06 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 12618.28, - "paymentInPercentageNationwide": 0.35, - "paymentInPercentageWithinState": 0.03 + "paymentInDollars": 214602.28, + "paymentInPercentageNationwide": 3.29, + "paymentInPercentageWithinState": 0.44 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -3405,8 +3404,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 1.06, - "totalPaymentInDollars": 45476720.89 + "totalPaymentInPercentageNationwide": 1.02, + "totalPaymentInDollars": 48237461.23 } ], "Maryland": [ @@ -3415,43 +3414,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 40436761.370000005, + "statutePaymentInDollars": 44923109.08, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 17161085.16, - "paymentInPercentageNationwide": 0.86, - "paymentInPercentageWithinState": 42.16 + "paymentInDollars": 18569657.99, + "paymentInPercentageNationwide": 0.85, + "paymentInPercentageWithinState": 41.1 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 15998755.86, - "paymentInPercentageNationwide": 1.54, - "paymentInPercentageWithinState": 39.3 + "paymentInDollars": 18435153.76, + "paymentInPercentageNationwide": 1.48, + "paymentInPercentageWithinState": 40.8 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 4403130.56, - "paymentInPercentageNationwide": 3.46, - "paymentInPercentageWithinState": 10.82 + "paymentInDollars": 4973757.67, + "paymentInPercentageNationwide": 3.61, + "paymentInPercentageWithinState": 11.01 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 1479906.78, + "paymentInDollars": 1568985.67, "paymentInPercentageNationwide": 0.23, - "paymentInPercentageWithinState": 3.64 + "paymentInPercentageWithinState": 3.47 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 867509.16, - "paymentInPercentageNationwide": 1.58, - "paymentInPercentageWithinState": 2.13 + "paymentInDollars": 912495.88, + "paymentInPercentageNationwide": 1.45, + "paymentInPercentageWithinState": 2.02 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 526373.85, - "paymentInPercentageNationwide": 0.13, - "paymentInPercentageWithinState": 1.29 + "paymentInDollars": 463058.11, + "paymentInPercentageNationwide": 0.14, + "paymentInPercentageWithinState": 1.02 }, { "practiceCategoryName": "Soil testing", @@ -3462,27 +3461,27 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 271666.55, + "statutePaymentInDollars": 258381.76, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 169236.41, - "paymentInPercentageNationwide": 0.71, - "paymentInPercentageWithinState": 0.42 + "paymentInDollars": 155951.62, + "paymentInPercentageNationwide": 0.61, + "paymentInPercentageWithinState": 0.35 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 102430.14, - "paymentInPercentageNationwide": 0.64, - "paymentInPercentageWithinState": 0.25 + "paymentInPercentageNationwide": 0.7, + "paymentInPercentageWithinState": 0.23 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Resource-conserving crop rotation", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -3494,8 +3493,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.95, - "totalPaymentInDollars": 40708427.92 + "totalPaymentInPercentageNationwide": 0.96, + "totalPaymentInDollars": 45181490.84 } ], "Vermont": [ @@ -3504,78 +3503,77 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 37149010.39, + "statutePaymentInDollars": 38428017.46, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 18193772.36, - "paymentInPercentageNationwide": 0.92, - "paymentInPercentageWithinState": 47.38 + "paymentInDollars": 18676004.43, + "paymentInPercentageNationwide": 0.85, + "paymentInPercentageWithinState": 46.88 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 9093767.35, - "paymentInPercentageNationwide": 0.87, - "paymentInPercentageWithinState": 23.68 + "paymentInDollars": 9632299.82, + "paymentInPercentageNationwide": 0.77, + "paymentInPercentageWithinState": 24.18 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 8217093.7, - "paymentInPercentageNationwide": 1.29, - "paymentInPercentageWithinState": 21.4 + "paymentInDollars": 8501218.72, + "paymentInPercentageNationwide": 1.23, + "paymentInPercentageWithinState": 21.34 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 627736.17, - "paymentInPercentageNationwide": 0.16, - "paymentInPercentageWithinState": 1.63 + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 628282.67, + "paymentInPercentageNationwide": 1.0, + "paymentInPercentageWithinState": 1.58 }, { - "practiceCategoryName": "Soil remediation", - "paymentInDollars": 595345.34, - "paymentInPercentageNationwide": 1.08, - "paymentInPercentageWithinState": 1.55 + "practiceCategoryName": "Forest management", + "paymentInDollars": 591938.06, + "paymentInPercentageNationwide": 0.17, + "paymentInPercentageWithinState": 1.49 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 419353.4, - "paymentInPercentageNationwide": 0.33, - "paymentInPercentageWithinState": 1.09 + "paymentInDollars": 398273.76, + "paymentInPercentageNationwide": 0.29, + "paymentInPercentageWithinState": 1.0 }, { "practiceCategoryName": "Soil testing", - "paymentInDollars": 1942.07, - "paymentInPercentageNationwide": 64.25, - "paymentInPercentageWithinState": 0.01 + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 } ] }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1251370.85, + "statutePaymentInDollars": 1413786.67, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 977328.28, - "paymentInPercentageNationwide": 4.08, - "paymentInPercentageWithinState": 2.55 + "paymentInDollars": 1115354.48, + "paymentInPercentageNationwide": 4.39, + "paymentInPercentageWithinState": 2.8 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 245406.73, - "paymentInPercentageNationwide": 6.87, - "paymentInPercentageWithinState": 0.64 + "paymentInDollars": 269796.35, + "paymentInPercentageNationwide": 4.13, + "paymentInPercentageWithinState": 0.68 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 28356.79, - "paymentInPercentageNationwide": 0.18, + "paymentInPercentageNationwide": 0.19, "paymentInPercentageWithinState": 0.07 }, { "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 279.05, - "paymentInPercentageNationwide": 0.06, + "paymentInPercentageNationwide": 0.05, "paymentInPercentageWithinState": 0.0 }, { @@ -3586,8 +3584,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.9, - "totalPaymentInDollars": 38400381.24 + "totalPaymentInPercentageNationwide": 0.85, + "totalPaymentInDollars": 39841804.13 } ], "Alaska": [ @@ -3596,41 +3594,41 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 33699939.03, + "statutePaymentInDollars": 37741622.18, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 14918228.58, - "paymentInPercentageNationwide": 1.44, - "paymentInPercentageWithinState": 44.24 + "paymentInDollars": 21156281.05, + "paymentInPercentageNationwide": 1.69, + "paymentInPercentageWithinState": 56.03 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 13290536.59, - "paymentInPercentageNationwide": 3.38, - "paymentInPercentageWithinState": 39.41 + "paymentInDollars": 10825539.81, + "paymentInPercentageNationwide": 3.2, + "paymentInPercentageWithinState": 28.67 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 4839069.17, - "paymentInPercentageNationwide": 0.24, - "paymentInPercentageWithinState": 14.35 + "paymentInDollars": 5025843.74, + "paymentInPercentageNationwide": 0.23, + "paymentInPercentageWithinState": 13.31 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 603194.28, - "paymentInPercentageNationwide": 0.09, - "paymentInPercentageWithinState": 1.79 + "paymentInDollars": 684467.88, + "paymentInPercentageNationwide": 0.1, + "paymentInPercentageWithinState": 1.81 }, { "practiceCategoryName": "Soil remediation", "paymentInDollars": 28018.24, - "paymentInPercentageNationwide": 0.05, - "paymentInPercentageWithinState": 0.08 + "paymentInPercentageNationwide": 0.04, + "paymentInPercentageWithinState": 0.07 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 20892.17, + "paymentInDollars": 21471.46, "paymentInPercentageNationwide": 0.02, "paymentInPercentageWithinState": 0.06 }, @@ -3643,16 +3641,16 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 21050.06, + "statutePaymentInDollars": 15026.9, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 21050.06, - "paymentInPercentageNationwide": 0.09, - "paymentInPercentageWithinState": 0.06 + "paymentInDollars": 15026.9, + "paymentInPercentageNationwide": 0.06, + "paymentInPercentageWithinState": 0.04 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -3662,20 +3660,20 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 0.79, - "totalPaymentInDollars": 33720989.09 + "totalPaymentInPercentageNationwide": 0.8, + "totalPaymentInDollars": 37756649.08 } ], "Delaware": [ @@ -3684,43 +3682,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 29131821.89, + "statutePaymentInDollars": 31687855.06, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 15777235.33, - "paymentInPercentageNationwide": 0.79, - "paymentInPercentageWithinState": 53.1 + "paymentInDollars": 16839400.72, + "paymentInPercentageNationwide": 0.77, + "paymentInPercentageWithinState": 52.13 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 5997688.46, - "paymentInPercentageNationwide": 0.58, - "paymentInPercentageWithinState": 20.19 + "paymentInDollars": 7010441.09, + "paymentInPercentageNationwide": 0.56, + "paymentInPercentageWithinState": 21.7 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 4806701.37, - "paymentInPercentageNationwide": 0.76, - "paymentInPercentageWithinState": 16.18 + "paymentInDollars": 5172470.33, + "paymentInPercentageNationwide": 0.75, + "paymentInPercentageWithinState": 16.01 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1462729.96, - "paymentInPercentageNationwide": 1.15, - "paymentInPercentageWithinState": 4.92 + "paymentInDollars": 1546986.11, + "paymentInPercentageNationwide": 1.12, + "paymentInPercentageWithinState": 4.79 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 930111.13, - "paymentInPercentageNationwide": 1.69, - "paymentInPercentageWithinState": 3.13 + "paymentInDollars": 961531.85, + "paymentInPercentageNationwide": 1.53, + "paymentInPercentageWithinState": 2.98 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 157355.64, - "paymentInPercentageNationwide": 0.04, - "paymentInPercentageWithinState": 0.53 + "paymentInDollars": 157024.96, + "paymentInPercentageNationwide": 0.05, + "paymentInPercentageWithinState": 0.49 }, { "practiceCategoryName": "Soil testing", @@ -3731,18 +3729,19 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 579437.74, + "statutePaymentInDollars": 617255.21, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 579437.74, - "paymentInPercentageNationwide": 2.42, - "paymentInPercentageWithinState": 1.95 + "paymentInDollars": 481105.21, + "paymentInPercentageNationwide": 1.89, + "paymentInPercentageWithinState": 1.49 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 136150.0, + "paymentInPercentageNationwide": 0.92, + "paymentInPercentageWithinState": 0.42 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -3750,12 +3749,12 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } @@ -3763,7 +3762,7 @@ } ], "totalPaymentInPercentageNationwide": 0.69, - "totalPaymentInDollars": 29711259.63 + "totalPaymentInDollars": 32305110.27 } ], "West Virginia": [ @@ -3772,37 +3771,37 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 27840051.770000003, + "statutePaymentInDollars": 30854494.29, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 15358135.66, - "paymentInPercentageNationwide": 0.77, - "paymentInPercentageWithinState": 52.53 + "paymentInDollars": 17263757.13, + "paymentInPercentageNationwide": 0.79, + "paymentInPercentageWithinState": 53.27 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 8865688.63, - "paymentInPercentageNationwide": 0.85, - "paymentInPercentageWithinState": 30.32 + "paymentInDollars": 10047192.36, + "paymentInPercentageNationwide": 0.8, + "paymentInPercentageWithinState": 31.0 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 1591378.61, - "paymentInPercentageNationwide": 0.25, - "paymentInPercentageWithinState": 5.44 + "paymentInDollars": 1658939.2, + "paymentInPercentageNationwide": 0.24, + "paymentInPercentageWithinState": 5.12 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 1161898.79, - "paymentInPercentageNationwide": 0.3, - "paymentInPercentageWithinState": 3.97 + "paymentInDollars": 996944.65, + "paymentInPercentageNationwide": 0.29, + "paymentInPercentageWithinState": 3.08 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 853042.67, - "paymentInPercentageNationwide": 0.67, - "paymentInPercentageWithinState": 2.92 + "paymentInDollars": 877753.54, + "paymentInPercentageNationwide": 0.64, + "paymentInPercentageWithinState": 2.71 }, { "practiceCategoryName": "Soil remediation", @@ -3819,24 +3818,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 1395613.5, + "statutePaymentInDollars": 1552634.23, "practiceCategories": [ { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 1216290.4, - "paymentInPercentageNationwide": 7.64, - "paymentInPercentageWithinState": 4.16 + "paymentInDollars": 1059773.52, + "paymentInPercentageNationwide": 7.2, + "paymentInPercentageWithinState": 3.27 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 179323.1, - "paymentInPercentageNationwide": 0.75, - "paymentInPercentageWithinState": 0.61 + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 246968.0, + "paymentInPercentageNationwide": 3.78, + "paymentInPercentageWithinState": 0.76 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "practiceCategoryName": "Other planning", + "paymentInDollars": 245892.71, + "paymentInPercentageNationwide": 0.97, + "paymentInPercentageWithinState": 0.76 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -3851,8 +3851,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.68, - "totalPaymentInDollars": 29235665.27 + "totalPaymentInPercentageNationwide": 0.69, + "totalPaymentInDollars": 32407128.52 } ], "Nevada": [ @@ -3861,37 +3861,37 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 26662562.349999998, + "statutePaymentInDollars": 28648242.79, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 21962394.95, - "paymentInPercentageNationwide": 1.11, - "paymentInPercentageWithinState": 82.35 + "paymentInDollars": 23849654.47, + "paymentInPercentageNationwide": 1.09, + "paymentInPercentageWithinState": 83.23 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 3838652.38, - "paymentInPercentageNationwide": 0.37, - "paymentInPercentageWithinState": 14.39 + "paymentInDollars": 4134274.14, + "paymentInPercentageNationwide": 0.33, + "paymentInPercentageWithinState": 14.43 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 592260.57, - "paymentInPercentageNationwide": 0.15, - "paymentInPercentageWithinState": 2.22 + "paymentInDollars": 584116.16, + "paymentInPercentageNationwide": 0.17, + "paymentInPercentageWithinState": 2.04 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 232434.29, - "paymentInPercentageNationwide": 0.04, - "paymentInPercentageWithinState": 0.87 + "paymentInDollars": 49773.22, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 0.17 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 36820.16, - "paymentInPercentageNationwide": 0.03, - "paymentInPercentageWithinState": 0.14 + "paymentInDollars": 30424.8, + "paymentInPercentageNationwide": 0.02, + "paymentInPercentageWithinState": 0.11 }, { "practiceCategoryName": "Soil testing", @@ -3916,7 +3916,7 @@ "paymentInPercentageWithinState": 0.03 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -3926,20 +3926,20 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } ] } ], - "totalPaymentInPercentageNationwide": 0.62, - "totalPaymentInDollars": 26670771.33 + "totalPaymentInPercentageNationwide": 0.61, + "totalPaymentInDollars": 28656451.77 } ], "Hawaii": [ @@ -3948,37 +3948,37 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 23570382.62, + "statutePaymentInDollars": 26048341.97, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 11314815.82, - "paymentInPercentageNationwide": 1.09, - "paymentInPercentageWithinState": 47.88 + "paymentInDollars": 14286640.94, + "paymentInPercentageNationwide": 1.14, + "paymentInPercentageWithinState": 54.71 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 6036819.48, + "paymentInDollars": 6537457.41, "paymentInPercentageNationwide": 0.3, - "paymentInPercentageWithinState": 25.54 + "paymentInPercentageWithinState": 25.04 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 5036319.42, - "paymentInPercentageNationwide": 1.28, - "paymentInPercentageWithinState": 21.31 + "paymentInDollars": 3931133.94, + "paymentInPercentageNationwide": 1.16, + "paymentInPercentageWithinState": 15.06 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 1168268.32, - "paymentInPercentageNationwide": 0.18, - "paymentInPercentageWithinState": 4.94 + "paymentInDollars": 1278950.1, + "paymentInPercentageNationwide": 0.19, + "paymentInPercentageWithinState": 4.9 }, { "practiceCategoryName": "Other improvement", "paymentInDollars": 10943.1, "paymentInPercentageNationwide": 0.01, - "paymentInPercentageWithinState": 0.05 + "paymentInPercentageWithinState": 0.04 }, { "practiceCategoryName": "Soil remediation", @@ -4000,11 +4000,11 @@ { "practiceCategoryName": "Other planning", "paymentInDollars": 62931.02, - "paymentInPercentageNationwide": 0.26, - "paymentInPercentageWithinState": 0.27 + "paymentInPercentageNationwide": 0.25, + "paymentInPercentageWithinState": 0.24 }, { - "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, @@ -4014,12 +4014,12 @@ "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Soil health", + "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { - "practiceCategoryName": "Conservation planning assessment", + "practiceCategoryName": "Soil health", "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 } @@ -4027,7 +4027,7 @@ } ], "totalPaymentInPercentageNationwide": 0.55, - "totalPaymentInDollars": 23633313.64 + "totalPaymentInDollars": 26111272.99 } ], "New Hampshire": [ @@ -4036,43 +4036,43 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 16926079.41, + "statutePaymentInDollars": 17754728.35, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 7677483.94, - "paymentInPercentageNationwide": 0.74, - "paymentInPercentageWithinState": 43.3 + "paymentInDollars": 8484401.95, + "paymentInPercentageNationwide": 0.68, + "paymentInPercentageWithinState": 45.5 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 4394732.78, - "paymentInPercentageNationwide": 0.22, - "paymentInPercentageWithinState": 24.78 + "paymentInDollars": 4558119.45, + "paymentInPercentageNationwide": 0.21, + "paymentInPercentageWithinState": 24.44 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 2584156.96, - "paymentInPercentageNationwide": 0.41, - "paymentInPercentageWithinState": 14.57 + "paymentInDollars": 2672068.32, + "paymentInPercentageNationwide": 0.39, + "paymentInPercentageWithinState": 14.33 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 2020711.13, - "paymentInPercentageNationwide": 0.51, - "paymentInPercentageWithinState": 11.4 + "paymentInDollars": 1803352.56, + "paymentInPercentageNationwide": 0.53, + "paymentInPercentageWithinState": 9.67 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 146691.45, - "paymentInPercentageNationwide": 0.27, - "paymentInPercentageWithinState": 0.83 + "paymentInDollars": 137709.04, + "paymentInPercentageNationwide": 0.22, + "paymentInPercentageWithinState": 0.74 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 102303.15, - "paymentInPercentageNationwide": 0.08, - "paymentInPercentageWithinState": 0.58 + "paymentInDollars": 99077.03, + "paymentInPercentageNationwide": 0.07, + "paymentInPercentageWithinState": 0.53 }, { "practiceCategoryName": "Soil testing", @@ -4083,25 +4083,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 806769.98, + "statutePaymentInDollars": 891719.67, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 670842.22, - "paymentInPercentageNationwide": 2.8, - "paymentInPercentageWithinState": 3.78 + "paymentInDollars": 768169.61, + "paymentInPercentageNationwide": 3.02, + "paymentInPercentageWithinState": 4.12 }, { "practiceCategoryName": "Conservation planning assessment", "paymentInDollars": 106777.56, - "paymentInPercentageNationwide": 0.67, - "paymentInPercentageWithinState": 0.6 + "paymentInPercentageNationwide": 0.73, + "paymentInPercentageWithinState": 0.57 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 29150.2, - "paymentInPercentageNationwide": 0.82, - "paymentInPercentageWithinState": 0.16 + "paymentInDollars": 16772.5, + "paymentInPercentageNationwide": 0.26, + "paymentInPercentageWithinState": 0.09 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -4116,8 +4116,8 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.41, - "totalPaymentInDollars": 17732849.39 + "totalPaymentInPercentageNationwide": 0.4, + "totalPaymentInDollars": 18646448.02 } ], "New Jersey": [ @@ -4126,42 +4126,42 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 15950380.82, + "statutePaymentInDollars": 17114634.02, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 6982678.67, + "paymentInDollars": 7671176.1, "paymentInPercentageNationwide": 0.35, - "paymentInPercentageWithinState": 41.82 + "paymentInPercentageWithinState": 42.94 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 4537125.29, - "paymentInPercentageNationwide": 0.71, - "paymentInPercentageWithinState": 27.17 + "paymentInDollars": 4593021.1, + "paymentInPercentageNationwide": 0.67, + "paymentInPercentageWithinState": 25.71 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 2999137.48, - "paymentInPercentageNationwide": 0.29, - "paymentInPercentageWithinState": 17.96 + "paymentInDollars": 3344365.7, + "paymentInPercentageNationwide": 0.27, + "paymentInPercentageWithinState": 18.72 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 647968.63, - "paymentInPercentageNationwide": 0.16, - "paymentInPercentageWithinState": 3.88 + "practiceCategoryName": "Other improvement", + "paymentInDollars": 667157.36, + "paymentInPercentageNationwide": 0.48, + "paymentInPercentageWithinState": 3.73 }, { - "practiceCategoryName": "Other improvement", - "paymentInDollars": 516687.12, - "paymentInPercentageNationwide": 0.41, - "paymentInPercentageWithinState": 3.09 + "practiceCategoryName": "Forest management", + "paymentInDollars": 553157.44, + "paymentInPercentageNationwide": 0.16, + "paymentInPercentageWithinState": 3.1 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 266783.63, - "paymentInPercentageNationwide": 0.48, + "paymentInDollars": 285756.32, + "paymentInPercentageNationwide": 0.45, "paymentInPercentageWithinState": 1.6 }, { @@ -4173,25 +4173,25 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 747223.75, + "statutePaymentInDollars": 749279.29, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 533993.81, - "paymentInPercentageNationwide": 2.23, - "paymentInPercentageWithinState": 3.2 + "paymentInDollars": 559221.26, + "paymentInPercentageNationwide": 2.2, + "paymentInPercentageWithinState": 3.13 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 140475.61, - "paymentInPercentageNationwide": 0.88, - "paymentInPercentageWithinState": 0.84 + "paymentInDollars": 117303.7, + "paymentInPercentageNationwide": 0.8, + "paymentInPercentageWithinState": 0.66 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 72754.33, - "paymentInPercentageNationwide": 2.04, - "paymentInPercentageWithinState": 0.44 + "paymentInPercentageNationwide": 1.11, + "paymentInPercentageWithinState": 0.41 }, { "practiceCategoryName": "Resource-conserving crop rotation", @@ -4206,53 +4206,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.39, - "totalPaymentInDollars": 16697604.57 + "totalPaymentInPercentageNationwide": 0.38, + "totalPaymentInDollars": 17863913.31 } ], - "Massachusetts": [ + "Connecticut": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 15004628.09, + "statutePaymentInDollars": 16116402.09, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 7578072.6, - "paymentInPercentageNationwide": 0.38, - "paymentInPercentageWithinState": 49.0 + "paymentInDollars": 8464989.91, + "paymentInPercentageNationwide": 0.39, + "paymentInPercentageWithinState": 51.52 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 3482404.93, - "paymentInPercentageNationwide": 0.34, - "paymentInPercentageWithinState": 22.52 - }, - { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 1486956.64, - "paymentInPercentageNationwide": 0.23, - "paymentInPercentageWithinState": 9.62 + "paymentInDollars": 3754018.96, + "paymentInPercentageNationwide": 0.3, + "paymentInPercentageWithinState": 22.85 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1484385.2, - "paymentInPercentageNationwide": 1.17, - "paymentInPercentageWithinState": 9.6 + "paymentInDollars": 1767522.79, + "paymentInPercentageNationwide": 1.28, + "paymentInPercentageWithinState": 10.76 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 613303.17, - "paymentInPercentageNationwide": 0.16, - "paymentInPercentageWithinState": 3.97 + "paymentInDollars": 1331187.41, + "paymentInPercentageNationwide": 0.39, + "paymentInPercentageWithinState": 8.1 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 778284.64, + "paymentInPercentageNationwide": 0.11, + "paymentInPercentageWithinState": 4.74 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 359505.55, - "paymentInPercentageNationwide": 0.65, - "paymentInPercentageWithinState": 2.32 + "paymentInDollars": 20398.38, + "paymentInPercentageNationwide": 0.03, + "paymentInPercentageWithinState": 0.12 }, { "practiceCategoryName": "Soil testing", @@ -4263,24 +4263,23 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 459806.79, + "statutePaymentInDollars": 313587.1, "practiceCategories": [ { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 256877.43, - "paymentInPercentageNationwide": 1.61, - "paymentInPercentageWithinState": 1.66 + "practiceCategoryName": "Other planning", + "paymentInDollars": 196627.62, + "paymentInPercentageNationwide": 0.77, + "paymentInPercentageWithinState": 1.2 }, { - "practiceCategoryName": "Other planning", - "paymentInDollars": 202480.56, - "paymentInPercentageNationwide": 0.85, - "paymentInPercentageWithinState": 1.31 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 116959.48, + "paymentInPercentageNationwide": 0.79, + "paymentInPercentageWithinState": 0.71 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 448.8, - "paymentInPercentageNationwide": 0.09, + "paymentInDollars": 0.0, "paymentInPercentageWithinState": 0.0 }, { @@ -4296,53 +4295,53 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.36, - "totalPaymentInDollars": 15464434.88 + "totalPaymentInPercentageNationwide": 0.35, + "totalPaymentInDollars": 16429989.19 } ], - "Connecticut": [ + "Massachusetts": [ { "years": "2018-2022", "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 14196295.209999999, + "statutePaymentInDollars": 15379064.87, "practiceCategories": [ { "practiceCategoryName": "Structural", - "paymentInDollars": 7082932.8, - "paymentInPercentageNationwide": 0.36, - "paymentInPercentageWithinState": 48.85 + "paymentInDollars": 7664437.22, + "paymentInPercentageNationwide": 0.35, + "paymentInPercentageWithinState": 48.25 }, { "practiceCategoryName": "Land management", - "paymentInDollars": 3140242.93, - "paymentInPercentageNationwide": 0.3, - "paymentInPercentageWithinState": 21.66 + "paymentInDollars": 3621351.62, + "paymentInPercentageNationwide": 0.29, + "paymentInPercentageWithinState": 22.8 }, { "practiceCategoryName": "Other improvement", - "paymentInDollars": 1756240.99, - "paymentInPercentageNationwide": 1.38, - "paymentInPercentageWithinState": 12.11 + "paymentInDollars": 1654728.83, + "paymentInPercentageNationwide": 1.2, + "paymentInPercentageWithinState": 10.42 }, { - "practiceCategoryName": "Forest management", - "paymentInDollars": 1422873.24, - "paymentInPercentageNationwide": 0.36, - "paymentInPercentageWithinState": 9.81 + "practiceCategoryName": "Vegetative", + "paymentInDollars": 1530842.32, + "paymentInPercentageNationwide": 0.22, + "paymentInPercentageWithinState": 9.64 }, { - "practiceCategoryName": "Vegetative", - "paymentInDollars": 773606.87, - "paymentInPercentageNationwide": 0.12, - "paymentInPercentageWithinState": 5.34 + "practiceCategoryName": "Forest management", + "paymentInDollars": 550147.98, + "paymentInPercentageNationwide": 0.16, + "paymentInPercentageWithinState": 3.46 }, { "practiceCategoryName": "Soil remediation", - "paymentInDollars": 20398.38, - "paymentInPercentageNationwide": 0.04, - "paymentInPercentageWithinState": 0.14 + "paymentInDollars": 357556.9, + "paymentInPercentageNationwide": 0.57, + "paymentInPercentageWithinState": 2.25 }, { "practiceCategoryName": "Soil testing", @@ -4353,29 +4352,31 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 302994.73, + "statutePaymentInDollars": 504934.03, "practiceCategories": [ { - "practiceCategoryName": "Other planning", - "paymentInDollars": 186035.25, - "paymentInPercentageNationwide": 0.78, - "paymentInPercentageWithinState": 1.28 + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 234700.53, + "paymentInPercentageNationwide": 1.59, + "paymentInPercentageWithinState": 1.48 }, { - "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 116959.48, - "paymentInPercentageNationwide": 0.73, - "paymentInPercentageWithinState": 0.81 + "practiceCategoryName": "Other planning", + "paymentInDollars": 206774.7, + "paymentInPercentageNationwide": 0.81, + "paymentInPercentageWithinState": 1.3 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 63010.0, + "paymentInPercentageNationwide": 0.96, + "paymentInPercentageWithinState": 0.4 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "paymentInDollars": 0.0, - "paymentInPercentageWithinState": 0.0 + "paymentInDollars": 448.8, + "paymentInPercentageNationwide": 0.09, + "paymentInPercentageWithinState": 0.0 }, { "practiceCategoryName": "Soil health", @@ -4386,7 +4387,7 @@ } ], "totalPaymentInPercentageNationwide": 0.34, - "totalPaymentInDollars": 14499289.94 + "totalPaymentInDollars": 15883998.9 } ], "Rhode Island": [ @@ -4395,37 +4396,37 @@ "statutes": [ { "statuteName": "(6)(A) Practices", - "statutePaymentInDollars": 8811053.54, + "statutePaymentInDollars": 9013615.32, "practiceCategories": [ { "practiceCategoryName": "Land management", - "paymentInDollars": 5223825.05, - "paymentInPercentageNationwide": 0.5, - "paymentInPercentageWithinState": 57.14 + "paymentInDollars": 5482162.81, + "paymentInPercentageNationwide": 0.44, + "paymentInPercentageWithinState": 58.54 }, { "practiceCategoryName": "Structural", - "paymentInDollars": 2308206.0, - "paymentInPercentageNationwide": 0.12, - "paymentInPercentageWithinState": 25.25 + "paymentInDollars": 2348831.92, + "paymentInPercentageNationwide": 0.11, + "paymentInPercentageWithinState": 25.08 }, { "practiceCategoryName": "Forest management", - "paymentInDollars": 1048394.01, - "paymentInPercentageNationwide": 0.27, - "paymentInPercentageWithinState": 11.47 + "paymentInDollars": 950914.3, + "paymentInPercentageNationwide": 0.28, + "paymentInPercentageWithinState": 10.15 }, { "practiceCategoryName": "Vegetative", - "paymentInDollars": 172088.71, + "paymentInDollars": 173166.52, "paymentInPercentageNationwide": 0.03, - "paymentInPercentageWithinState": 1.88 + "paymentInPercentageWithinState": 1.85 }, { "practiceCategoryName": "Other improvement", "paymentInDollars": 58539.77, - "paymentInPercentageNationwide": 0.05, - "paymentInPercentageWithinState": 0.64 + "paymentInPercentageNationwide": 0.04, + "paymentInPercentageWithinState": 0.63 }, { "practiceCategoryName": "Soil testing", @@ -4441,30 +4442,30 @@ }, { "statuteName": "(6)(B) Practices", - "statutePaymentInDollars": 330387.35, + "statutePaymentInDollars": 351991.5, "practiceCategories": [ { "practiceCategoryName": "Other planning", - "paymentInDollars": 248973.76, - "paymentInPercentageNationwide": 1.04, - "paymentInPercentageWithinState": 2.72 + "paymentInDollars": 240047.91, + "paymentInPercentageNationwide": 0.94, + "paymentInPercentageWithinState": 2.56 }, { "practiceCategoryName": "Conservation planning assessment", - "paymentInDollars": 76380.53, - "paymentInPercentageNationwide": 0.48, - "paymentInPercentageWithinState": 0.84 + "paymentInDollars": 106910.53, + "paymentInPercentageNationwide": 0.73, + "paymentInPercentageWithinState": 1.14 }, { "practiceCategoryName": "Resource-conserving crop rotation", "paymentInDollars": 2985.38, - "paymentInPercentageNationwide": 0.61, + "paymentInPercentageNationwide": 0.58, "paymentInPercentageWithinState": 0.03 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", "paymentInDollars": 2047.68, - "paymentInPercentageNationwide": 0.06, + "paymentInPercentageNationwide": 0.03, "paymentInPercentageWithinState": 0.02 }, { @@ -4475,8 +4476,343 @@ ] } ], - "totalPaymentInPercentageNationwide": 0.21, - "totalPaymentInDollars": 9141440.89 + "totalPaymentInPercentageNationwide": 0.2, + "totalPaymentInDollars": 9365606.82 + } + ], + "Puerto Rico": [ + { + "years": "2018-2022", + "statutes": [ + { + "statuteName": "(6)(A) Practices", + "statutePaymentInDollars": 5423278.0, + "practiceCategories": [ + { + "practiceCategoryName": "Structural", + "paymentInDollars": 3430981.0, + "paymentInPercentageNationwide": 0.16, + "paymentInPercentageWithinState": 63.26 + }, + { + "practiceCategoryName": "Land management", + "paymentInDollars": 1570746.0, + "paymentInPercentageNationwide": 0.13, + "paymentInPercentageWithinState": 28.96 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 343153.0, + "paymentInPercentageNationwide": 0.05, + "paymentInPercentageWithinState": 6.33 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 68306.0, + "paymentInPercentageNationwide": 0.05, + "paymentInPercentageWithinState": 1.26 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 10092.0, + "paymentInPercentageNationwide": 0.02, + "paymentInPercentageWithinState": 0.19 + }, + { + "practiceCategoryName": "Soil testing", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + }, + { + "statuteName": "(6)(B) Practices", + "statutePaymentInDollars": 0.0, + "practiceCategories": [ + { + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil health", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other planning", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + } + ], + "totalPaymentInPercentageNationwide": 0.12, + "totalPaymentInDollars": 5423278.0 + } + ], + "Northern Mariana Islands": [ + { + "years": "2018-2022", + "statutes": [ + { + "statuteName": "(6)(A) Practices", + "statutePaymentInDollars": 332687.0, + "practiceCategories": [ + { + "practiceCategoryName": "Structural", + "paymentInDollars": 215269.0, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 64.71 + }, + { + "practiceCategoryName": "Land management", + "paymentInDollars": 111268.0, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 33.45 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 6150.0, + "paymentInPercentageNationwide": 0.0, + "paymentInPercentageWithinState": 1.85 + }, + { + "practiceCategoryName": "Soil testing", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + }, + { + "statuteName": "(6)(B) Practices", + "statutePaymentInDollars": 0.0, + "practiceCategories": [ + { + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil health", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other planning", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + } + ], + "totalPaymentInPercentageNationwide": 0.01, + "totalPaymentInDollars": 332687.0 + } + ], + "American Samoa": [ + { + "years": "2018-2022", + "statutes": [ + { + "statuteName": "(6)(A) Practices", + "statutePaymentInDollars": 206636.0, + "practiceCategories": [ + { + "practiceCategoryName": "Structural", + "paymentInDollars": 206636.0, + "paymentInPercentageNationwide": 0.01, + "paymentInPercentageWithinState": 100.0 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil testing", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Land management", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + }, + { + "statuteName": "(6)(B) Practices", + "statutePaymentInDollars": 0.0, + "practiceCategories": [ + { + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil health", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other planning", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + } + ], + "totalPaymentInPercentageNationwide": 0.0, + "totalPaymentInDollars": 206636.0 + } + ], + "Virgin Islands of the U.S.": [ + { + "years": "2018-2022", + "statutes": [ + { + "statuteName": "(6)(A) Practices", + "statutePaymentInDollars": 97645.0, + "practiceCategories": [ + { + "practiceCategoryName": "Land management", + "paymentInDollars": 50620.0, + "paymentInPercentageNationwide": 0.0, + "paymentInPercentageWithinState": 51.84 + }, + { + "practiceCategoryName": "Structural", + "paymentInDollars": 47025.0, + "paymentInPercentageNationwide": 0.0, + "paymentInPercentageWithinState": 48.16 + }, + { + "practiceCategoryName": "Soil remediation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Vegetative", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Forest management", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other improvement", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil testing", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + }, + { + "statuteName": "(6)(B) Practices", + "statutePaymentInDollars": 0.0, + "practiceCategories": [ + { + "practiceCategoryName": "Resource-conserving crop rotation", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Soil health", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Other planning", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Comprehensive Nutrient Mgt.", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + }, + { + "practiceCategoryName": "Conservation planning assessment", + "paymentInDollars": 0.0, + "paymentInPercentageWithinState": 0.0 + } + ] + } + ], + "totalPaymentInPercentageNationwide": 0.0, + "totalPaymentInDollars": 97645.0 } ] } diff --git a/src/data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json b/src/data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json index 9719e230..4894a82b 100644 --- a/src/data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json +++ b/src/data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json @@ -5,74 +5,74 @@ "practiceCategories": [ { "practiceCategoryName": "Structural", - "totalPaymentInDollars": 1986192698.89, + "totalPaymentInDollars": 2186339395.5, "totalPaymentInPercentage": 46.88 }, { "practiceCategoryName": "Land management", - "totalPaymentInDollars": 1039509358.31, - "totalPaymentInPercentage": 24.53 + "totalPaymentInDollars": 1248519202.47, + "totalPaymentInPercentage": 26.77 }, { "practiceCategoryName": "Vegetative", - "totalPaymentInDollars": 636217234.15, - "totalPaymentInPercentage": 15.02 + "totalPaymentInDollars": 689362228.1, + "totalPaymentInPercentage": 14.78 }, { "practiceCategoryName": "Forest management", - "totalPaymentInDollars": 392800174.82, - "totalPaymentInPercentage": 9.27 + "totalPaymentInDollars": 338348912.46, + "totalPaymentInPercentage": 7.26 }, { "practiceCategoryName": "Other improvement", - "totalPaymentInDollars": 127388095.61, - "totalPaymentInPercentage": 3.01 + "totalPaymentInDollars": 137712573.18, + "totalPaymentInPercentage": 2.95 }, { "practiceCategoryName": "Soil remediation", - "totalPaymentInDollars": 55034013.93, - "totalPaymentInPercentage": 1.3 + "totalPaymentInDollars": 62974748.54, + "totalPaymentInPercentage": 1.35 }, { "practiceCategoryName": "Soil testing", - "totalPaymentInDollars": 3022.69, + "totalPaymentInDollars": 390.92, "totalPaymentInPercentage": 0.0 } ], - "totalPaymentInDollars": 4237144598.4, - "totalPaymentInPercentage": 98.97 + "totalPaymentInDollars": 4663257451.17, + "totalPaymentInPercentage": 99.0 }, { "statuteName": "(6)(B) Practices", "practiceCategories": [ { "practiceCategoryName": "Other planning", - "totalPaymentInDollars": 23943035.37, - "totalPaymentInPercentage": 54.51 + "totalPaymentInDollars": 25403062.95, + "totalPaymentInPercentage": 53.85 }, { "practiceCategoryName": "Conservation planning assessment", - "totalPaymentInDollars": 15917611.86, - "totalPaymentInPercentage": 36.24 + "totalPaymentInDollars": 14720378.03, + "totalPaymentInPercentage": 31.21 }, { "practiceCategoryName": "Comprehensive Nutrient Mgt.", - "totalPaymentInDollars": 3570003.1, - "totalPaymentInPercentage": 8.13 + "totalPaymentInDollars": 6530537.57, + "totalPaymentInPercentage": 13.84 }, { "practiceCategoryName": "Resource-conserving crop rotation", - "totalPaymentInDollars": 491522.25, - "totalPaymentInPercentage": 1.12 + "totalPaymentInDollars": 518558.73, + "totalPaymentInPercentage": 1.1 }, { "practiceCategoryName": "Soil health", - "totalPaymentInDollars": 4412.86, - "totalPaymentInPercentage": 0.01 + "totalPaymentInDollars": 0.0, + "totalPaymentInPercentage": 0.0 } ], - "totalPaymentInDollars": 43926585.44, - "totalPaymentInPercentage": 1.03 + "totalPaymentInDollars": 47172537.28, + "totalPaymentInPercentage": 1.0 } ] } diff --git a/src/images/alert.png b/src/images/alert.png new file mode 100644 index 00000000..e2d5acae Binary files /dev/null and b/src/images/alert.png differ diff --git a/src/images/forest.png b/src/images/forest.png index 55f2438c..f24e8b72 100644 Binary files a/src/images/forest.png and b/src/images/forest.png differ diff --git a/src/index.tsx b/src/index.tsx index 2e69806b..d69a0447 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,11 +1,11 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { BrowserRouter } from 'react-router-dom'; -import App from './app'; +import React from "react"; +import ReactDOM from "react-dom"; +import { BrowserRouter } from "react-router-dom"; +import App from "./app"; ReactDOM.render( - - - , - document.getElementById('root') + + + , + document.getElementById("root") ); diff --git a/src/main.tsx b/src/main.tsx index 4adafd34..8a222375 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,23 +1,23 @@ -import React, { useEffect } from 'react'; -import { Routes, Route, useLocation } from 'react-router-dom'; -import LandingPage from './pages/LandingPage'; -import EQIPPage from './pages/EQIPPage'; +import React, { useEffect } from "react"; +import { Routes, Route, useLocation } from "react-router-dom"; +import LandingPage from "./pages/LandingPage"; +import EQIPPage from "./pages/EQIPPage"; const ScrollToTop = (props: any) => { - const location = useLocation(); - useEffect(() => { - window.scrollTo(0, 0); - }, [location]); + const location = useLocation(); + useEffect(() => { + window.scrollTo(0, 0); + }, [location]); - return <>{props.children}; + return <>{props.children}; }; export default function Main(): JSX.Element { - return ( - - - } /> - } /> - - - ); + return ( + + + } /> + } /> + + + ); } diff --git a/src/mui.d.ts b/src/mui.d.ts index 2fa6f7a5..22b2458f 100644 --- a/src/mui.d.ts +++ b/src/mui.d.ts @@ -1,6 +1,6 @@ -import '@mui/material/styles/createPalette'; +import "@mui/material/styles/createPalette"; -declare module '@mui/material/styles/createPalette' { +declare module "@mui/material/styles/createPalette" { interface PaletteOptions { custom: PaletteColorOptions; } diff --git a/src/pages/EQIPPage.tsx b/src/pages/EQIPPage.tsx index 9319c879..188c8be9 100644 --- a/src/pages/EQIPPage.tsx +++ b/src/pages/EQIPPage.tsx @@ -1,152 +1,152 @@ -import Box from '@mui/material/Box'; -import * as React from 'react'; -import { createTheme, ThemeProvider, Typography } from '@mui/material'; -import NavBar from '../components/NavBar'; -import Drawer from '../components/ProgramDrawer'; -import SemiDonutChart from '../components/SemiDonutChart'; -import DataTable from '../components/eqip/EQIPTotalTable'; -import EqipTotalMap from '../components/eqip/EqipTotalMap'; -import chartData from '../data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json'; -import CategoryTable from '../components/eqip/CategoryTable'; -import CategoryMap from '../components/eqip/CategoryMap'; +import Box from "@mui/material/Box"; +import * as React from "react"; +import { createTheme, ThemeProvider, Typography } from "@mui/material"; +import NavBar from "../components/NavBar"; +import Drawer from "../components/ProgramDrawer"; +import SemiDonutChart from "../components/SemiDonutChart"; +import DataTable from "../components/eqip/EQIPTotalTable"; +import EqipTotalMap from "../components/eqip/EqipTotalMap"; +import chartData from "../data/eqip/EQIP_STATUTE_PERFORMANCE_DATA.json"; +import CategoryTable from "../components/eqip/CategoryTable"; +import CategoryMap from "../components/eqip/CategoryMap"; export default function EQIPPage(): JSX.Element { - const [checked, setChecked] = React.useState(0); + const [checked, setChecked] = React.useState(0); - const defaultTheme = createTheme(); - let structuralTotal = 0; - let landManagementTotal = 0; - let vegetativeTotal = 0; - let forestManagementTotal = 0; - let soilRemediationTotal = 0; - let other6ATotal = 0; - let soilTestingTotal = 0; + const defaultTheme = createTheme(); + let structuralTotal = 0; + let landManagementTotal = 0; + let vegetativeTotal = 0; + let forestManagementTotal = 0; + let soilRemediationTotal = 0; + let other6ATotal = 0; + let soilTestingTotal = 0; - let otherPlanningTotal = 0; - let conservationPlanningAssessmentTotal = 0; - let comprehensiveNutrientMgtTotal = 0; - let resourceConservingCropRotationTotal = 0; - let soilHealthTotal = 0; + let otherPlanningTotal = 0; + let conservationPlanningAssessmentTotal = 0; + let comprehensiveNutrientMgtTotal = 0; + let resourceConservingCropRotationTotal = 0; + let soilHealthTotal = 0; - // eslint-disable-next-line + // eslint-disable-next-line const cur1 = chartData.statutes.find((s) => s.statuteName === '(6)(A) Practices'); - const cur2 = chartData.statutes.find((s) => s.statuteName === '(6)(B) Practices'); - const sixATotal = cur1.totalPaymentInDollars; - const sixBTotal = cur2.totalPaymentInDollars; - const ACur = cur1.practiceCategories; - const BCur = cur2.practiceCategories; + const cur2 = chartData.statutes.find((s) => s.statuteName === "(6)(B) Practices"); + const sixATotal = cur1.totalPaymentInDollars; + const sixBTotal = cur2.totalPaymentInDollars; + const ACur = cur1.practiceCategories; + const BCur = cur2.practiceCategories; - const structuralCur = ACur.find((s) => s.practiceCategoryName === 'Structural'); - const landManagementCur = ACur.find((s) => s.practiceCategoryName === 'Land management'); - const vegetativeCur = ACur.find((s) => s.practiceCategoryName === 'Vegetative'); - const forestManagementCur = ACur.find((s) => s.practiceCategoryName === 'Forest management'); - const soilRemediationCur = ACur.find((s) => s.practiceCategoryName === 'Soil remediation'); - const other6ACur = ACur.find((s) => s.practiceCategoryName === 'Other improvement'); - const soilTestingCur = ACur.find((s) => s.practiceCategoryName === 'Soil testing'); + const structuralCur = ACur.find((s) => s.practiceCategoryName === "Structural"); + const landManagementCur = ACur.find((s) => s.practiceCategoryName === "Land management"); + const vegetativeCur = ACur.find((s) => s.practiceCategoryName === "Vegetative"); + const forestManagementCur = ACur.find((s) => s.practiceCategoryName === "Forest management"); + const soilRemediationCur = ACur.find((s) => s.practiceCategoryName === "Soil remediation"); + const other6ACur = ACur.find((s) => s.practiceCategoryName === "Other improvement"); + const soilTestingCur = ACur.find((s) => s.practiceCategoryName === "Soil testing"); - const otherPlanningCur = BCur.find((s) => s.practiceCategoryName === 'Other planning'); - const conservationPlanningAssessmentCur = BCur.find( - (s) => s.practiceCategoryName === 'Conservation planning assessment' - ); - const comprehensiveNutrientMgtCur = BCur.find((s) => s.practiceCategoryName === 'Comprehensive Nutrient Mgt.'); - const resourceConservingCropRotationCur = BCur.find( - (s) => s.practiceCategoryName === 'Resource-conserving crop rotation' - ); - const soilHealthCur = BCur.find((s) => s.practiceCategoryName === 'Soil health'); + const otherPlanningCur = BCur.find((s) => s.practiceCategoryName === "Other planning"); + const conservationPlanningAssessmentCur = BCur.find( + (s) => s.practiceCategoryName === "Conservation planning assessment" + ); + const comprehensiveNutrientMgtCur = BCur.find((s) => s.practiceCategoryName === "Comprehensive Nutrient Mgt."); + const resourceConservingCropRotationCur = BCur.find( + (s) => s.practiceCategoryName === "Resource-conserving crop rotation" + ); + const soilHealthCur = BCur.find((s) => s.practiceCategoryName === "Soil health"); - structuralTotal += Number(structuralCur.totalPaymentInDollars); - landManagementTotal += Number(landManagementCur.totalPaymentInDollars); - vegetativeTotal += Number(vegetativeCur.totalPaymentInDollars); - forestManagementTotal += Number(forestManagementCur.totalPaymentInDollars); - soilRemediationTotal += Number(soilRemediationCur.totalPaymentInDollars); - other6ATotal += Number(other6ACur.totalPaymentInDollars); - soilTestingTotal += Number(soilTestingCur.totalPaymentInDollars); + structuralTotal += Number(structuralCur.totalPaymentInDollars); + landManagementTotal += Number(landManagementCur.totalPaymentInDollars); + vegetativeTotal += Number(vegetativeCur.totalPaymentInDollars); + forestManagementTotal += Number(forestManagementCur.totalPaymentInDollars); + soilRemediationTotal += Number(soilRemediationCur.totalPaymentInDollars); + other6ATotal += Number(other6ACur.totalPaymentInDollars); + soilTestingTotal += Number(soilTestingCur.totalPaymentInDollars); - otherPlanningTotal += Number(otherPlanningCur.totalPaymentInDollars); - conservationPlanningAssessmentTotal += Number(conservationPlanningAssessmentCur.totalPaymentInDollars); - comprehensiveNutrientMgtTotal += Number(comprehensiveNutrientMgtCur.totalPaymentInDollars); - resourceConservingCropRotationTotal += Number(resourceConservingCropRotationCur.totalPaymentInDollars); - soilHealthTotal += Number(soilHealthCur.totalPaymentInDollars); + otherPlanningTotal += Number(otherPlanningCur.totalPaymentInDollars); + conservationPlanningAssessmentTotal += Number(conservationPlanningAssessmentCur.totalPaymentInDollars); + comprehensiveNutrientMgtTotal += Number(comprehensiveNutrientMgtCur.totalPaymentInDollars); + resourceConservingCropRotationTotal += Number(resourceConservingCropRotationCur.totalPaymentInDollars); + soilHealthTotal += Number(soilHealthCur.totalPaymentInDollars); - const sixAChartData = [ - { name: 'Structural', value: structuralTotal, color: '#2F7164' }, - { name: 'Land management', value: landManagementTotal, color: '#4D847A' }, - { name: 'Vegetative', value: vegetativeTotal, color: '#749F97' }, - { name: 'Forest management', value: forestManagementTotal, color: '#9CBAB4' }, - { name: 'Other improvement', value: other6ATotal, color: '#B9CDC9' }, - { name: 'Soil remediation; Soil testing', value: soilRemediationTotal + soilTestingTotal, color: '#CDDBD8' } - ]; + const sixAChartData = [ + { name: "Structural", value: structuralTotal, color: "#2F7164" }, + { name: "Land management", value: landManagementTotal, color: "#4D847A" }, + { name: "Vegetative", value: vegetativeTotal, color: "#749F97" }, + { name: "Forest management", value: forestManagementTotal, color: "#9CBAB4" }, + { name: "Other improvement", value: other6ATotal, color: "#B9CDC9" }, + { name: "Soil remediation; Soil testing", value: soilRemediationTotal + soilTestingTotal, color: "#CDDBD8" } + ]; - const sixBChartData = [ - { name: 'Other planning', value: otherPlanningTotal, color: '#2F7164' }, - { name: 'Conservation planning assessment', value: conservationPlanningAssessmentTotal, color: '#4D847A' }, - { name: 'Comprehensive Nutrient Mgt.', value: comprehensiveNutrientMgtTotal, color: '#749F97' }, - { - name: 'Resource-conserving crop rotation; Soil health', - value: resourceConservingCropRotationTotal + soilHealthTotal, - color: '#9CBAB4' - } - ]; + const sixBChartData = [ + { name: "Other planning", value: otherPlanningTotal, color: "#2F7164" }, + { name: "Conservation planning assessment", value: conservationPlanningAssessmentTotal, color: "#4D847A" }, + { name: "Comprehensive Nutrient Mgt.", value: comprehensiveNutrientMgtTotal, color: "#749F97" }, + { + name: "Resource-conserving crop rotation; Soil health", + value: resourceConservingCropRotationTotal + soilHealthTotal, + color: "#9CBAB4" + } + ]; - const totalChartData = [ - { name: '6 (A)', value: sixATotal, color: '#2F7164' }, - { name: '6 (B)', value: sixBTotal, color: '#9CBAB4' } - ]; + const totalChartData = [ + { name: "6 (A)", value: sixATotal, color: "#2F7164" }, + { name: "6 (B)", value: sixBTotal, color: "#9CBAB4" } + ]; - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EQIP: State Performance by Category of Practices - - - + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EQIP: State Performance by Category of Practices + + + EQIP provides cost-share assistance for improvements to eligible land. In the statute, Congress defined seven categories of conservation practices: (1) structural practices, such as for irrigation and livestock manure management or abatement; (2) land management @@ -158,75 +158,75 @@ export default function EQIPPage(): JSX.Element { remediation practices, such as residue and tillage management (no-till, mulch-till, or strip-till), and amendments for treating agricultural wastes; and (7) other practices, including integrated pest management, dust control, and energy improvements. - - - - - - = 1 && checked <= 7 ? 'block' : 'none' }}> - - - = 8 ? 'block' : 'none' }}> - - - - - Performance by State - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); + + + + + + = 1 && checked <= 7 ? "block" : "none" }}> + + + = 8 ? "block" : "none" }}> + + + + + Performance by State + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); } diff --git a/src/pages/LandingPage.tsx b/src/pages/LandingPage.tsx index 2c7f8cb2..02e431a3 100644 --- a/src/pages/LandingPage.tsx +++ b/src/pages/LandingPage.tsx @@ -1,70 +1,68 @@ -import * as React from 'react'; -import { CardMedia, Typography } from '@mui/material'; -import Box from '@mui/material/Box'; -import NavBar from '../components/NavBar'; -import forest from '../images/forest.png'; -import News from '../components/News'; -import Footer from '../components/Footer'; -import LandingDisplay from '../components/LandingDisplay'; -import LandingPageMapTab from '../components/LandingPageMapTab'; +import * as React from "react"; +import { CardMedia, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import NavBar from "../components/NavBar"; +import forest from "../images/forest.png"; +import News from "../components/News"; +import Footer from "../components/Footer"; +import LandingPageMapTab from "../components/LandingPageMapTab"; export default function LandingPage(): JSX.Element { - return ( - - -
- - - Understanding - - - - Policy Design: - - - + return ( + + +
+ + + Understanding + + + + Policy Design: + + + Applying Public Data and Computational Resources to - - + + Visualize Federal Agricultural, Conservation and Food Policies - -
- - - -
- - ); + +
+ + +
+ + ); } diff --git a/src/polyfill.js b/src/polyfill.js index 5e976280..40633d0d 100644 --- a/src/polyfill.js +++ b/src/polyfill.js @@ -1,3 +1,3 @@ -import '@babel/polyfill'; +import "@babel/polyfill"; // other polyfills go here diff --git a/src/styles/table.css b/src/styles/table.css new file mode 100644 index 00000000..0b3f3f7e --- /dev/null +++ b/src/styles/table.css @@ -0,0 +1,3 @@ +.tableHeader { + font-weight: 300; +} diff --git a/src/types/index.d.ts b/src/types/index.d.ts index 56a4f005..8694988b 100644 --- a/src/types/index.d.ts +++ b/src/types/index.d.ts @@ -1,43 +1,43 @@ -declare const ENV: 'development' | 'production' | 'test'; +declare const ENV: "development" | "production" | "test"; declare const PUBLIC_PATH: string; -declare module '*.json' { +declare module "*.json" { const src: string; export default src; } -declare module '*.bmp' { +declare module "*.bmp" { const src: string; export default src; } -declare module '*.gif' { +declare module "*.gif" { const src: string; export default src; } -declare module '*.jpg' { +declare module "*.jpg" { const src: string; export default src; } -declare module '*.jpeg' { +declare module "*.jpeg" { const src: string; export default src; } -declare module '*.png' { +declare module "*.png" { const src: string; export default src; } -declare module '*.webp' { +declare module "*.webp" { const src: string; export default src; } -declare module '*.svg' { - import * as React from 'react'; +declare module "*.svg" { + import * as React from "react"; export const ReactComponent: React.FunctionComponent>; @@ -45,7 +45,7 @@ declare module '*.svg' { export default src; } -declare module '*.css' { +declare module "*.css" { const classes: { readonly [key: string]: string }; export default classes; } diff --git a/src/utils/apiutil.js b/src/utils/apiutil.js new file mode 100644 index 00000000..3ce81edd --- /dev/null +++ b/src/utils/apiutil.js @@ -0,0 +1,20 @@ +export async function getJsonDataFromUrl(url) { + const response = await fetch(url, {method:"GET", mode:"cors"}); + if (response.status === 200) { + return response.json(); + } else { + return []; + } +} + +export function convertAllState(inlist) { + // create a json looking string out of the Json list + let conv_str = inlist.reduce((result, element) => { + return`${result}"${element.code}": "${element.name}", `; + }, ""); + + // remove the very last space and comma + conv_str = `{ ${ conv_str.substring(0, conv_str.length -2) } }`; + + return JSON.parse(conv_str); +} diff --git a/src/utils/math.js b/src/utils/math.js deleted file mode 100644 index f9824c64..00000000 --- a/src/utils/math.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Return the sum of an array of numbers - * @param {number[]} inputs - * @return {number} - */ -export const sum = (inputs) => inputs.reduce((total, input) => total + input, 0); diff --git a/src/utils/math.test.js b/src/utils/math.test.js deleted file mode 100644 index 6b1319ee..00000000 --- a/src/utils/math.test.js +++ /dev/null @@ -1,7 +0,0 @@ -import { sum } from './math'; - -describe('sum function should', () => { - test('return sum of an array of numbers', () => { - expect(sum([1, 2])).toBe(3); - }); -}); diff --git a/webpack.common.js b/webpack.common.js index f78ba87b..f67de232 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -94,6 +94,9 @@ module.exports = { template: 'src/index.html' }), new Webpack.DefinePlugin({ + "process.env": { + "APP_ENV": JSON.stringify(process.env.APP_ENV) + }, PUBLIC_PATH: JSON.stringify(process.env.PUBLIC_PATH || '/') // The base path for the app. It must end with a slash. }), new FaviconsWebpackPlugin({