Bulk upload
Bulk upload creates many assets at once from a single Excel template. The template covers solar, battery, hydro, biomass, and load components, and a single row can describe a multi-component site that combines several of them.
Bulk upload covers asset configuration only. Financial data (CAPEX, OPEX, revenue), historical generation, balancing-group assignment, and PPA assignment are not part of the template; set them up after import.
Getting started
Open the asset list, click the dropdown arrow next to Add new in the top-right corner, and choose Import assets. The import screen opens with two things you can do:
- Download template: Click the "Download template" button at the bottom of the screen to get the empty Excel template, with headers, dropdowns, and a dedicated examples sheet.
- Upload your filled template: Drop your file onto the upload area, or click "click to browse" to choose it from your file browser.
If you're starting fresh, download the template, fill it in, and return to the same screen to upload.
Any workspace user who can create assets can also bulk upload; no additional permission is required.
The Excel template
The template is a standard Excel file (.xlsx) with four sheets. Sheet names give the Japanese name followed by the English one in parentheses:
- Project Import: The data entry sheet. One row per asset, with Japanese headers, English field names underneath for reference, and dropdown validation for grid areas.
- Examples: Five sample rows showing common shapes: solar-only, solar + battery, hydro, biomass, and a multi-component site combining solar, battery, and load.
- Instructions JP and Instructions (EN): Reference sheets explaining each section, validation rules, and the default values applied to imported assets. The two sheets are mirrors of each other in Japanese and English.
Hydro and biomass components are available when enabled for your workspace; contact Tensor to enable them. Without them, the template has no hydro or biomass columns, the examples sheet shows only the solar-only, solar + battery, and multi-component rows, and only solar, battery, and load components can be imported.
The ID columns (locationId, supplyLocationId, gridCode, and contractClassificationNumber2) are formatted as text so that Excel keeps leading zeros and does not convert long numbers to scientific notation. Date columns are formatted as yyyy/mm/dd. Do not change these formats: values that Excel converts automatically fail validation on upload.
The import accepts up to 1,000 rows at a time. If a file has more rows, they are still loaded onto the review screen, but Import stays disabled until you delete rows to bring the count down to 1,000. For larger portfolios, split the data across multiple files and upload them in sequence.
Data entry layout
The data entry sheet groups columns into six sections by colored header. Like the sheet names, each section name gives the Japanese name followed by the English one:
- Project: common fields shared by every asset
- Solar, Battery, Hydro, Biomass, Load: component-specific fields
The first three rows are headers: the section names, the Japanese field labels, and the English field names. Enter your data from the fourth row. Upload the file as .xlsx, keep the data entry sheet as the first sheet, and do not change the header rows or the column order: a file whose English field names do not match the template is rejected.
Each row describes one asset. To create a single-component asset, fill in the project fields and exactly one component section. To create a multi-component site (for example, a co-located solar plus battery system, or solar plus battery plus load), fill in the project fields and every component section that applies. See Multi-component assets for the rules.
Field reference
Project fields
| # | Japanese | Romanization | English | Format | Required |
|---|---|---|---|---|---|
| 1 | プロジェクト名 | purojekuto mei | name | Text (up to 50 characters) | Yes |
| 2 | 緯度 | ido | latitude | Number | Yes (or via location, see Address-based geocoding) |
| 3 | 経度 | keido | longitude | Number | Yes (or via location, see Address-based geocoding) |
| 4 | 所在地 | shozaichi | locationName | Japanese address (up to 255 characters) | Yes |
| 5 | 系統エリア | keitō eria | gridArea | Dropdown (9 areas) | Yes |
| 6 | 受電地点特定番号 | juden chiten tokutei bangō | locationId | Text (up to 100 characters) | No |
| 7 | 供給地点特定番号 | kyōkyū chiten tokutei bangō | supplyLocationId | Text (up to 100 characters) | No |
| 8 | 系統コード | keitō kōdo | gridCode | Half-width text (up to 5 characters) | No |
| 9 | 契約識別番号2 | keiyaku shikibetsu bangō 2 | contractClassificationNumber2 | Half-width text (up to 20 characters) | No |
| 10 | 系統連系日 | keitō renkei bi | gridInterconnectionDate | yyyy/mm/dd | Yes |
| 11 | 系統連系容量 (kW) | keitō renkei yōryō | siteAcCapacity | Number, 1 or more | Yes |
The grid area dropdown lists the valid areas by their Japanese names: 北海道 (Hokkaidō), 東北 (Tōhoku), 東京 (Tōkyō), 中部 (Chūbu), 北陸 (Hokuriku), 関西 (Kansai), 中国 (Chūgoku), 四国 (Shikoku), 九州 (Kyūshū).
The supply location ID (supplyLocationId) is used only for assets that charge from the grid. Templates downloaded before this column was added are still accepted without it.
Solar component
| Japanese | Romanization | English | Format |
|---|---|---|---|
| 太陽光COD | taiyōkō COD | solarCod | yyyy/mm/dd |
| 太陽光運転終了 | taiyōkō unten shūryō | solarEndOfLife | yyyy/mm/dd |
| 太陽光パネル容量 (kWp) | taiyōkō paneru yōryō | solarDcCapacity | Number, 1 to 10,000,000 |
| 太陽光パワコン容量 (kW) | taiyōkō pawakon yōryō | solarAcCapacity | Number, 1 or more |
All four fields are required when you are creating a solar component.
Battery component
| Japanese | Romanization | English | Format |
|---|---|---|---|
| 蓄電池COD | chikudenchi COD | batteryCod | yyyy/mm/dd |
| 蓄電池運転終了 | chikudenchi unten shūryō | batteryEndOfLife | yyyy/mm/dd |
| 蓄電池容量 (kWh) | chikudenchi yōryō | batteryEnergyCapacity | Number, 0.1 to 10,000,000 |
| 蓄電池出力 (kW) | chikudenchi shutsuryoku | batteryPowerCapacity | Number, 0.1 to 10,000,000 |
All four fields are required when you are creating a battery component.
Hydro component
| Japanese | Romanization | English | Format |
|---|---|---|---|
| 水力COD | suiryoku COD | hydroCod | yyyy/mm/dd |
| 水力運転終了 | suiryoku unten shūryō | hydroEndOfLife | yyyy/mm/dd |
| 水力AC容量 (kW) | suiryoku AC yōryō | hydroAcCapacity | Number, 1 or more |
All three fields are required when you are creating a hydro component.
Biomass component
| Japanese | Romanization | English | Format |
|---|---|---|---|
| バイオマスCOD | baiomasu COD | biomassCod | yyyy/mm/dd |
| バイオマス運転終了 | baiomasu unten shūryō | biomassEndOfLife | yyyy/mm/dd |
| バイオマスAC容量 (kW) | baiomasu AC yōryō | biomassAcCapacity | Number, 1 or more |
All three fields are required when you are creating a biomass component.
Load component
| Japanese | Romanization | English | Format |
|---|---|---|---|
| 需要家COD | juyōka COD | loadCod | yyyy/mm/dd |
| 需要家運転終了 | juyōka unten shūryō | loadEndOfLife | yyyy/mm/dd |
| 最小負荷 (kW) | saishō fuka | loadMinimumLoad | Number, 0 to 100,000 |
| 最大負荷 (kW) | saidai fuka | loadMaximumLoad | Number, 0 to 100,000 |
| 平均負荷 (kW) | heikin fuka | loadAverageLoad | Number, 0 to 100,000 |
All five fields are required when you are creating a load component. A load cannot be created on its own, see Multi-component assets.
Multi-component assets
A single row can create more than one component on the same site. Tensor Cloud detects which components to create from the values in each section: if any cell in a component section has a value, that component is created.
The combinations are constrained by these rules:
- Hydro and biomass cannot coexist with each other on the same row.
- Hydro and biomass cannot be combined with solar, battery, or load. Use a separate row for each.
- Load alone is not valid: a row that only has load fields filled in is rejected. Pair a load with at least one of solar or battery.
In effect, a row can describe one of the following:
- A single solar, battery, hydro, or biomass component
- Solar + battery
- Solar + load
- Battery + load
- Solar + battery + load
The rows on the Examples sheet illustrate the common shapes.
Address-based geocoding
If you know an asset's Japanese address but not its exact coordinates, fill in the location (locationName) and leave latitude and longitude blank. Tensor Cloud then derives the coordinates from the address before validating the rows, and shows them on the review screen so you can check them before anything is imported.
Geocoding follows these rules:
- Geocoding runs only when both latitude and longitude are blank. If you provide coordinates in the file, those values are used as-is; geocoding is not performed for that row.
- If geocoding cannot resolve the address, the row's geocoding status shows Not found and the row is marked with an error because its coordinates are missing. Open the side panel for the row to type in coordinates directly (see Reviewing your upload).
- Geocoded coordinates are stored on the asset in the same way as coordinates you enter yourself, with no marker of where they came from.
Reviewing your upload
After you upload a file, Tensor Cloud reads every row, runs geocoding for rows that need it, validates the rows, and then opens the Review import screen showing what would be imported.
The review screen lists every parsed row with a validation status: Valid for rows that pass all checks, or Invalid for rows that don't. The summary at the top shows the total number of rows and how many are valid and invalid. The Geocoding column shows where each row's coordinates came from: Manual (from the file), Auto (derived from the address), Not found (no coordinates), or Area mismatch (the coordinates fall in a different grid area from the one entered in gridArea). An area mismatch is a warning to check the row; it does not by itself make the row invalid.
Click any row to open a side panel containing all of the row's fields, grouped by section (project, coordinates, grid, components, optional fields). You can edit every field in the side panel: fix typos, correct dates, change the grid area, swap in a different location ID, update component capacities, or tick and untick the Components checkboxes to add or remove a component. Click Save to apply your changes to the row, Save and next error to save and jump to the next invalid row, or Cancel to discard them. The validation status updates automatically once you save.
To leave a row out of the import, delete it with Delete in the row's actions, or select several rows and click Delete selected.
Use the search bar at the top of the list to find rows by project name, location, or location ID. The view options at the top right let you choose which columns to show and group the rows by validation status, grid area, or geocoding status. The row editor toggle shows or hides the side panel.
Validation rules
The following checks are run against every row:
- Project fields: project name, latitude, longitude, location, grid area, grid interconnection date, and site AC capacity are required. Latitude and longitude can be left blank if the location (
locationName) is provided; the system will geocode the address. - Text lengths and formats must match the limits in the Field reference.
- Component fields: when a component is detected, all of its required fields must be filled in, and capacities must be within the ranges in the Field reference.
- Coordinates must be within Japan. Locations in Okinawa are not supported.
- Dates must be entered as
yyyy/mm/dd. Native Excel date cells are also accepted. - Date ranges: the grid interconnection date and each component's COD must fall between 2012/01/01 and 2039/12/31 (battery COD from 2011/04/01, load COD from 1980/01/01). End of life dates can be up to 2059/12/30.
- End of life must be later than COD for each component, and later than the grid interconnection date. This catches typos in either date.
- Site AC capacity must be greater than or equal to the largest component AC capacity on the row (solar AC capacity, battery power capacity, hydro AC capacity, or biomass AC capacity).
- Mutual exclusivity between hydro, biomass, and the other components must be respected (see Multi-component assets).
In addition, the file as a whole is checked:
- Location ID, when provided, must be unique within the file and across the assets that already exist in your workspace. The comparison ignores characters other than letters and digits, so
LOC-0001andLOC0001count as the same ID. Bulk upload only creates new assets (it does not update existing ones), so any conflict on Location ID is treated as an error rather than a merge decision. - Supply location ID, when provided, is checked for duplicates in the same way.
- Project name and location: the combination of
nameandlocationNamemust be unique within the file and across the existing assets in your workspace. This catches duplicates of early-stage assets that do not have a Location ID yet. - No more than 1,000 rows can be imported at a time. When there are more rows, Import is disabled until you delete enough rows.
Rows that fail any of these checks are marked with an error on the review screen. You can fix them in place by editing the side panel (see Reviewing your upload) or fall back to fixing the source file and re-uploading (see Fixing errors).
Importing
Once the rows on the review screen are how you want them, click Import in the top right and confirm in the dialog. Only valid rows are imported; invalid rows are skipped. Import is disabled while validation is running, when there are no valid rows, or when there are more than 1,000 rows.
Tensor Cloud processes the rows in your browser session and shows a live progress indicator. The screen must remain open until the import completes; leaving the page stops the import. You can also click Stop import to stop it yourself. Either way, the rows that have already been created remain in place (they are not rolled back) and the rest are not imported.
When the import finishes, the screen switches to Import complete (or Import stopped if you stopped it) and shows the outcome for every row: Created, Failed with the underlying error in the side panel, or Cancelled for rows that were not processed because the import was stopped. From here you can either start a new import with New import, or click Go to assets to see your imported assets in context. See Fixing errors for what to do about any failed rows.
Imported asset defaults
The template holds the structural data of an asset: name, location, grid configuration, component capacities, and key dates. Tensor Cloud fills in the remaining settings with the defaults below, which are also listed on the template's instructions sheets.
The defaults are placeholders. After import, open each asset in asset settings and update the defaults to match the actual asset (panel tilt and azimuth, loss rates, battery efficiency and cycle cost, charge mode, and so on). Until you do, simulations and optimization use the placeholder values.
Solar defaults
| Setting | Default |
|---|---|
| Panel tilt | 20° |
| Panel azimuth | 180° (south-facing) |
| Losses | Soiling 2%, shading 3%, others at standard values |
Battery defaults
| Setting | Default |
|---|---|
| Maximum cycles | 4,500 |
| Round-trip efficiency | 92% |
| Cycle cost | ¥10/kWh |
| Charge mode | Co-located with solar: Solar Only (grid charging off). Standalone battery: Grid Assist (grid charging on). |
Tag
Every asset created by bulk upload is automatically tagged with the cyan インポート (inpōto, import) tag, so you can filter the asset list for assets created by bulk upload. See Tags.
Other configuration
The following are not configured by bulk upload and remain empty until you set them up:
- Simulation scenario (other than the platform default)
- Metadata
- Balancing group assignment
- PPA assignment
- CAPEX, OPEX, and revenue
- Tensor feature flags
Fixing errors
There are two ways to fix a row that has an error.
Fix in the review screen
If the row is still on the review screen (for example, a missing required field, a date in the wrong format, or a Location ID that conflicts with an existing asset), open the side panel for that row, correct the offending fields, and click Save. The validation status updates immediately, and once the row is valid it is imported the next time you click Import. This is the quickest way to make small fixes.
Re-upload after editing offline
For larger cleanups, or to keep your master template outside Tensor Cloud up to date, download what you uploaded and edit it in Excel. There are two downloads at the top of the screen:
- Download errors only (under the dropdown next to the main download button) exports only the rows with errors: on the review screen, the invalid rows; after an import, the rows that failed or were cancelled. To retry, fix the rows in Excel, click New import, and upload the corrected file.
- Download all exports every row, including successes, in the same template format. Use it as a record of what you submitted, not as a retry file: re-uploading the full set flags the already-imported rows as duplicates (Location ID, or project name and location).
Both downloads use the standard template format, so you do not need to copy rows back into a fresh template. Existing assets can also be exported from the asset list in the same template format.