NR Lighting · Architectural lighting design · London & South East

Free lighting tool

IES and LDT file validator

This free validator checks an IES (IESNA LM-63) or LDT (EULUMDAT) photometric file for the faults that stop it importing or make it misleading: a missing TILT line, angle counts that do not match the candela table, and a stated flux that disagrees with the integrated distribution. It is for designers, engineers and manufacturers preparing files for Dialux or AGi32.

Last reviewed

What is an IES file validator?

An IES file validator reads a photometric file the way a calculation program does and checks that its header, TILT line, angle lists and candela table are complete and consistent. It reports errors that will stop an import and warnings that should stop you, and this one also cross-checks the stated lumens against the light the candela table contains.

An IES file is plain text to IESNA LM-63: keyword lines in square brackets, a TILT line, thirteen header numbers (lamp count, lumens per lamp, multiplier, angle counts, photometric type, units, dimensions, ballast factor, watts), the angle lists and the candela values. An LDT file follows the fixed EULUMDAT layout with an intensity table in cd/klm. Both fail in the same ways: truncated tables, mis-typed counts and header figures pasted from another product.

Files are sent to NR Lighting's processing service for parsing and analysis; they are not published or added to any library.

How to use the IES and LDT validator

  1. 01Drop an .ies or .ldt file onto the upload area, or click to browse; the format is detected from the content, not the extension.
  2. 02The file is parsed on NR Lighting's servers against LM-63 or EULUMDAT and returned with errors, warnings and a photometric summary.
  3. 03A file that cannot be parsed shows 'File could not be parsed' with the first structural error; a file with issues loads and shows the first warning.
  4. 04Compare the parsed manufacturer, luminaire name, watts, flux, dimensions and efficacy with the datasheet, or open the Raw tab to read the text.
  5. 05With NR Lighting Pro, open Sanitize for the itemised report and repair options.

The method: what the validator checks

Φ = Σ Ī(zone) × 2π × (cos θ1 − cos θ2) × multiplier. Difference = (Φ integrated − Φ rated) ÷ Φ rated × 100 %. Within tolerance when |difference| ≤ 15 %.

Structural checks run first. The parser strips byte-order marks, normalises line endings and decimal commas, locates the TILT line (or searches for the data block when it is missing), reads the thirteen header values, the angle lists and the candela table, and counts everything against what the header promised. Out-of-range or out-of-order angles are corrected in memory so the flux check can still run, and the correction is reported as a warning.

The flux check integrates the candela table zone by zone with the Type C relationship above, applies the LM-63 multiplier and compares the result with the stated luminaire flux where given, otherwise with the rated lamp flux.

Principal checks applied to IES and LDT files
CheckWhat triggers itSeverity
Version and keywordsNo IESNA line; [TEST], [TESTLAB], [MANUFAC] or [ISSUEDATE] missing (LM-63-2002)Warning
TILT lineMissing (data block searched for); TILT=INCLUDE without tilt data; data block not foundWarning; error; error
Angle countsVertical or horizontal count outside 1 to 2000 (IES); C-plane or gamma count zero (LDT)Error
Angle sequenceType C vertical angles beyond 0 to 180°, horizontal not starting at 0°, not increasingWarning
Candela tableFewer values than angles × planes; negatives (set to zero); all zero; one C-plane far brighterWarning; error if grossly short or all zero
Flux cross-checkIntegrated flux over 15 % from stated luminaire flux, or above 115 % or below 25 % of rated lamp fluxWarning
LDT headerMissing manufacturer, luminaire name, flux, wattage or DFF and LORLWarning

Worked example

A 3000 K retail downlight arrives as an IES file: one lamp, 2,000 lm per lamp, multiplier 1, 21 W, Type C, 37 vertical angles (0 to 180° in 5° steps) and 5 horizontal planes (quadrilateral symmetry), so 37 × 5 = 185 candela values are expected and 185 are found. TILT=NONE and the LM-63-2002 keywords are present: no structural errors.

Zonal integration gives 1,840 lm. Difference = (1,840 − 2,000) ÷ 2,000 × 100 % = −8.0 %, inside the ±15 % tolerance, so the file loads without a flux warning; the gap is a 92 % light output ratio for a reflector downlight with a glass. Efficacy is 95.2 lm/W on rated lamp flux (2,000 ÷ 21) and 87.6 lm/W on luminaire output (1,840 ÷ 21), the form Approved Document L uses.

