Project registration is tied to a single obligated party and records project-level information such as funding source and amounts. Projects are limited to a single physical address but may cover many individual charging port deployments. Station registration (based on address) is recorded in parallel with project onboarding. While a project is limited to a single station, a station may receive funding from multiple projects over time. If a second project is applied to a station that is already in the system, then it should be linked to the existing station rather than generating a new station entry.
RAW files:
- JSON: /schemas/project.json
- YAML: /schemas/project.yaml
# $schema: "https://json-schema.org/draft/2020-12/schema"
$id: "./project.schema.json"
$comment: "Copyright (c) 2024, David Herron, under the BSD 3-Clause License"
title: "Project"
description: |
Project registration is tied to a single obligated party and records project-level information such as funding source and amounts. Projects are limited to a single physical address but may cover many individual charging port deployments. Station registration (based on address) is recorded in parallel with project onboarding. While a project is limited to a single station, a station may receive funding from multiple projects over time. If a second project is applied to a station that is already in the system, then it should be linked to the existing station rather than generating a new station entry.
type: "object"
required:
- project_id
- station_id
- org_name
- org_address
- org_city
- org_state
- org_zip
- poc_email
- poc_first_name
- poc_last_name
- project_award_date
- primary_funding_source
- primary_funding
- utility_makeready
- utility_funding_other
- other_makeready
- other_funding_other
- cost_share
- equipment_cost
- install_cost
- property_cost
- der_equipment_cost
- der_install_cost
- distribution_costs
- service_costs
- dac_type
- in_dac
- dac_proximate
- total_power
properties:
project_id:
description: "Unique identification code specific to individual funding application or contract. Project ID is supplied by [Department] upon approval of funding."
type: "string"
# default=yes part 680=yes
station_id:
description: "Unique identity specific to the physical location of the station (site) funded by the project. Station ID must be same as the permanent station identifier provided to third parties pursuant to CFR 23 § 680.116(c)(1)."
type: "string"
# default=yes part 680=yes
org_name:
description: "Organization name of the obligated party."
type: string
# default=yes part 680=no
org_address:
description: Street address of obligated party.
type: string
# default=yes part 680=no
org_city:
description: City of obligated party.
type: string
# default=yes part 680=no
org_state:
description: Valid state code of obligated party.
type: string
# default=yes part 680=no
org_zip:
description: |
Valid ZIP Code of entity responsible for operation
and maintenance of the of the funded charging station.
type: string
$ref: './common.json#/definitions/zipCode'
# default=yes part 680=no
poc_email:
description: Obligated party point of contact valid email address
type: string
format: email
# default=yes part 680=no
poc_first_name:
description: Obligated party point of contact first name
type: string
# default=yes part 680=no
poc_last_name:
description: Obligated party point of contact last name
type: string
# default=yes part 680=no
project_award_date:
description: Date when project funding was awarded
type: string
format: date-time
# default=yes part 680=no
primary_funding_source:
description: Primary public funding source for the project/application
type: string
# default=yes part 680=no
primary_funding:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Total funding (in USD) station received from the primary funding source dedicated
to station deployment. (should not include any funding for station operation costs)
type: number
minimum: 0
utility_makeready:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Total funding (in USD) the project received from electric utilities
dedicated to infrastructure make-ready
type: number
minimum: 0
utility_funding_other:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Total funding (in USD) the project received from utility for equipment
or other non-make-ready costs (should not include any funding for operational costs)
type: number
minimum: 0
other_makeready:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Total funding (in USD) other public funding received dedicated to infrastructure make-ready
type: number
minimum: 0
other_funding_other:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Amount of other public funding project received for equipment
or other non-make-ready costs (should not include any funding for operational costs)
type: number
minimum: 0
cost_share:
# cost; /* float(2) */ // default=yes part 680=no
description: |
Funding amount project has received from other (private,
non-utility) sources when combined with primary_funding
and utility_funding and other_public_funding equals
the total cost of the charging installation
type: number
minimum: 0
equipment_cost:
# cost; /* float(2) */ // default=no part 680=yes
description: Cost (in USD) to acquire funded charging equipment.
type: number
minimum: 0
install_cost:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) for all labor and materials costs (including electrical equipment)
necessary to necessary to install charging equipment.
type: number
minimum: 0
property_cost:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) to acquire real property on which to install funded chargers.
type: number
minimum: 0
der_equipment_cost:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) to acquire distributed energy resource equipment.
type: number
minimum: 0
der_install_cost:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) for all labor and materials costs (including electrical equipment)
necessary to install distributed energy resources equipment.
type: number
minimum: 0
distribution_costs:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) of contributions in aid of construction for line extensions
and upgrades necessary to install chargers.
type: number
minimum: 0
service_costs:
# cost; /* float(2) */ // default=no part 680=yes
description: |
Cost (in USD) of contributions in aid of construction for service upgrade
costs for customer transformers, poles, meters, and other utility service
equipment necessary to install chargers.
type: number
minimum: 0
dac_type:
# default=no part 680=no
description: |
Method, model or program definition of disadvantaged community.
For example CEJST 1.0.
type: string
in_dac:
# default=no part 680=no
description: Project is located inside of disadvantaged community as specified by dac_type.
type: boolean
dac_proximate:
# default=no part 680=no
description: |
Project is located within a program specified distance from disadvantaged community
as as specified by dac_type.
type: boolean
total_power:
# float default=no part 680=no
description: |
The total charger power capacity (in kW) deployed by the project
- if charging equipment share power supplies, only the maximum
simulataneous power output should be reported.
type: number
minimum: 0