← Anomaly Upload Validator

Anomaly Upload Validator · Specification artifact

Release Notes & Changelog

What actually shipped.

the organization · Internal Tool · May 2026


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 Summary
VersionRelease DateStatusKey Milestone
v1.0May 2026✅ ReleasedCore validator — field presence + format checks
v1.1May 2026✅ ReleasedThree-tier status system: Error / Check Internally / Warning
v1.2May 2026✅ ReleasedBlade Side expanded values; Serial Number made optional
v2.0May 2026✅ ReleasedFull conversion engine + XLSX export with live formulas
v2.1May 2026✅ ReleasedMulti-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

Changes
TypeFeature / FixDescription
FeatureFile ingestionDrag-and-drop or browse for CSV / XLSX. Parsed client-side via SheetJS — no data transmitted externally.
FeatureColumn-level validationChecks all 19 required column headers present (case-sensitive). Flags missing columns with description.
FeatureRow-level validationValidates every required field: presence, format (date, severity range, Yes/No, blade side codes, coordinate pairs, numerics).
FeatureCompliance scorePercentage clean rows with color indicator (green ≥80%, amber ≥50%, red <50%).
FeatureIssues tableTabular view: Row #, Anomaly ID, Field, Status, Detail.
FeatureFilter tabsFilter by All / Errors / Warnings.
FeatureValidation report exportDownload issues as dated CSV.
FeatureDataset summaryTotal anomaly count, unique turbine count, unique site count with per-site breakdown.

Known Issues at Release


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

Changes
TypeFeature / FixDescription
FeatureCheck Internally statusNew third status (blue) for Asset and Coordinates when empty. Rows excluded from compliance score.
EnhancementCompliance score denominatorScore = clean rows / (total - check-internally rows).
EnhancementCheck Internally filter tabDedicated filter tab added to issues table.
EnhancementCSV export labelsThree-label Status column: Error / Check Internally / Warning.
EnhancementSummary stats cardFifth 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

Changes
TypeFeature / FixDescription
EnhancementBlade Side expanded valuesAccepts full names: Pressure Side, Suction Side, Leading Edge, Trailing Edge alongside PS/SS/LE/TE codes. Case-insensitive.
EnhancementSerial Number made optionalSerial Number demoted from Required to Conditional. Empty value raises no flag.
EnhancementField counts correctedRequired: 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

Changes
TypeFeature / FixDescription
FeatureInput Component derivationConcatenates Component + Material (if present) using LEN() guard against empty strings.
FeatureInput Damage Type derivationConcatenates Type + Subtype (if present) using LEN() guard.
FeatureElement conversionThree-column output: Input Component → the organization Element + the OEM Element via lookup.
FeatureAnomaly Type conversionThree-column output: Input Damage Type → the organization Anomaly Type + the OEM Anomaly Type via lookup.
FeatureBlade Side conversionBlade Side → the organization Blade Side + the OEM Blade Side. Handles Leeward/Windward translations.
FeatureManual Review statusAmber status when concatenated value not in conversion table. Original value preserved. Blocks XLSX export until resolved.
FeatureHuman-in-the-loop resolutionDropdown on each Manual Review row. Export unlocks when all resolved.
FeatureExport Converted XLSXTwo-tab output: Damages Report (all columns, live VLOOKUPs) + Conversions (editable mapping table for Engineering).
FeatureLive VLOOKUP formulasDerived columns reference Conversions tab. Engineering adds rows; formulas update automatically.
FeatureColumn normalisationAlias map handles variants: Date→Inspection Date, Turbine Serial Number→Serial Number, Links→Source Images, etc.
EnhancementFloating point cleanupNumeric fields cleaned of floating-point noise on import.
EnhancementBlade letter extractionBlade field populated from Asset column when empty.

Known Issues at Release


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

Changes
TypeFeature / FixDescription
FixISBLANK → LEN() fixExcel formulas changed from IF(ISBLANK(Subtype),...) to IF(LEN(Subtype)=0,...). Handles both truly blank and empty-string cells.
FixDataset B Element columnDetects whether Material column is present. Falls back to Element column as component suffix if absent.
FixDataset B Anomaly Type columnReads Type column when present; falls back to Anomaly Type column when absent.
FixBlade field normalisationDataset B stores 'Blade A' in Blade column. Tool strips label prefix and retains letter for both formats.
EnhancementColumn alias expansionCOL_ALIASES extended with additional pass-through variants.

Datasets Validated


Deployment

Deployment
PropertyDetail
DistributionShared Google Drive folder — download and open in any modern browser
DependenciesSheetJS (XLSX library) loaded from CDN on first use
Browser supportChrome, Edge, Firefox, Safari
Data privacyAll processing client-side. No data uploaded or transmitted.
File formatsCSV (UTF-8), XLSX, XLS
Typical dataset size50–500 rows per upload; tested up to ~400 rows
OutputXLSX (two-tab working document) + optional CSV validation report

Anomaly Upload Validator · the organization · Internal Use Only · May 2026

← Back to the Anomaly Upload Validator case study