Anomaly Upload Validator · Specification artifact
Release Notes & Changelog
What actually shipped.
Document Overview
This document provides a versioned history of the Anomaly Upload Validator — a browser-based tool that ingests raw inspection data exports from the source inspection platform, validates them against the the Internal Platform upload specification, converts field values across three nomenclature systems (the Source Platform → the organization → the OEM), enables human-in-the-loop resolution of unmatched values, and exports a formatted multi-tab XLSX working document.
Version Summary
| Version | Release Date | Status | Key Milestone |
|---|---|---|---|
| v1.0 | May 2026 | ✅ Released | Core validator — field presence + format checks |
| v1.1 | May 2026 | ✅ Released | Three-tier status system: Error / Check Internally / Warning |
| v1.2 | May 2026 | ✅ Released | Blade Side expanded values; Serial Number made optional |
| v2.0 | May 2026 | ✅ Released | Full conversion engine + XLSX export with live formulas |
| v2.1 | May 2026 | ✅ Released | Multi-format support (Dataset A + Dataset B); ISBLANK bug fix |
v1.0 — Core Validator
Release Date: May 2026 · Status: Released
Background
OEM-commissioned wind farm asset owners use the Source Platform to conduct blade inspections. Datasets exported from the source inspection platform as CSV or XLSX must be imported into the Internal Platform before onward submission to the the Output Platform platform. Prior to this tool, data coordinators manually checked each upload file — a time-consuming, error-prone process with no standardized output.
What Was Built
A self-contained HTML file deployable via shared Google Drive with no installation required. Accepts CSV and XLSX uploads, parses them client-side, and validates every row and column against the the Internal Platform upload specification.
Changes
| Type | Feature / Fix | Description |
|---|---|---|
| Feature | File ingestion | Drag-and-drop or browse for CSV / XLSX. Parsed client-side via SheetJS — no data transmitted externally. |
| Feature | Column-level validation | Checks all 19 required column headers present (case-sensitive). Flags missing columns with description. |
| Feature | Row-level validation | Validates every required field: presence, format (date, severity range, Yes/No, blade side codes, coordinate pairs, numerics). |
| Feature | Compliance score | Percentage clean rows with color indicator (green ≥80%, amber ≥50%, red <50%). |
| Feature | Issues table | Tabular view: Row #, Anomaly ID, Field, Status, Detail. |
| Feature | Filter tabs | Filter by All / Errors / Warnings. |
| Feature | Validation report export | Download issues as dated CSV. |
| Feature | Dataset summary | Total anomaly count, unique turbine count, unique site count with per-site breakdown. |
Known Issues at Release
- Serial Number treated as required — demoted to conditional in v1.2.
- Blade Side validation limited to two-character codes only.
- No conversion logic — field values validated as-is.
v1.1 — Three-Tier Status System
Release Date: May 2026 · Status: Released
Background
During initial testing it became clear that empty Asset and Coordinates fields may exist in the organization's historical records and simply weren't included in the the source inspection platform export. Flagging these as hard errors created false positives and undermined trust in the compliance score.
Changes
| Type | Feature / Fix | Description |
|---|---|---|
| Feature | Check Internally status | New third status (blue) for Asset and Coordinates when empty. Rows excluded from compliance score. |
| Enhancement | Compliance score denominator | Score = clean rows / (total - check-internally rows). |
| Enhancement | Check Internally filter tab | Dedicated filter tab added to issues table. |
| Enhancement | CSV export labels | Three-label Status column: Error / Check Internally / Warning. |
| Enhancement | Summary stats card | Fifth card added for Check Internally row count. |
v1.2 — Field Spec Refinements
Release Date: May 2026 · Status: Released
Background
Real the source inspection platform exports revealed Blade Side uses full descriptive names, and Serial Number is not consistently available and should not block uploads.
Changes
| Type | Feature / Fix | Description |
|---|---|---|
| Enhancement | Blade Side expanded values | Accepts full names: Pressure Side, Suction Side, Leading Edge, Trailing Edge alongside PS/SS/LE/TE codes. Case-insensitive. |
| Enhancement | Serial Number made optional | Serial Number demoted from Required to Conditional. Empty value raises no flag. |
| Enhancement | Field counts corrected | Required: 19→18. Conditional: 3→4. |
v2.0 — Conversion Engine & XLSX Export
Release Date: May 2026 · Status: Released
Background
Data coordinators still needed to manually convert field values across three nomenclature systems using a separate Excel spreadsheet. This release embedded the conversion logic directly and produced a properly formatted output XLSX — eliminating the manual conversion step.
Conversion Flow
the Source Platform → the organization → the OEM
Changes
| Type | Feature / Fix | Description |
|---|---|---|
| Feature | Input Component derivation | Concatenates Component + Material (if present) using LEN() guard against empty strings. |
| Feature | Input Damage Type derivation | Concatenates Type + Subtype (if present) using LEN() guard. |
| Feature | Element conversion | Three-column output: Input Component → the organization Element + the OEM Element via lookup. |
| Feature | Anomaly Type conversion | Three-column output: Input Damage Type → the organization Anomaly Type + the OEM Anomaly Type via lookup. |
| Feature | Blade Side conversion | Blade Side → the organization Blade Side + the OEM Blade Side. Handles Leeward/Windward translations. |
| Feature | Manual Review status | Amber status when concatenated value not in conversion table. Original value preserved. Blocks XLSX export until resolved. |
| Feature | Human-in-the-loop resolution | Dropdown on each Manual Review row. Export unlocks when all resolved. |
| Feature | Export Converted XLSX | Two-tab output: Damages Report (all columns, live VLOOKUPs) + Conversions (editable mapping table for Engineering). |
| Feature | Live VLOOKUP formulas | Derived columns reference Conversions tab. Engineering adds rows; formulas update automatically. |
| Feature | Column normalisation | Alias map handles variants: Date→Inspection Date, Turbine Serial Number→Serial Number, Links→Source Images, etc. |
| Enhancement | Floating point cleanup | Numeric fields cleaned of floating-point noise on import. |
| Enhancement | Blade letter extraction | Blade field populated from Asset column when empty. |
Known Issues at Release
- VLOOKUP row ranges hardcoded in exported XLSX. Engineering adding rows beyond existing ranges requires manual formula updates.
- ISBLANK() formula limitation — fixed in v2.1.
- Single dataset format supported at release (Dataset A structure). Multi-format added in v2.1.
v2.1 — Multi-Format Support & Formula Fix
Release Date: May 2026 · Status: Released
Background
Testing with the Dataset B dataset revealed: (1) Dataset B exports use Component + Element rather than Component + Material, and Anomaly Type + Subtype rather than Type + Subtype. (2) Excel's ISBLANK() returns FALSE for empty string cells, causing 'Crack - ' output instead of 'Crack' when Subtype is empty.
Changes
| Type | Feature / Fix | Description |
|---|---|---|
| Fix | ISBLANK → LEN() fix | Excel formulas changed from IF(ISBLANK(Subtype),...) to IF(LEN(Subtype)=0,...). Handles both truly blank and empty-string cells. |
| Fix | Dataset B Element column | Detects whether Material column is present. Falls back to Element column as component suffix if absent. |
| Fix | Dataset B Anomaly Type column | Reads Type column when present; falls back to Anomaly Type column when absent. |
| Fix | Blade field normalisation | Dataset B stores 'Blade A' in Blade column. Tool strips label prefix and retains letter for both formats. |
| Enhancement | Column alias expansion | COL_ALIASES extended with additional pass-through variants. |
Datasets Validated
- Dataset A — the source inspection platform export (Component + Material, Type + Subtype structure)
- Dataset B — the source inspection platform export (Component + Element, Anomaly Type + Subtype structure)
Deployment
| Property | Detail |
|---|---|
| Distribution | Shared Google Drive folder — download and open in any modern browser |
| Dependencies | SheetJS (XLSX library) loaded from CDN on first use |
| Browser support | Chrome, Edge, Firefox, Safari |
| Data privacy | All processing client-side. No data uploaded or transmitted. |
| File formats | CSV (UTF-8), XLSX, XLS |
| Typical dataset size | 50–500 rows per upload; tested up to ~400 rows |
| Output | XLSX (two-tab working document) + optional CSV validation report |