Capacity Tests

Automated Capacity Tests

Solesca’s Automated Capacity Test delivers investment-grade insight into how your system performs in the real world. Built on ASTM E2848-13 methodology, every report is grounded in industry best practices. Beyond automating standard filters, Solesca intelligently identifies the most statistically robust Reporting Conditions (RC) to minimize bias and produce the most accurate analysis.

Each test you pay for corresponds to one project, or system. You are able to pay once and perform unlimited amounts of tests on that project. This allows you to test different reporting conditions and boundary constraints at will.

To create a capacity test, go to Capacity Tests (opens in a new tab), click "+ Capacity Test", and go through the process of uploading data, setting reporting conditions, and running a test.

ASTM E2848-13

The foundation of this tool is the ASTM E2848-13 "Standard Test Method for Reporting Photovoltaic Non-Concentrator System Performance." This is the industry-standard methodology for performing a capacity test. A Capacity Test is simply an application of this standard which compares the expected (simulated via SAM, SolarFarmer, or PVsyst) to the actual measured output of the build system. Comparison is a multi-step process which includes date filtering, shade filtering, irradiance filtering, regression modeling, and finding the optimal RC.

1. Data Ingestion

Any test requires two crucial pieces of data, the expected data and the measured data.

  • Expected data can be taken directly from our project outputs via SAM or SolarFarmer or you can upload a PVsyst. Please make sure that the PVsyst upload is formatted correctly and is in accordance with this template: Solesca PVsyst Capacity Test Upload Template. Please do not modify the column headers and put all row data in the format described below:
Column NameUnitsNotes
TimeStampMM/DD/YYYY HH:MMMust be in same Timezone as measured data and formatted as the units described. Can handle 1hr, 15min, 5min intervals
E_GridkWEnergy being measured at the meter, in kW.
GlobIncW/m²Pyronometer placed on the Plane Of Array of the system.
GlobBakW/m²Pyronometer placed on the Back Plane of Array. Set all entries to 0 if not bifacial system.
T_AmbCAmbient Temperatue measured onsite in Celcius.
WindVelm/s,Wind Velocity measured onsite in m/s.
FShdBm0-1.0Beam Shading Loss Factor (with 1.0 being no shade and 0.0 being fully shaded)
šŸ’”

When running a Capacity Test it is industry standard to have 0% unavailability losses. Plesae make sure to set unavailability for your design losses to 0 for the Expected Data!

  • Measured data must be uploaded as well. Please take your measured data that you have collected and put it into this template here: Solesca Measured Capacity Test Upload Template . The measured data must have correct, local-time timestamps at the proper interval (hour, 15min, 5min, etc) as well as have all of the proper formatting for each column. Please do not modify the column headers and put all row data in the format described below:
Column NameUnitsNotes
TimeStampMM/DD/YYYY HH:MMMust be in same Timezone as expected data and formatted as the units described. Can handle 1hr, 15min, 5min, 1min intervals
E_Grid (kW)kWEnergy being measured at the meter, in kW.
POA_Front (w/m^2)W/m²Pyronometer placed on the Plane Of Array of the system. For tracker systems, this must be following the tracker.
POA_Back (w/m^2)W/m²Pyronometer placed on the Back Plane of Array. For non-bifacial systems, please set this to 0 for every TimeStamp.
T_Amb (C)CAmbient Temperatue measured onsite in Celcius.
WindVel (m/s)m/s,Wind Velocity measured onsite in m/s.

2. Reporting Conditions Boundary Setting

In Solesca, you can set many parameters for the test. Each corresponds to a specific boundary condition. We set each to default industry standards so all you have to enter to run the test is the start and end of when you want the test to be over the measured dataset as well as the name of the test. However, you can modify these to match your benchmark as well. Below is a detailed description of each parameter and how it affects the test:

ParameterUnitsNotes
Passing Criteria%The passing criteria of the test. This is used to calculate the Guaranteed Production and is typically specified in the EPC contract.
Measured Datapoints MinimumIntegerMinimum number of measured datapoints needed for a test. If it is less than this number, we will not run a test and will tell you how many datapoints you have.
Expected Datapoints MinimumIntegerMinimum number of expected datapoints needed for a test. If it is less than this number, we will not run a test and will tell you how many datapoints you have.
Bifacial ToggleBooleanIs this system bifacial?
Bifaciality%Module bifacial %
Irradiance Target0-1000 W/m²Target Irradiance (if locked), Starting test RC (if Optimized)
Irradiance Minimum0-1000 W/m²All datapoints with IRR < Irradiance Minimum will be filtered out
Irradiance Maximum0-1000 W/m²All datapoints with IRR > Irradiance Maximum will be filtered out
Deviation Minimum%Minimum deviation from RC mean IRR (for example, 650 RC IRR with 10% deviation means RC IRR min/max is 585/715)
Deviation Maximum%Maximum deviation from RC mean IRR (for example, 650 RC IRR with 30% deviation means RC IRR min/max is 455/845)
SigmaσLinear Regression Filtering standard deviation to include
Day Range#Day range from test for Expected Data. For example, a 15 day range for Jan 15 will include Jan 1 to Jan 30 data on the Expected Dataset
Percentile%Dataset deviation from mean maximum. This compared the measured and expected data to ensure that they are close enough to each other for a valid test.
Shade Loss Percentage Allowed%100% is no shading allowed for testing. 99% is 1% shade allowed for testing ...
Linear Regression Constant 0BooleanThis should never be true. ASTM requires tests to have a (0,0) intercept for the testing Linear Regression

