# TerraPulse Prediction Ledger

Generated 2026-11-11 16:52 UTC. 32 predictions: 32 pending.

**Chain head:** `6379972eee6b032fc9ff91aaac4ab9ff4d40bd1e8ca506d994c67bbfd1a69832`

Each prediction is committed when it is made. The database stamps the time with its own clock, computes every hash, and refuses any later change to a prediction, its deletion, or truncation of the ledger. Each row's chain hash covers every row before it, so no row can be added, removed or edited afterwards without changing the chain head above.

## How to verify

```
verification_hash = SHA-256( parcel_key + "|" + predicted_at + "|" + initial_score )
    predicted_at   UTC, ISO 8601 to the second, e.g. 2026-11-02T14:30:00Z
    initial_score  one decimal, e.g. 53.1
commitment_hash   = SHA-256( verification_hash + "|" + salt )
chain_hash        = SHA-256( previous chain_hash (or "GENESIS" for #1) + "|" + commitment_hash )
```

Pending predictions show only the commitment and chain hashes, and the parcel key is masked after the township code. The salt keeps the masked parcel from being recovered by trying every erf in the township. When a prediction is reviewed (or the parcel is unlocked), its full key, verification hash and salt are disclosed, and anyone can recompute all three hashes. PowerShell:

```powershell
function Sha256([string]$s) { [BitConverter]::ToString([Security.Cryptography.SHA256]::Create().ComputeHash([Text.Encoding]::UTF8.GetBytes($s))).Replace('-','').ToLower() }
$v = Sha256 'ZA:<full parcel key>|2026-11-02T14:30:00Z|53.1'   # = verification_hash
$c = Sha256 "$v|<salt>"                                         # = commitment_hash
```

Review: six months after each prediction. **VERIFIED** means the parcel got a new City of Johannesburg land-use application or a new Sentinel-2 change detection after the prediction, or its score rose by 10+ points; **NOT REALISED** means none of these happened.

## Entries