Now suppose lumens per lamp was hand-edited to 1,500 lm for a lower drive current with the candela table untouched. The integrated 1,840 lm exceeds 1,500 × 1.15 = 1,725 lm, so the validator warns that the calculated luminaire flux exceeds the rated lamp flux, which is physically impossible: the file's data may be corrupt. That is the file that would quietly over-light a Dialux model.

Free checks and Pro repair

Validation runs on every upload and needs no account. The free editor shows the parsed values, lets you edit header fields in the browser and read the raw text; downloading an edited file is a Pro feature. NR Lighting Pro adds the Sanitize tab, which lists every critical error, potential issue and recommendation with the angle counts and header keywords, then repairs what can be repaired: a missing IESNA:LM-63-2002 version line, the [MANUFAC] and [LUMCAT] keywords (manufacturer and catalogue lines in an LDT) and the lumens-per-lamp value. Each change is listed and the file downloads with a _repaired suffix.

Limitations, and when to involve a lighting designer

The validator checks that a file is well formed and internally consistent. It cannot tell whether the photometry is right for the product specified: a file can pass every check and still describe a different optic, colour temperature or drive current from the datasheet. The flux check assumes Type C geometry, so Type A and B results are approximate and flagged. The repair cannot rebuild a truncated candela table, re-order angles or create a missing TILT line; a file whose data block cannot be located must go back to the manufacturer. Nothing here is a compliance sign-off: BS EN 12464-1 and the SLL Code for Lighting judge the calculated installation, not the file.

I check every photometric file before it goes into a calculation model. If you are assessing a substitution at tender, working from files of uncertain provenance, or designing accent lighting where beam data decides the result, as in the showrooms and retail interiors NR Lighting works on, get in touch.

Standards and guidance referenced

  • IESNA LM-63: the IES photometric file format the validator parses
  • EULUMDAT: the European LDT photometric file layout
  • BS EN 12464-1:2021: indoor illuminance targets that the calculation built on the file must meet
  • SLL Code for Lighting: UK design guidance for the calculations that depend on sound photometric data
  • Approved Document L (Part L 2021, England): minimum luminaire lumens per circuit watt

Frequently asked questions

What are the most common IES file errors?

The usual faults are a missing or misplaced TILT line, header angle counts that do not match the number of candela values (often a truncated copy-and-paste), lumens or wattage edited by hand without touching the candela data, missing LM-63-2002 keywords such as [TEST] and [MANUFAC], and vertical angles running past 180° or out of order. Absolute-photometry files with lumens set to −1 are correct but confuse older software.

Why will my IES file not import into Dialux or AGi32?

Most import failures are structural: the program cannot find the TILT line, the header promises more angles or candela values than the file contains, or the file carries a byte-order mark, control characters or decimal commas. The validator's 'could not be parsed' result names the first structural error. If the file validates but still fails, check the Raw tab for an unusual photometric type or an over-long keyword line.

How do I check that the lumens in an IES file match the datasheet?

Compare the total flux and watts the editor reads with the datasheet, then read any flux warning. The validator integrates the candela table and compares the result with the stated flux: within ±15 % is a normal light output ratio, while a calculated flux above 115 % of the rated lamp flux is impossible and points to an edited or corrupt file. Pro Analyze shows the integrated output and LOR beside the rated figure.

What is the TILT line in an IES file?

TILT separates the keyword header from the numeric data in an LM-63 file. TILT=NONE, by far the most common value, means the output does not change with the luminaire's tilt; TILT=INCLUDE means tilt-correction data follows, and TILT=<filename> points to a separate file. The validator warns when the line is missing and tries to locate the data block anyway; if it cannot, the file is reported as unparseable.

Can the tool repair or sanitise a broken file?

Partly, and repair is a Pro feature. The Sanitize tab adds a missing IESNA version line, adds or corrects the [MANUFAC] and [LUMCAT] keywords and sets the lumens-per-lamp value; for LDT files it rewrites the manufacturer, catalogue number and luminous flux lines. It does not rebuild a short candela table, re-order angles or create a missing TILT line, so a structurally broken file needs a fresh export from the manufacturer.