RALS · Renewable Asset Listing Standard · v0.1 · Working Draft · 2026-05-15

The open standard for machine-readable renewable energy asset listings.

RALS defines a vendor-neutral YAML format for describing wind, solar, BESS, hydro, and hybrid assets offered for sale or refinancing. Structured for AI agents and deal teams alike — with two built-in confidentiality tiers and a bring-your-own-data-room design.

Format
.orls.yaml · .well-known/orls.yaml
Version
0.1 — Working Draft
License
CC BY 4.0 (spec) · MIT (impl)
Auth
OAuth 2.0 + PKCE
Asset Classes
Wind · Solar · BESS · Hydro · Hybrid
Tiers
public · nda_required · final_shortlist
Principles
P1 Machine-first → P5 Compliance-anchored
Status
Open for Comment

What RALS Solves

01
Fragmented formats
Every advisor sends a different Excel teaser. RALS replaces bespoke templates with one structured YAML document any system can parse.
→ One YAML, any buyer
02
Data room opacity
Sellers keep their Drooms and Datasites. RALS provides the structured index that sits in front of them — machine-readable, diffable, version-controlled.
→ Index, not replacement
03
AI agent incompatibility
LLM-based acquisition agents cannot parse proprietary PDF teasers. RALS is machine-first by design: YAML 1.2, explicit field taxonomy, typed values.
→ Agent-native format
04
Confidentiality as afterthought
RALS bakes in three tiers — public, nda_required, and final_shortlist — with OAuth 2.0 token exchange for authenticated access. No bolted-on watermarking.
→ Two-tier by design

Document Structure

Two-tier confidentiality

Every RALS field is classified as public, nda_required, or final_shortlist. The Teaser Profile (public fields only) is discoverable by any agent. The Full Profile requires OAuth 2.0 token exchange after NDA execution.

Sellers continue to operate their own data rooms. RALS references them — it doesn't replace them. The process.data_room_url field points to the existing room.

Six required top-level sections: identity, technical, grid_offtake, financial, legal_permits, process.

# Teaser Profile example (public fields only) rals_version: "0.1" document_id: "rals:01HC4N8P5Q7R2S6T9V3W1X4Y5Z" generated_at: "2026-05-15T10:00:00Z" identity: asset_name: "Project Aeolus" # [P] asset_type: onshore_wind # [P] lifecycle_stage: operating # [P] country: DE # [P] total_capacity_mw: 148.5 # [P] coordinates: [9.0847, 54.1923] # [N] seller_legal_entity: "..." # [N] internal_reference: "AEO-2026" # [F]
public    nda_required    final_shortlist

Asset Classes

onshore_wind
Wind Onshore
Land-based turbines. Supports turbine count, hub height, P50/P75/P90 yield.
offshore_wind
Wind Offshore
Fixed and floating. Water depth, foundation type, O&M vessel access.
solar_pv
Solar PV
Utility-scale. DC/AC ratio, tracker type, module technology, bifaciality.
bess
Battery Storage
MW + MWh capacity, duration, chemistry, revenue stack (CM, FR, arbitrage).
hybrid · hydro
Hybrid & Hydro
Co-located generation + storage, run-of-river and reservoir hydro.

Discovery & Authentication

Discovery mechanisms

01
Well-known URL
/.well-known/orls.yaml — preferred, auto-discoverable by agents.
preferred
02
DNS TXT record
_rals.domain.com — for sellers without web hosting.
fallback
03
Public Registry
RALS registry at registry.rals.energy — opt-in indexing.
optional

Auth flow

  1. Agent requests NDA token
    Buyer's agent discovers the Teaser Profile and initiates OAuth 2.0 PKCE flow.
  2. Seller approves
    Seller's system issues a scoped Bearer token for nda_required fields.
  3. Full Profile served
    Agent fetches the Full Profile with NDA-tier fields included.
  4. Final shortlist unlock
    final_shortlist fields unlock after LOI submission and seller confirmation.

Reference Implementations

Language Package Maintained by Status Install
TypeScript / Node.js @rals/validator RALS Working Group stable npm i @rals/validator
Python rals-py Community beta pip install rals-py
Go go-rals Community planned go get github.com/mahlerhutter/rals/go-rals
JSON Schema rals.schema.json RALS Working Group stable rals.energy/schema/v0.1/…

Tools

RALS Document Validator
Validates against the official JSON Schema + semantic checks
Input — paste .rals.yaml
Results
Paste an .rals.yaml document and click Validate.
RALS Document Generator
Generates a valid .rals.yaml via Claude API — requires ANTHROPIC_API_KEY on the server
Generated .rals.yaml
Configure parameters and click Generate.\n\nRequires ANTHROPIC_API_KEY set on the server.

Jurisdiction Packages

Country-specific evidence requirements, readiness thresholds, and risk taxonomy for 9 markets. What does "Ready-to-Build" mean in Germany vs Vietnam? These guides define it precisely — permit by permit, grid contract by grid contract.

→ Browse all jurisdiction guides