| # | Recorded (UTC) | Review due | Corridor | Parcel | Score | Key drivers | Status | Commitment hash |
|---:|---|---|---|---|---:|---|---|---|
| 32 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 31.7 | INFRA_TENDER 0.763, new | PENDING | `939ec89dc3de21d87e3a7df103de0192118f704a400e2183448567c7be06bea7` |
| 31 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 31.7 | INFRA_TENDER 0.761, new | PENDING | `1d473e2494d5a4756285244c22dd0659353a6acc9ce7dd6dba76e58106917113` |
| 30 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 31.7 | INFRA_TENDER 0.763, new | PENDING | `12b76ccd6c39a152fe50b2197040104d7f3a92d682c0242e2679f58e8b150e5f` |
| 29 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 31.8 | INFRA_TENDER 0.765, new | PENDING | `cdbb4d39b141311fd26115bb12a83683fc1884294fcfac0d123a7891ad57e753` |
| 28 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0770********` | 32.0 | INFRA_TENDER 0.77, new | PENDING | `42a8642c554c4e1514620c1a5b482072e8813c4e156e3122f092492b3dc4c6dd` |
| 27 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.0 | INFRA_TENDER 0.771, new | PENDING | `e740c77924981b3da3b3143f150dd306e5f39d922905d39384e6e9d90cf3eb32` |
| 26 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0JR0679********` | 32.1 | SAT_CHANGE 0.528, INFRA_TENDER 0.246, new | PENDING | `ccc844f5b4abee94fbc6508900bc165e10f7ace9d9c5423183f01e6b0333ac91` |
| 25 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.1 | INFRA_TENDER 0.774, new | PENDING | `140641206314bce1534d87ed8cd39e020e32ffb82f994f88f473681073b6e457` |
| 24 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.1 | INFRA_TENDER 0.773, new | PENDING | `c3531d6601abb057285aa77fff8cdc2334a7eb05c59313edef1dd5539fa94f0e` |
| 23 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.3 | INFRA_TENDER 0.781, new | PENDING | `99ee56f2fdfccceee49b891690efe0b6b56ee0357c9a0137af7b2023e8163a63` |
| 22 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.3 | INFRA_TENDER 0.78, new | PENDING | `f3f72a2a10d1bab8ff53017ae91a3b0155b7c395d485a6f850b642005a6ae463` |
| 21 | 2026-11-11 09:42:34 | 2027-05-11 | midrand-linbro | `ZA:GJHBT0IR0292********` | 32.6 | INFRA_TENDER 0.79, new | PENDING | `8752f2b568b9ecb9bfe728968704824c6b2935cd3a2c47a94f13c2680e6ec6cd` |
| 20 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 32.4 | INFRA_TENDER 0.674, CORP_EXPAND 0.11 | PENDING | `41fbaee59375fdb92c591ac6a9baa58337ac63b7bd8cd3f9672bca5144b5f715` |
| 19 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 32.5 | INFRA_TENDER 0.676, CORP_EXPAND 0.11 | PENDING | `99a6f5dbcd97a73a3bac80a18d26f5d65a62ca52ba91e5f3474d1c73f78fa920` |
| 18 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 32.8 | INFRA_TENDER 0.683, CORP_EXPAND 0.111 | PENDING | `6edaad442a141beca317eeeec1165b164289ceb30ea8fdb2205bc3883b0bbf22` |
| 17 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 32.9 | INFRA_TENDER 0.687, CORP_EXPAND 0.112 | PENDING | `96921f9321fe06138b5632ec4fb2e7618d1bb0d0451a93b327755efea7aa4b22` |
| 16 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0JR0079********` | 33.4 | SAT_CHANGE 0.814 | PENDING | `e3c0401d26d4d42d66045958606bc113ab47425468677a21c2df6edcaedaaf81` |
| 15 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 33.4 | INFRA_TENDER 0.698, CORP_EXPAND 0.114 | PENDING | `4a4892a1e55c300aa07d02bf1146b216068bac1782488a1cfdbbac23a16e9753` |
| 14 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 33.4 | INFRA_TENDER 0.7, CORP_EXPAND 0.114 | PENDING | `9f091c7562230b862f078ad88109c916204eaeccff38bd235223b1f32e8f5c5a` |
| 13 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 33.6 | INFRA_TENDER 0.704, CORP_EXPAND 0.115 | PENDING | `1e52cf72bd5682bef5d6cdd2b17d07f6738dcc66314b38f060fb898b0b52edd7` |
| 12 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 33.8 | INFRA_TENDER 0.71, CORP_EXPAND 0.116 | PENDING | `73ac5fe54474f86ff0fea265c5274a0af0b569d939e18e1d0cf46a6f972e965c` |
| 11 | 2026-11-02 19:33:10 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0JR0211********` | 33.9 | SAT_CHANGE 0.592, CORP_EXPAND 0.235 | PENDING | `a1c1a0b1e105d24b9ab0845da230d3207809d903f0f086240fc9e5f4e8871a23` |
| 10 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 34.4 | INFRA_TENDER 0.725, CORP_EXPAND 0.118 | PENDING | `9fa3d7223935015220292ad253eea0762285b56e586b49aa7f77cb3a4ec02510` |
| 9 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 34.4 | INFRA_TENDER 0.726, CORP_EXPAND 0.118 | PENDING | `1d966511addcd939d7be0eec2eb124bad36ca7646b25fd30bc00e1cbf64726b6` |
| 8 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 34.5 | INFRA_TENDER 0.728, CORP_EXPAND 0.119 | PENDING | `da45024a0c84c83df83b9dea5f69579a5bd5b198954f5a18587ef41fc2216d01` |
| 7 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 34.7 | INFRA_TENDER 0.734, CORP_EXPAND 0.12 | PENDING | `10982e5e0f9c5627ac7f70a09cfa8451abf92c7e6bbd55a8d23acb5e0852dfb0` |
| 6 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 34.7 | INFRA_TENDER 0.734, CORP_EXPAND 0.12 | PENDING | `14cbfd4e4b52282b566db3293cd56d0d4b105e0ab54bd60afd0e8b549c1adc6d` |
| 5 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 35.0 | INFRA_TENDER 0.742, CORP_EXPAND 0.121 | PENDING | `ab597086c1174124e9c92edb3412f8ff3dbdb44625eb471d02a18aface39bd4c` |
| 4 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 35.8 | INFRA_TENDER 0.762, CORP_EXPAND 0.124 | PENDING | `177caad33f229e295a559631e87788d14bb42ae16d9ae814fe9e657632259637` |
| 3 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 36.1 | INFRA_TENDER 0.77, CORP_EXPAND 0.125 | PENDING | `06fa0fcda468e21a6f2953bfe4a7b65643ff38c2fa0a5a334b6a61f5df8f9d98` |
| 2 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0642********` | 36.1 | INFRA_TENDER 0.769, CORP_EXPAND 0.125 | PENDING | `f3f2874fa838aa264a9bf4d894d7375527f3d47db8c0261fb3e417d9956ac7d7` |
| 1 | 2026-11-02 16:09:02 | 2027-05-02 | midrand-linbro | `ZA:GJHBT0IR0958********` | 51.9 | SAT_CHANGE 1.463 | PENDING | `a859fe6ac81bf4ad0efaaec3a47e6c84941091a25dcac319544f5a19ec0beb2e` |

---

_Informational index derived from public statutory data. Not financial advice (FAIS Act 37 of 2002) and not a certified property valuation (MPRA). POPIA Compliant: We process contact details strictly for transaction fulfillment and requested B2B communications. We do not sell or broker personal data. Contact: info@spatialsignal.co.za_
