---
pagetitle: "About this directory · Light Logger Inventory · Translational Sensory & Circadian Neuroscience Unit"
description: "A literature directory of wearable light logger validations."
open-graph:
  title: "About the light logger inventory"
twitter-card:
  title: "About the light logger inventory"
header-includes:
  - '<link rel="canonical" href="https://resources.tscnlab.org/lightloggers/evidence.html">'
  - '<meta property="og:url" content="https://resources.tscnlab.org/lightloggers/evidence.html">'
---

```{python}
#| label: load-literature
#| include: false
import html
import json
from collections import Counter
from datetime import date
from pathlib import Path

library = json.loads(Path("data/library.json").read_text(encoding="utf-8"))
from scripts.audit_search import rebuild
rebuild()
audit = json.loads(Path("data/search-audit.json").read_text(encoding="utf-8"))
studies = library["studies"]
devices = library["devices"]
esc = lambda value: html.escape(str(value), quote=True)
counts = Counter(study["status"] for study in studies)
updated = date.fromisoformat(library["updated"]).strftime("%d %B %Y")
assert len({study["id"] for study in studies}) == len(studies)
assert len({study["doi"].casefold() for study in studies}) == len(studies)
for study in studies:
    assert set(study["deviceMetrics"]) == set(study["devices"])
    assert {metric for values in study["deviceMetrics"].values() for metric in values} == set(study["metrics"])
    assert study["sourceLocator"]
```

```{=html}
<aside class="status-bar" aria-label="Website status"><div class="shell"><strong>Work in progress</strong><span>Feedback: <a href="mailto:manuel.spitschan@tum.de">manuel.spitschan@tum.de</a></span></div></aside>
<div class="doc-shell">
<a class="skip-link" href="#main-content">Skip to page content</a>
<header class="doc-header">
  <a class="brand" href="index.html"><img src="assets/tscn-logo.png" width="7660" height="1451" alt="Translational Sensory &amp; Circadian Neuroscience Unit (MPS/TUM/TUMCREATE)"></a>
  <nav class="nav-links" aria-label="Main navigation">
    <a href="index.html">Directory</a>
    <a href="evidence.html" aria-current="page">About</a>
    <a href="https://tscnlab.org/">Unit website ↗</a>
  </nav>
</header>
<main class="doc-content" id="main-content">
<h1>About this directory</h1>
<p class="doc-lead">Published studies of wearable light logger performance.</p>
```

```{python}
#| label: inventory-status
#| output: asis
print(f'<p class="audit-stamp">Literature checked {esc(updated)} · '
      f'{len(studies)} studies · {len(devices)} device entries · '
      f'{counts.get("Peer reviewed", 0)} peer reviewed · '
      f'{counts.get("Preprint", 0)} preprints · '
      f'{counts.get("Conference paper", 0)} conference paper</p>')
```

## Using the directory

Browse devices by manufacturer, or sort by most validations, fewest validations or device name. Search for a device, author, title or DOI. The measurement and device-type filters narrow the results.

Each square represents one validation study. Orange hatching identifies developer involvement. Open a device to see its papers, study summaries and source links.

**Device outputs** shows confirmed photopic illuminance and melanopic EDI features. **Examined in studies** shows the measurements tested in the matching papers: photopic illuminance, melanopic EDI and angle dependence.

## The collection

The directory brings together research publications and preprints that directly test wearable light loggers. Devices are grouped by manufacturer or research developer, with commercial models and research devices identified separately. LYS and LYS Button share one entry.

Papers were found through Europe PMC, searches for named devices and reference lists. Each entry links to the original publication, its DOI and PubMed where available.

Use **Submit a validation** to suggest a paper or correction by email.

## Source and downloads

The site is built with Quarto from a shared [literature inventory](data/library.json). The notebooks regenerate the directory, study inventory and downloadable records.

[Study table (CSV)](data/validations.csv) · [Citations (BibTeX)](data/references.bib) · <a href="index.qmd" download data-noresolveinput>Directory notebook</a> · <a href="evidence.qmd" download data-noresolveinput>About notebook</a> · [GitHub repository](https://github.com/tscnlab/website-lightloggers)

## Study inventory

```{python}
#| label: audit-inventory
#| output: asis

for study in sorted(studies, key=lambda item: (-item["year"], item["authors"])):
    source_url = study["url"]
    assert source_url.startswith("https://"), "Evidence links must use HTTPS."
    identifier = esc(study["id"])
    title = esc(study["title"])
    publication_status = esc(study["status"])
    print(f'<article class="evidence-record" id="{identifier}">')
    print(f'<p class="eyebrow">{esc(study["authors"])} · {study["year"]} · {publication_status}</p>')
    print(f'<h3><a href="{esc(source_url)}">{title} ↗</a></h3>')
    print('<dl class="audit-table">')
    fields = [
        ("Journal / server", library["venues"][study["venue"]]["name"]),
        ("Devices", "; ".join(study["devices"])),
        ("Measurements", "; ".join(study["metrics"])),
        ("Device-specific coverage", " | ".join(
            f'{device}: {", ".join(study["deviceMetrics"][device])}'
            for device in study["devices"]
        )),
        ("Setting", study["setting"]),
        ("Evidence type", study["evidenceType"]),
        ("Reference", study["reference"]),
        ("Protocol", study["protocol"]),
        ("Findings", study["finding"]),
        ("Source passage", study["sourceLocator"]),
    ]
    for label, value in fields:
        print(f'<div><dt>{esc(label)}</dt><dd>{esc(value)}</dd></div>')
    print('</dl>')
    doi = esc(study["doi"])
    print(f'<p class="citation-link"><a href="https://doi.org/{doi}">DOI: {doi}</a></p>')
    if study.get("pubmedUrl"):
        print(f'<p class="citation-link"><a href="{esc(study["pubmedUrl"])}">PubMed record ↗</a></p>')
    if study.get("fullTextUrl"):
        print(f'<p class="citation-link"><a href="{esc(study["fullTextUrl"])}">Full text ↗</a></p>')
    print('</article>')
```

```{=html}
</main>
<footer class="doc-footer">
  <a href="index.html">Directory</a>
  <a href="https://tscnlab.org/">Unit website ↗</a>
</footer>
</div>
```