Additionally, you have the option to have us find the best reporting conditions for you or to set the specific reporting conditions yourself. When you set the reporting conditions yourself, the target will be the RC IRR mean and the deviation maximum will be used to test (if there are sufficient quality datapoints within the filetered data) to run a test. Using Solesca to find the optimal RCs is the recommended use for best results.

3. Data Filtering

ASTM requires multiple different filters for both the expected and measured data to ensure the highest quality tests. We process each in order:

  1. Shading/Soiling Filter (ASTM §7.4): Removes data points affected by correctable operational issues such as snow cover, heavy soiling, or shading from nearby objects. This ensures the test reflects the system's performance under clear, unobstructed conditions.

  2. Irradiance Range Filter (ASTM §7.3): Excludes data where irradiance is too low for the system to be fully active (< 400 W/m²) and data where the AC power is limited by the inverter's maximum rating (clipping). This focuses the analysis on the linear, high-performance portion of the system's operating range.

  3. Outlier Removal (ASTM §7.5): Initial regressions are performed to identify and remove statistical outliers—data points that deviate significantly from the expected performance model, often due to transient effects or measurement errors.

  4. Reporting Conditions Filter (ASTM §9): The final step isolates a specific, well-distributed subset of the clean data around a target irradiance, known as the Reporting Conditions. This ensures that the expected and measured models are compared under statistically identical operating conditions, providing a fair and accurate performance assessment.

A completed test will show each filtered step on the generated report.

4. Reporting Conditions Testing

Once both the measured and expected data have been filtered in step 3, a test will commence. Here we have our first check:

  1. If the Measured & Expected Datapoints after filtering is less than the Measured & Expected Datapoints Minimum, the test will fail and not run. You can see how many datapoints we have after filtering once you inspect the test.

  2. From here, if you have selected Locked irradiance we will try a test with your IRR target as the RC IRR mean and find the smallest deviation possible to perform a test. If the deviation maximum is reached without a test that satisfied the percentile, then the test will not run and you will be notified.

  3. If you select optimized irradiance, we will attempt to find the best Reporting Conditions within the perfentile and deviations provided. If none can be found, you will be notified as to why.

5. Report and Exports

If the test was able to run we will generate a report and compare the two datasets. The Power Performance Index is the percent difference between the expected data and the measured data with their Linear Regressions. If this is greater than the Passing Criteria, the test Passes!

You can download the report, any uploaded data, and the final filtered measured and expected data by clicking the download button to the right of the table entry for that capacity test.

Test Status

  • In Progress: Displays when the test is running. If this persists for more than 10mins please contact us.

  • Required Action: Displays when there is a failed test due to not being able to run the test with given Reporting Conditions and boundaries.

  • Failed • Test Ran: Displays when the RC and boundaries were met and a test was able to be conducted fully, but the Power Performance Index is less than Passing Criteria.

  • Pass: Displays when the test ran and passed the Passing Criteria.

FAQs

  • You can run a test multiple times. However, any run will delete the previous run's data, so please remember to download any previous tests before running a new test.

  • Reports and filtered data will only generate if a test has Passed or Failed, not if there are Required Actions (test was unable to run fully).

Why did my test fail with an "Insufficient Data Points" error?

  • This is the most common failure mode. The error message will specify the last RC the algorithm attempted and how many data points it found versus how many were required. It means that after applying all the ASTM filters, there wasn't enough high-quality data left to conduct a statistically valid test.

  • Solution: Try expanding the "Day Range" in the configuration to include more days of measured data. You can also review the filter settings; a very aggressive sigma value for outlier removal may be removing too many points. Lastly, you may not have good enough measured data. Is the data you pulled from cloudy days or in the winter with lots of snow?

    If you are testing in winter it is very difficult to collect enough high-quality expected data. You can consider lowering the minimum numbers down. In winter, we actually use 60 days of expected data in an attempt to collect as many days as possible for the test to mitigate this occurance.

Why did my test fail with a "Medians are too far apart" error?

  • This means that even when sufficient data points were found, the weather conditions in the expected and measured datasets were too different. For example, the measured data might be from a string of mostly cloudy days, while the expected data for that period was mostly sunny. The algorithm correctly stops the test to prevent an unfair comparison.

  • Solution: Expand the date range to include a more diverse set of weather conditions that are more likely to align with the statistical distribution of the 8760 file. Or try limiting the days to just good sunny days on the measured dataset.

What is a "good" R-squared value?

  • R-squared measures how well the regression model fits the data, with 1.0 being a perfect fit. For a solar capacity test, you should typically expect R-squared values above 0.95. A lower value may indicate high data scatter, sensor issues, or other operational problems not captured by the standard filters.