The gap in our own record-keeping, published
ZEME consolidates every forward call it has ever made into one ledger: 20,317 calls across all lanes. Of the ones that have resolved, the pooled hit rate is 3.824% on 8,969 resolved calls.
Now the part that matters more than the rate:
100.000% of those resolved calls have no recorded return at all. The ledger stored whether the call was a hit. It never stored what the position would have made.
That is a NULL, and a NULL is not a zero
This is the single most repeated defect in this codebase, so it is worth being exact. A missing return does not mean the return was 0%. It means it was never measured. Anywhere ZEME shows you a figure it does not have, it must say "not measured" - and the moment it prints 0 instead, it has invented a fact.
You will see this everywhere once you look for it: a screener showing 0 volume for a stock that did not trade, a portfolio showing 0% for a holding with no cost basis, a track record showing 0 losses because losses were never recorded.
Why a hit rate alone cannot be trusted as performance
A "hit" here means an event was called correctly. It does not mean money was made, because:
- a hit that gains less than the round trip (3.04 pp, see lesson 4) is a losing trade that scores as a win;
- the ledger carries no position sizing, so ten small hits and one large miss score as ten to one;
- hits and misses are counted, not weighted by what they cost.
A hit rate measures calibration, not profit. They are different questions, and only one of them is answered by this ledger today.
What honest looks like here
We could quietly stop publishing the hit rate. We could compute a return now and present it as though it had always been tracked. Instead the ledger reports 100.000% unmeasured, the courses teach the difference, and the gap stays visible until it is genuinely closed.
When a system tells you what it does not know, that is the strongest evidence you will get about what it does know.
Evidence - where every number came from
Every figure in this lesson is listed below with its definition, its sample size, its window and the exact query that produced it, so you can re-run it rather than take our word for it.
pred_total = 20,317 (n = 20,317)
- what it is: every forward call ZEME has consolidated from all of its lanes
- window: 2026-07-04T10:30:00Z..2026-07-30T10:30:00Z
- source: psx_data.db:predictions
- the exact query:
``sql SELECT COUNT(*), SUM(resolved), SUM(CASE WHEN resolved=1 AND hit=1 THEN 1 ELSE 0 END), SUM(CASE WHEN resolved=1 AND ret_pct IS NULL THEN 1 ELSE 0 END) FROM predictions ``
pred_hit_rate = 3.824% (n = 8,969)
- what it is: pooled hit rate across every ZEME lane that has resolved calls
- window: 2026-07-04T10:30:00Z..2026-07-30T10:30:00Z
- source: psx_data.db:predictions
- the exact query:
``sql SELECT COUNT(*), SUM(resolved), SUM(CASE WHEN resolved=1 AND hit=1 THEN 1 ELSE 0 END), SUM(CASE WHEN resolved=1 AND ret_pct IS NULL THEN 1 ELSE 0 END) FROM predictions ``
pred_return_unmeasured = 100.000% (n = 8,969)
- what it is: share of RESOLVED calls whose ret_pct is NULL - the outcome was scored hit/miss but the return was NEVER MEASURED
- window: 2026-07-04T10:30:00Z..2026-07-30T10:30:00Z
- source: psx_data.db:predictions
- note: a hit rate without a return cannot tell you whether the call made money
- the exact query:
``sql SELECT COUNT(*), SUM(resolved), SUM(CASE WHEN resolved=1 AND hit=1 THEN 1 ELSE 0 END), SUM(CASE WHEN resolved=1 AND ret_pct IS NULL THEN 1 ELSE 0 END) FROM predictions ``
round_trip_cost = 3.04 pp (n = not measured)
- what it is: assumed all-in cost of one buy plus one sell, in percentage points
- window: constant
- source: reference_backtest_methodology
- note: an ASSUMPTION, not a measurement - it is the one number on this page that was not derived from the panel
- how it was computed (pandas over the panel, not SQL):
``text fixed house assumption, [[reference_backtest_methodology]] D2 ``
ZEME Academy is educational analysis of Pakistan Stock Exchange data. It is not investment advice, not a recommendation, and not a solicitation to trade. Every number here is measured history, and history is not a forecast. ZEME is not SECP-registered.