{
  "schema": "https://l0g.fr/api/v1/signals/schema.json",
  "version": "1",
  "generated": "2026-07-10T15:36:35.758Z",
  "coverage": {
    "observations": 5,
    "levelChanges": 3,
    "instruments": [
      "us",
      "eu",
      "yen",
      "energie",
      "debt"
    ],
    "firstObservedAt": "2026-07-10T15:35:19.000Z",
    "lastObservedAt": "2026-07-10T15:35:19.000Z",
    "pointInTime": true
  },
  "current": {
    "debt": {
      "recordType": "observation",
      "schemaVersion": "1",
      "recordId": "obs:debt:2026-07-10T15:35:19.000Z:683d57d4c647",
      "instrument": "debt",
      "label": "Debt Risk Radar",
      "observedAt": "2026-07-10T15:35:19.000Z",
      "sourcePublishedAt": "2026-07-10T15:35:19.000Z",
      "retrievedAt": "2026-07-10T15:36:24.959Z",
      "computedAt": "2026-07-10T15:36:35.758Z",
      "value": 54,
      "rawValue": 54.44606422971715,
      "scale": 100,
      "level": "Élevé",
      "tone": "elevated",
      "sourceUrl": "https://debt.l0g.fr/latest.json",
      "methodologyUrl": "https://l0g.fr/methodologie/debt-risk-radar/",
      "sourceSnapshotUrl": "https://l0g.fr/api/v1/debt-risk.json",
      "calculatorRepo": "https://github.com/bluetouff/debt-risk-radar",
      "calculatorRevision": null,
      "snapshotHash": "683d57d4c6473821735a429fe7642663a58232b24a7438180068549c99c30e50",
      "pointInTime": true,
      "backtestUsable": true,
      "limitations": [
        "Score normalise par instrument, pas une probabilite.",
        "Les dates sourcePublishedAt et retrievedAt peuvent rester null si le dashboard amont ne les expose pas.",
        "La serie historique complete depend de l archive append-only public/signals-history.ndjson."
      ]
    },
    "energie": {
      "recordType": "observation",
      "schemaVersion": "1",
      "recordId": "obs:energie:2026-07-10T15:35:19.000Z:8c60a31ea583",
      "instrument": "energie",
      "label": "Energie Monitor",
      "observedAt": "2026-07-10T15:35:19.000Z",
      "sourcePublishedAt": null,
      "retrievedAt": null,
      "computedAt": "2026-07-10T15:36:35.758Z",
      "value": 45,
      "rawValue": 45,
      "scale": 100,
      "level": "Normal",
      "tone": "moderate",
      "sourceUrl": "https://energie.l0g.fr",
      "methodologyUrl": "https://l0g.fr/methodologie/energie/",
      "sourceSnapshotUrl": "https://l0g.fr/api/v1/risk.json",
      "calculatorRepo": null,
      "calculatorRevision": null,
      "snapshotHash": "8c60a31ea583dde99f4cb52ab4d44e1c9ca82637eb1486ce49e08f0a7a1bedcf",
      "pointInTime": true,
      "backtestUsable": true,
      "limitations": [
        "Score normalise par instrument, pas une probabilite.",
        "Les dates sourcePublishedAt et retrievedAt peuvent rester null si le dashboard amont ne les expose pas.",
        "La serie historique complete depend de l archive append-only public/signals-history.ndjson."
      ]
    },
    "eu": {
      "recordType": "observation",
      "schemaVersion": "1",
      "recordId": "obs:eu:2026-07-10T15:35:19.000Z:5b37f213a051",
      "instrument": "eu",
      "label": "EU Macro Dashboard",
      "observedAt": "2026-07-10T15:35:19.000Z",
      "sourcePublishedAt": null,
      "retrievedAt": null,
      "computedAt": "2026-07-10T15:36:35.758Z",
      "value": 41,
      "rawValue": 41,
      "scale": 100,
      "level": "Risk-On",
      "tone": "calm",
      "sourceUrl": "https://euro.l0g.fr",
      "methodologyUrl": "https://l0g.fr/methodologie/euro-macro/",
      "sourceSnapshotUrl": "https://l0g.fr/api/v1/risk.json",
      "calculatorRepo": null,
      "calculatorRevision": null,
      "snapshotHash": "5b37f213a0514f6da34571603870067a899b2ce952c1122a257225f901a01f84",
      "pointInTime": true,
      "backtestUsable": true,
      "limitations": [
        "Score normalise par instrument, pas une probabilite.",
        "Les dates sourcePublishedAt et retrievedAt peuvent rester null si le dashboard amont ne les expose pas.",
        "La serie historique complete depend de l archive append-only public/signals-history.ndjson."
      ]
    },
    "us": {
      "recordType": "observation",
      "schemaVersion": "1",
      "recordId": "obs:us:2026-07-10T15:35:19.000Z:6eeb16dc602e",
      "instrument": "us",
      "label": "US Macro Dashboard",
      "observedAt": "2026-07-10T15:35:19.000Z",
      "sourcePublishedAt": null,
      "retrievedAt": null,
      "computedAt": "2026-07-10T15:36:35.758Z",
      "value": 43,
      "rawValue": 43,
      "scale": 100,
      "level": "Modéré",
      "tone": "moderate",
      "sourceUrl": "https://us.l0g.fr",
      "methodologyUrl": "https://l0g.fr/methodologie/us-macro/",
      "sourceSnapshotUrl": "https://l0g.fr/api/v1/risk.json",
      "calculatorRepo": null,
      "calculatorRevision": null,
      "snapshotHash": "6eeb16dc602e2db2a189315af67446c68a1da8c4bbcf087a12fb95b7c3ad5d5c",
      "pointInTime": true,
      "backtestUsable": true,
      "limitations": [
        "Score normalise par instrument, pas une probabilite.",
        "Les dates sourcePublishedAt et retrievedAt peuvent rester null si le dashboard amont ne les expose pas.",
        "La serie historique complete depend de l archive append-only public/signals-history.ndjson."
      ]
    },
    "yen": {
      "recordType": "observation",
      "schemaVersion": "1",
      "recordId": "obs:yen:2026-07-10T15:35:19.000Z:1ae30525f14b",
      "instrument": "yen",
      "label": "Yen Carry Monitor",
      "observedAt": "2026-07-10T15:35:19.000Z",
      "sourcePublishedAt": null,
      "retrievedAt": null,
      "computedAt": "2026-07-10T15:36:35.758Z",
      "value": 45,
      "rawValue": 45,
      "scale": 100,
      "level": "Modéré",
      "tone": "moderate",
      "sourceUrl": "https://yct.l0g.fr",
      "methodologyUrl": "https://l0g.fr/methodologie/yen-carry/",
      "sourceSnapshotUrl": "https://l0g.fr/api/v1/risk.json",
      "calculatorRepo": null,
      "calculatorRevision": null,
      "snapshotHash": "1ae30525f14ba69ed43266be34d567ccc99a8597e38ac932e68bba3494fb2a93",
      "pointInTime": true,
      "backtestUsable": true,
      "limitations": [
        "Score normalise par instrument, pas une probabilite.",
        "Les dates sourcePublishedAt et retrievedAt peuvent rester null si le dashboard amont ne les expose pas.",
        "La serie historique complete depend de l archive append-only public/signals-history.ndjson."
      ]
    }
  },
  "policy": {
    "purpose": "Historique public point-in-time des signaux l0g pour audit, replay et backtest.",
    "appendOnlyTarget": "public/signals-history.ndjson",
    "dateDiscipline": "observedAt date la valeur du signal, sourcePublishedAt date la publication amont, retrievedAt date la collecte par l0g, computedAt date la generation du fichier.",
    "backtestRule": "Utiliser seulement observations. Les levelChanges sont des alertes derivees, pas des points de serie.",
    "caveat": "Best-effort, pas du temps reel strict, pas un conseil en investissement.",
    "license": "CC BY 4.0",
    "attribution": "l0g.fr"
  }
}
