{"id":325843,"name":"IEC 61400-15-2 EYA DEF","description":"Defines a complementary format for energy yield assessment reporting to the main written report, aimed at facilitating automated solutions for data exchange.","url":"https://github.com/IEC-61400/eya-def","last_synced_at":"2026-04-17T04:02:58.581Z","repository":{"id":237283850,"uuid":"500957474","full_name":"IEC-61400/eya-def","owner":"IEC-61400","description":"A digital format for exchange of wind energy yield assessment reporting information as defined by IEC 61400-15-2","archived":false,"fork":false,"pushed_at":"2025-11-18T09:19:06.000Z","size":2205,"stargazers_count":20,"open_issues_count":17,"forks_count":1,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-04-06T22:03:08.891Z","etag":null,"topics":["data-exchange","digitalisation","energy-yield-assessment","json","json-schema","reporting","wind-energy","wind-energy-analytics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IEC-61400.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-07T18:22:23.000Z","updated_at":"2026-03-24T04:13:23.000Z","dependencies_parsed_at":"2025-11-23T01:01:31.703Z","dependency_job_id":null,"html_url":"https://github.com/IEC-61400/eya-def","commit_stats":null,"previous_names":["iec-61400-15/eya_def","iec-61400/eya-def"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IEC-61400/eya-def","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IEC-61400","download_url":"https://codeload.github.com/IEC-61400/eya-def/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"IEC-61400","name":"IEC 61400","uuid":"77795426","kind":"organization","description":"Digital resources for IEC 61400: Wind energy generation systems","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/77795426?v=4","repositories_count":1,"last_synced_at":"2026-02-16T23:31:36.875Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/IEC-61400","funding_links":[],"total_stars":null,"followers":11,"following":0,"created_at":"2023-03-03T19:59:14.146Z","updated_at":"2026-02-16T23:31:36.875Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IEC-61400","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IEC-61400/repositories"},"packages":[],"commits":{"id":11630550,"full_name":"IEC-61400/eya-def","default_branch":"master","total_commits":242,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":48.4,"dds":0.07851239669421484,"past_year_total_commits":6,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.0,"past_year_dds":0.16666666666666663,"last_synced_at":"2026-04-12T02:02:46.518Z","last_synced_commit":"9fe89f9494ce3e4eec87a4937311fcd8adf91ffd","created_at":"2026-02-17T19:01:38.089Z","updated_at":"2026-04-12T02:02:32.838Z","committers":[{"name":"christianj","email":"christianj@naturalpower.com","login":"jonssonchristian","count":223},{"name":"Jason Fields","email":"v15wannabe@gmail.com","login":"Dynorat","count":10},{"name":"Christian Jonsson","email":"98944372+christianjnaturalpower","login":"christianjnaturalpower","count":6},{"name":"stephenholleran","email":"stephen@brightwindanalysis.com","login":"stephenholleran","count":2},{"name":"SteveCordleBW","email":"91064627+SteveCordleBW","login":"SteveCordleBW","count":1}],"past_year_committers":[{"name":"Christian Jonsson","email":"98944372+jonssonchristian","login":"jonssonchristian","count":5},{"name":"SteveCordleBW","email":"91064627+SteveCordleBW","login":"SteveCordleBW","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400%2Feya-def/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-14T00:00:07.982Z","repositories_count":6213198,"commits_count":903301598,"contributors_count":34926901,"owners_count":1144206,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"IEC-61400-15/eya_def","html_url":"https://github.com/IEC-61400-15/eya_def","last_synced_at":"2025-12-09T19:09:54.953Z","status":null,"issues_count":28,"pull_requests_count":13,"avg_time_to_close_issue":15350767.5,"avg_time_to_close_pull_request":4267733.8,"issues_closed_count":14,"pull_requests_closed_count":10,"pull_request_authors_count":1,"issue_authors_count":3,"avg_comments_per_issue":1.0714285714285714,"avg_comments_per_pull_request":0.7692307692307693,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":9,"past_year_pull_requests_count":8,"past_year_avg_time_to_close_issue":907.0,"past_year_avg_time_to_close_pull_request":1257622.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":6,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.2222222222222222,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":6,"created_at":"2025-08-29T16:59:34.163Z","updated_at":"2025-12-09T19:09:54.953Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400-15%2Feya_def","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/IEC-61400-15%2Feya_def/issues","issue_labels_count":{"enhancement":19,"question":6,"bug":3,"good first issue":3,"help wanted":1},"pull_request_labels_count":{"enhancement":8,"documentation":1,"bug":1},"issue_author_associations_count":{"COLLABORATOR":26,"NONE":2},"pull_request_author_associations_count":{"COLLABORATOR":13},"issue_authors":{"jonssonchristian":26,"WindyMark3":1,"SimonHH":1},"pull_request_authors":{"jonssonchristian":13},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-01-23T00:00:08.538Z","repositories_count":12868790,"issues_count":35672347,"pull_requests_count":115930301,"authors_count":11124903,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"enhancement":4,"bug":3,"good first issue":3},"past_year_pull_request_labels_count":{"enhancement":2,"documentation":1,"bug":1},"past_year_issue_author_associations_count":{"COLLABORATOR":8},"past_year_pull_request_author_associations_count":{"COLLABORATOR":6},"past_year_issue_authors":{"jonssonchristian":8},"past_year_pull_request_authors":{"jonssonchristian":6},"maintainers":[{"login":"jonssonchristian","count":39,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jonssonchristian"}],"active_maintainers":[{"login":"jonssonchristian","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jonssonchristian"}]},"events":{"total":{"WatchEvent":1},"last_year":{"WatchEvent":1}},"keywords":["data-exchange","digitalisation","energy-yield-assessment","json","json-schema","reporting","wind-energy","wind-energy-analytics"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/eya-def-tools-python-package.yml","sha":null,"kind":"manifest","created_at":"2024-04-30T17:59:48.059Z","updated_at":"2024-04-30T17:59:48.059Z","repository_link":"https://github.com/IEC-61400/eya-def/blob/main/.github/workflows/eya-def-tools-python-package.yml","dependencies":[{"id":17823759543,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":17823759544,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"eya_def_tools/pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-04-30T17:59:48.211Z","updated_at":"2024-04-30T17:59:48.211Z","repository_link":"https://github.com/IEC-61400/eya-def/blob/main/eya_def_tools/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"eya_def_tools/requirements-dev.txt","sha":null,"kind":"manifest","created_at":"2024-04-30T17:59:48.281Z","updated_at":"2024-04-30T17:59:48.281Z","repository_link":"https://github.com/IEC-61400/eya-def/blob/main/eya_def_tools/requirements-dev.txt","dependencies":[{"id":17823759719,"package_name":"black","ecosystem":"pypi","requirements":"==24.4.2","direct":true,"kind":"development","optional":false},{"id":17823759720,"package_name":"flake8","ecosystem":"pypi","requirements":"==7.0.0","direct":true,"kind":"development","optional":false},{"id":17823759721,"package_name":"isort","ecosystem":"pypi","requirements":"==5.13.2","direct":true,"kind":"development","optional":false},{"id":17823759722,"package_name":"mypy","ecosystem":"pypi","requirements":"==1.10.0","direct":true,"kind":"development","optional":false},{"id":17823759723,"package_name":"pip_audit","ecosystem":"pypi","requirements":"==2.7.2","direct":true,"kind":"development","optional":false},{"id":17823759724,"package_name":"pre-commit","ecosystem":"pypi","requirements":"==3.7.0","direct":true,"kind":"development","optional":false},{"id":17823759725,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"==5.0.0","direct":true,"kind":"development","optional":false},{"id":17823759726,"package_name":"sphinx","ecosystem":"pypi","requirements":"==7.3.7","direct":true,"kind":"development","optional":false},{"id":17823759727,"package_name":"types-jsonschema","ecosystem":"pypi","requirements":"==4.21.0.20240331","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"eya_def_tools/requirements-erd.txt","sha":null,"kind":"manifest","created_at":"2024-04-30T17:59:50.502Z","updated_at":"2024-04-30T17:59:50.502Z","repository_link":"https://github.com/IEC-61400/eya-def/blob/main/eya_def_tools/requirements-erd.txt","dependencies":[{"id":17823761660,"package_name":"erdantic","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":17823761740,"package_name":"pygraphviz","ecosystem":"pypi","requirements":"==1.12","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"eya_def_tools/requirements.txt","sha":null,"kind":"manifest","created_at":"2024-04-30T17:59:51.317Z","updated_at":"2024-04-30T17:59:51.317Z","repository_link":"https://github.com/IEC-61400/eya-def/blob/main/eya_def_tools/requirements.txt","dependencies":[{"id":17823761769,"package_name":"email-validator","ecosystem":"pypi","requirements":"==2.1.1","direct":true,"kind":"runtime","optional":false},{"id":17823761770,"package_name":"jsonschema","ecosystem":"pypi","requirements":"==4.21.1","direct":true,"kind":"runtime","optional":false},{"id":17823761771,"package_name":"pandas","ecosystem":"pypi","requirements":"==2.2.1","direct":true,"kind":"runtime","optional":false},{"id":17823761772,"package_name":"pandas-stubs","ecosystem":"pypi","requirements":"==2.2.1.240316","direct":true,"kind":"runtime","optional":false},{"id":17823761773,"package_name":"pycountry","ecosystem":"pypi","requirements":"==23.12.11","direct":true,"kind":"runtime","optional":false},{"id":17823761774,"package_name":"pydantic","ecosystem":"pypi","requirements":"==2.7.1","direct":true,"kind":"runtime","optional":false},{"id":17823761775,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.2.0","direct":true,"kind":"runtime","optional":false},{"id":17823761776,"package_name":"ruamel.yaml","ecosystem":"pypi","requirements":"==0.18.6","direct":true,"kind":"runtime","optional":false}]}],"score":5.220355825078324,"created_at":"2025-10-03T00:01:45.098Z","updated_at":"2026-04-17T04:02:58.593Z","avatar_url":"https://github.com/IEC-61400.png","language":"Python","category":"Renewable Energy","sub_category":"Wind Energy","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# The IEC 61400-15-2 EYA DEF\n\n[![EYA DEF tools linting and testing](\nhttps://github.com/IEC-61400-15/eya_def/actions/workflows/eya-def-tools-python-package.yml/badge.svg)](\nhttps://github.com/IEC-61400-15/eya_def/actions/workflows/eya-def-tools-python-package.yml)\n[![Checked with mypy](\nhttp://www.mypy-lang.org/static/mypy_badge.svg)](\nhttp://mypy-lang.org/)\n[![Ruff](\nhttps://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](\nhttps://github.com/astral-sh/ruff)\n[![pre-commit](\nhttps://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](\nhttps://github.com/pre-commit/pre-commit)\n\nThe IEC 61400-15-2 Wind Energy Yield Assessment Digital Exchange Format\n(EYA DEF) defines a complementary format for energy yield assessment\nreporting to the main written report, aimed at facilitating automated\nsolutions for data exchange. It is organised as a deeply nested\nhierarchical data model and published in the form of a JSON Schema.\nWhereas the written EYA report provides an effective narrative for a\nhuman reader, the EYA DEF provides the clear definitions of namespace,\nstructure and format required for computer systems to exchange energy\nyield assessment data. It provides a standard protocol for data\nexchange, so that producers and consumers of the data have a common and\nclear definition of the data structure and meaning of data fields. The\nJSON Schema also facilitates data validation, so that the receiver of\nEYA DEF data automatically can validate that the data is fully compliant\nwith the data model specification.\n\nThis repo provides all source data files for the EYA DEF, along with\nassociated material and tools, as well as serving as the platform for\ndevelopment work.\n\nThis README file only briefly covers some key topics for convenient\nreference. Full details will be provided at a separate documentation\nsite, which still needs to be developed.\n\n## Status\n\nPlease note that the EYA DEF is currently in *draft* status and will be\nsubject to extension and modification. Some elements are currently\nincomplete. Please see the issues page for details of open items.\n\nWe welcome new people to get involved in the development work.\n\n## Aims and use cases\n\nThe EYA DEF aims to facilitate the following:\n\n- data sharing with a wider range of stakeholders in an automated\n  fashion;\n- securing of data traceability and accuracy;\n- integration with systems that process EYA data, such as financial\n  model software;\n- comparison of EYA results from different parties, for example from\n  different third-party consultants; and\n- automated generation of reporting tables.\n\nFor example, if a project developer receives EYA DEF JSON documents from\nits independent consultants, the data can immediately be loaded into the\nrelevant internal databases and applications, and the results compared\nbetween the different consultants and with internal findings. Then the\ndeveloper can share the EYA DEF JSON documents with lenders, investors\nand any other financial institutions who require the information to\nevaluate the project. They in turn will all be able to pull the data\nthey need into the relevant applications without the requirement for any\nmanual data processing. The same goes for other project stakeholders who\nrequire EYA reporting data.\n\nIt is also expected that the EYA DEF data models will provide a helpful\nreference for companies developing energy yield assessment software.\nWhilst the data models used internally in such software of course do not\nneed to mirror the EYA DEF in order to be able to export results in EYA\nDEF format, the EYA DEF data models may in some circumstances prove\nuseful and avoid the need for completely new designs of data models.\n\n## The EYA DEF JSON Schema\n\nThe latest version of EYA DEF JSON Schema is available here [here](\njson_schema/iec_61400-15-2_eya_def.schema.json). The JSON Schema is the\nprimary definition of the EYA DEF data model.\n\n## Example EYA DEF JSON documents\n\nExamples of JSON document files that implement (comply with) the JSON\nSchema are found [here](json_schema/examples).\n\n## Python package\n\nThis repo includes the Python package [eya_def_tools](eya_def_tools),\nwhich provides a convenient interface for working with the EYA DEF data\nmodel in a Python environment. It has a separate README file, which is\nlocated [here](eya_def_tools/README.md).\n\n## Schema diagrams\n\nThe Python package (see [below](#python-package)) uses [erdantic](\nhttps://erdantic.drivendata.org/stable/) to generate graphical\nrepresentations of the `pydantic` data model. Note that the data types\nshown in the diagrams are the Python types defined in the `pydantic`\ndata model and not the JSON Schema types.\n\nThe top levels of the current draft of the data model is illustrated\nbelow.\n\n  ![data_model_top_levels_diagram](diagrams/eya_def_document_top_level.svg)\n\n## Basic example of format\n\nThe text below shows an example of a small subset of energy yield\nassessment reporting data from a title page, in unstructured form.\n\n```text\nBarefoot Wind Farm EYA\n\nDocument ID.: 12345678, version B\n7th of October 2023\n\nConfidential\nPrepared for Miranda Investments Limited\n```\n\nThe equivalent data is represented in structured EYA DEF JSON format\nbelow. Each piece of information appears together with a standard field\nname.\n\n```json\n{\n \"confidentiality_classification\": \"Confidential\",\n \"document_id\": \"12345678\",\n \"document_version\": \"B\",\n \"issue_date\": \"2023-10-07\",\n \"project_name\": \"Barefoot Wind Farm\",\n \"receiving_organisations\": [\n    {\n      \"abbreviation\": \"Miranda\",\n      \"address\": \"9 Acosta St., Republic of Miranda\",\n      \"contact_name\": \"Luis Bunuel\",\n      \"name\": \"Miranda Investments Limited\"\n    }\n  ],\n \"title\": \"Barefoot Wind Farm EYA\",\n}\n```\n\n## Data security and integrity\n\nThe EYA DEF specification and toolset in this repo covers the schema\ncontent and imposes no requirements with regards to technology for data\ntransmission and storage, or protocols for digital signatures and\nencryption. In the simplest form of data exchange, an EYA DEF document\nmay simply be transmitted as a JSON text data file attached to an email\ntogether with the main written report. It is however expected that\nsecure APIs for EYA DEF documents will be developed to automate the data\nexchange process and provide comprehensive functionality to ensure data\nsecurity and integrity. The user of this standard should adopt\nappropriate best practices to ensure data security and integrity in\ntransmission and storage of EYA DEF data. Adherence to such best\npractices will minimise the risk for data manipulation or unauthorised\naccess. It is recommended that encoding and compression of the data be\nspecified at the point of access (for example in the API specification).\n\n## Developer guidance\n\nFor guidance related to tools and processes for development work, see\nthe [Python package README](eya_def_tools/README.md). The Python package\nforms an integral part of the development workflow.\n\n## Acknowledgements\n\nThe EYA DEF has been developed with contributions from the following\npeople: Christian Jonsson, Stephen Holleran, Jason Fields, Charlie\nPlumley, Bjarke Olsen, Alina Brenneke, Philippe Beaucage, Mark\nStoelinga, Andrew Henderson, Mark Kelly, Steve Clark, Thomas van Delft,\nCraig Robinson, Lars Levermann, Jan Heinen, Nikolaos Simisiroglou,\nAndres Blanco, Jonny Crease, Roy Spence, Demetrios Zigras, Mouhamet\nDiallo, Mitchel Scott, Steve Cordle and Okan Sargin.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/325843","html_url":"https://ost.ecosyste.ms/projects/325843"}