| # AETERNA AI — Data Provenance Documentation |
| **Version**: 1.0.0 |
| **Branch**: refactor/jsc-data-integrity-v1 |
| **Date**: 2026-08-28 |
|
|
| > This document classifies every data field used in AETERNA AI by its provenance type. |
|
|
| ## Classification Types |
|
|
| | Type | Meaning | |
| |------|----------| |
| | `OBSERVED` | Directly measured by an authoritative body (BPS, DLH, BMKG) | |
| | `DERIVED` | Mathematically computed from observed sources | |
| | `SYNTHETIC` | Procedurally generated by simulation scripts | |
| | `EXTERNAL_REALTIME` | Fetched from a live public API | |
| | `MODEL_OUTPUT` | Produced by an ML or simulation model | |
| | `UNVERIFIED` | Origin unclear or not yet validated against authoritative source | |
|
|
| --- |
|
|
| ## Training Dataset: `data/synthetic_spatial_training_data_2024_2025.csv` |
| |
| > **IMPORTANT**: This dataset is SYNTHETIC SIMULATION DATA, not observed DLH/SIPSN ground truth. |
| > It was generated by `scripts/generate_real_kecamatan_dataset.py` using procedural simulation. |
| > All model evaluation metrics derived from this dataset are **Synthetic Benchmarks only**. |
|
|
| | Field | Type | Source | Granularity | Limitations | |
| |-------|------|--------|-------------|-------------| |
| | `Tanggal` | DERIVED | Calendar | Daily | Simulated date range 2024-01-01 to 2025-12-31 | |
| | `Location` | OBSERVED | BPS administrative boundaries | Kecamatan | 44 kecamatan DKI Jakarta | |
| | `City` | OBSERVED | BPS administrative boundaries | Kota/Kabupaten | Jakarta Pusat, Utara, Barat, Selatan, Timur, Kepulauan Seribu | |
| | `Population_Jiwa` | UNVERIFIED | Manually entered (claimed to be BPS 2023/2024) | Kecamatan | **Needs validation against official BPS API.** Values have not been cross-checked against BPS publication. See BPS Adapter section. | |
| | `Normal_Avg_Ton` | SYNTHETIC | Manually defined `base_ton` constants in generator script | Kecamatan | Not derived from DLH/SIPSN measurement. Direct source of target leakage in synthetic evaluation context. | |
| | `Zone_Type` | UNVERIFIED | Manually categorized zone types | Kecamatan | Not sourced from official Jakarta spatial zoning authority (BAPPEDA/BPRD). Needs validation. | |
| | `Rainfall_mm` | SYNTHETIC | `np.random.exponential` simulation | Daily/Jakarta-wide | Not real meteorological data for training set. In inference, replaced by EXTERNAL_REALTIME (Open-Meteo). | |
| | `Rain_Lag_1` | DERIVED | Shifted `Rainfall_mm` by 1 day | Daily | Inherits synthetic limitation from `Rainfall_mm`. | |
| | `Is_Weekend` | DERIVED | Calendar computation from `Tanggal` | Daily | Deterministic from date. | |
| | `Hari_Dalam_Minggu` | DERIVED | Calendar computation from `Tanggal` (0=Mon) | Daily | Deterministic from date. | |
| | `Bulan` | DERIVED | Calendar computation from `Tanggal` | Monthly | Deterministic from date. | |
| | `Is_Mudik` | DERIVED | Hardcoded Lebaran window (Apr 2024, Mar–Apr 2025) | Daily | Islamic calendar dates approximated, not from BMKG/government calendar source. | |
| | `Ada_Event` | SYNTHETIC | Manually curated event calendar in generator script | Kecamatan/Daily | Not from official DLH/Dispora/Pemprov DKI event records. | |
| | `Event_Crowd_Headcount` | SYNTHETIC | Manually defined crowd estimates in generator script | Event/Day | Not from official attendance records (Kepolisian, Penyelenggara). | |
| | `Volume_Sampah_Ton` | SYNTHETIC | Procedurally generated from `base_ton` + multipliers + noise | Kecamatan/Daily | **Not observed DLH/SIPSN data.** This is the model target in training but is entirely synthetic. | |
|
|
| --- |
|
|
| ## Inference / Runtime Data |
|
|
| | Field | Type | Source | URL | Limitations | |
| |-------|------|--------|-----|-------------| |
| | `Rainfall_mm` (inference) | EXTERNAL_REALTIME | Open-Meteo API | https://api.open-meteo.com/v1/forecast | Free tier, no SLA. Coverage: global at coordinate level. Temporal: daily forecast. | |
| | `Population_Jiwa` (inference) | UNVERIFIED | Hardcoded in `KECAMATAN_DATABASE` (app.py) | — | Same values as training dataset. Not yet validated against official BPS API. | |
| | `Normal_Avg_Ton` (inference) | UNVERIFIED | Hardcoded in `KECAMATAN_DATABASE` (app.py) | — | Internal baseline, not from DLH measurement. | |
| | `Event_Crowd_Headcount` (inference) | DERIVED | `data/event_jakarta_2026.txt` | — | Manually curated. Not from official organizer records. | |
| | `Volume_Sampah_Ton` (inference) | MODEL_OUTPUT | AETERNA Stacking Regressor / Chronos-T5 | — | Forecast, not observation. Labeled as FORECAST in API response. | |
| |
| --- |
| |
| ## Official Data Sources — Status & Access |
| |
| ### BPS DKI Jakarta (Badan Pusat Statistik) |
| - **URL**: https://jakarta.bps.go.id/ |
| - **API**: https://webapi.bps.go.id/ (requires registration) |
| - **Available**: Population data by kecamatan, annual publication |
| - **Status**: ⚠️ ADAPTER STUB BUILT — credentials not yet configured. See `data_sources/bps.py`. |
| - **Action required**: Register at https://webapi.bps.go.id/ to obtain API key. |
|
|
| ### Open-Meteo (Weather) |
| - **URL**: https://open-meteo.com/ |
| - **API**: https://api.open-meteo.com/v1/forecast |
| - **Available**: Free, no authentication required |
| - **Status**: ✅ ACTIVE — used in inference via `fetch_rainfall_forecast()` in `app.py` |
| - **Granularity**: Daily precipitation, coordinate-based |
| - **Limitation**: Forecast accuracy degrades beyond 7 days. |
|
|
| ### DLH DKI Jakarta (Dinas Lingkungan Hidup) |
| - **URL**: https://lingkunganhidup.jakarta.go.id/ |
| - **API**: No documented public REST API found. |
| - **Available daily waste data**: Not publicly accessible at kecamatan level. |
| - **Status**: ⚠️ ADAPTER STUB BUILT — no live data available. See `data_sources/dlh.py`. |
| - **Note**: Aggregate city-level data may be available through SIPSN. |
|
|
| ### SIPSN (Sistem Informasi Pengelolaan Sampah Nasional) |
| - **URL**: https://sipsn.menlhk.go.id/ |
| - **API**: No documented public REST API found. Data available via web interface only. |
| - **Available**: Annual/periodic city-level aggregate waste tonnage for Jakarta. |
| - **Status**: ⚠️ ADAPTER STUB BUILT — no live API available. See `data_sources/sipsn.py`. |
| - **Note**: City-level data from SIPSN MUST NOT be disaggregated to kecamatan level and labeled OBSERVED. |
|
|
| ### Jakarta Open Data |
| - **URL**: https://data.jakarta.go.id/ |
| - **Available**: Various datasets, not specifically daily kecamatan waste tonnage. |
| - **Status**: ⚠️ Investigated — no daily kecamatan waste volume dataset found. |
|
|
| ### UPST / TPST Bantargebang |
| - **URL**: https://upst.jakarta.go.id/ (informational) |
| - **API**: No documented public API. |
| - **Status**: ⚠️ No programmatic access available. |
|
|
| --- |
|
|
| ## Mode B Validation Status |
|
|
| | Level | Observed Data Available | Action | |
| |-------|------------------------|--------| |
| | City (Jakarta) | Partial (SIPSN annual/periodic) | Can be ingested as OBSERVED with city-level granularity only | |
| | Kecamatan (daily) | **NOT AVAILABLE** | Do NOT disaggregate city-level to kecamatan and label OBSERVED | |
| | Kecamatan (estimated) | Can be derived | Must be labeled DERIVED or ESTIMATED, not OBSERVED | |
|
|
| **Current evaluation mode**: MODE A — SYNTHETIC BENCHMARK ONLY |
| **Mode B status**: NOT YET AVAILABLE — infrastructure built, awaiting authoritative data |
|
|
| --- |
|
|
| ## Composition Ratios |
|
|
| | Waste Type | Ratio | Source | Classification | |
| |-----------|-------|--------|----------------| |
| | Sisa Makanan (Organic) | 50.2% | Cited as DLH DKI Jakarta statistics | UNVERIFIED — no specific publication cited | |
| | Plastik | 22.8% | Cited as DLH DKI Jakarta statistics | UNVERIFIED | |
| | Kertas | 11.5% | Cited as DLH DKI Jakarta statistics | UNVERIFIED | |
| | Logam | 2.1% | Cited as DLH DKI Jakarta statistics | UNVERIFIED | |
| | Kaca | 3.2% | Cited as DLH DKI Jakarta statistics | UNVERIFIED | |
| | Tekstil | 4.2% | Cited as DLH DKI Jakarta statistics | UNVERIFIED | |
| | Lainnya | 6.0% | Residual | DERIVED | |
|
|
| **Recommended**: Verify composition ratios against official SIPSN or DLH Jakarta annual waste characterization reports. |
|
|