Use cases
Reports are built for scenarios where comparison is the point:- Market expansion analysis. You are evaluating which cities to expand into next. Generate a report comparing permit requirements, fee structures, and inspection schedules across your target markets. Identify the jurisdictions with the lowest barriers to entry before committing resources.
- Project requirement summaries. You have active projects in a dozen jurisdictions and need to distribute a unified requirements sheet to your teams. Pull a single report covering all project locations and the data points each team needs, then share the result as a CSV or integrate it into your project management system.
- Compliance comparison. Your engineering team needs to understand how building codes differ between jurisdictions for a specific regulatory area. Compare insulation R-values, fire sprinkler thresholds, or permit requirements across every county in a state to identify where your standard designs need modification.
The matrix format
The matrix report organizes results into rows, one per AHJ. Each row contains avalues object where the keys are data point type IDs and the values are published value objects for that jurisdiction.
To generate a matrix, send a POST request with the AHJ IDs and data point type IDs you want to compare:
10 might be “Permit Required”, 20 might be “Inspection Frequency”, and 30 might be “Permit Fee”. You can look up the human-readable names for any data point type ID using GET /v1/data-points/types. See the data points concept page for more on types and values, or use the copy-ready ID arrays in the standard solar data point types.
If a jurisdiction does not have a value for a particular data point type, that
cell is returned as
null. Your code should handle null cells rather than
assuming every data point type has a value for every AHJ.CSV export
For workflows that feed into spreadsheets, compliance trackers, or other tools that consume flat files, you can export the same comparison as a downloadable CSV. The request body is identical to the matrix endpoint:Content-Type: text/csv header. The -o flag saves it directly to a local file. The CSV contains the same data as the matrix response, flattened into rows and columns suitable for import into any spreadsheet application.
AHJ access control
Report endpoints enforce the same access controls as the rest of the API. If you include AHJ IDs that are outside your organization’s subscription, the behavior depends on the endpoint:- Matrix reports return data for the AHJs you have access to and include a
warningsarray listing any excluded IDs:
- CSV exports silently filter out unauthorized AHJs. The exported file only contains data for jurisdictions in your subscription, with no warning metadata in the file itself.
Next steps
Matrix report
Full API reference for
POST /v1/reports/matrix — request schema and
response format.CSV export
Full API reference for
POST /v1/reports/export — export comparisons as
downloadable CSV.