Skip to main content

Showing disclosures

Electricity is a regulated purchase. Every plan carries disclosure documents the customer is entitled to see, and you must make them accessible whenever a plan is displayed — before enrollment.

Where they are

Each plan returns a documents[] array:

residentialPlans(zipCode: "77002") {
title
documents { type url title }
}
"documents": [
{ "type": "EFL", "url": "https://.../efl.pdf", "title": null },
{ "type": "TOS", "url": "https://.../tos.pdf", "title": null },
{ "type": "YRAC", "url": "https://.../yrac.pdf", "title": null }
]

Surface each as a link on the plan card or detail view.

Document types vary by state

type is a LinkType enum, and which types appear depends on the market:

  • TexasEFL (Electricity Facts Label), TOS (Terms of Service), YRAC (Your Rights as a Customer).
  • PennsylvaniaCONTRACT_SUMMARY and TOS (no EFL/YRAC).
  • Other states — their own required disclosures. The full enum also includes PREPAID_DISCLOSURE_STATEMENT, ENVIRONMENTAL_DISCLOSURE, ARBITRATION_ADDENDUM, COMM_POLICY, PAYMENT_TERMS, and ENROLLMENT.

Don't hard-code an assumption that a specific type is present. Render whatever documents[] contains, labeled by type. An empty array is valid for some data — handle it gracefully rather than treating it as an error.

ENROLLMENT is different

A documents[] entry of type ENROLLMENT links to the supplier's own enrollment page — it is not a PowerHQ-hosted flow, and it isn't guaranteed to be present. For a PowerHQ checkout, use the plan's headlessEnrollmentUrl / enrollmentUrl (see Embedded checkout) — don't route customers to the ENROLLMENT document.

The compliance rule

The plan's disclosure documents must be accessible to the customer whenever the plan is displayed, and before they enroll.

In practice: link the relevant documents[] (at minimum the primary disclosure — EFL in Texas, Contract Summary in PA) on any surface where the plan and its price appear. If a customer can see the price, they should be able to open the disclosure.

Checklist

  • Render every entry in documents[], labeled by type.
  • Don't assume EFL (or any type) exists — it's state-specific.
  • Treat an empty documents[] as valid, not an error.
  • Don't use the ENROLLMENT document as your checkout link — use headlessEnrollmentUrl.