# EXP-001 — Blind horoscope identification against chance

**Status:** filed, collection not yet open
**Protocol version:** v1.3
**Filed:** 2026-07-24
**Experiment slug:** `blind-horoscope-test`

This document is the preregistration. It is published before any data exists,
and its SHA-256 is displayed on the experiment page so a reader can verify that
the plan shown to them is the plan that was filed. Every revision is a commit
in this repository; nothing here is edited silently.

---

## 1. Question

When a reader is shown all twelve of a day's horoscopes with the sign labels
removed and the order shuffled, can they identify the one written for their own
sun sign more often than chance?

## 2. Hypotheses

- **H₀ (null):** the probability of a correct identification is exactly
  p₀ = 1/12 ≈ 0.08333.
- **H₁ (alternative):** the probability is greater than p₀.

The test is two-sided, so a rate *below* chance is also detectable and would be
reported. A consistently sub-chance result would itself be a finding and must
not be quietly folded into "no effect".

## 3. Primary outcome

The proportion of entries in which `picked_reading_id` equals the reading
written for the participant's claimed sun sign.

## 4. Statistical analysis

Fixed before collection and not modifiable while the register is open:

- **Test:** two-sided exact binomial test against p₀ = 1/12.
- **Significance level:** α = .05.
- **Interval estimates:** Wilson score intervals at 95%.
- **Milestone reads:** at n = 1,000, 5,000, 10,000, and 25,000 entries.
  Conclusions are drawn only at these points. Figures update publicly in
  between, but a milestone is what licenses a claim.
- **Per-sign analysis:** twelve secondary comparisons, one per claimed sign,
  with Holm–Bonferroni correction. Uncorrected values are published alongside
  the corrected ones rather than dropped.

Twelve simultaneous comparisons at α = .05 produce at least one spurious
"significant" sign about 46% of the time. That is the expected behaviour of a
null register, not a discovery, and the correction is what keeps it from being
reported as one.

## 5. Materials — the readings

The twelve daily readings are **commissioned from a practising astrologer**,
credited by name (or a professional alias of their choosing) with their
recorded consent, and paid for their work.

**Disclosure:** the author knows the readings are used in a blind
identification test. This is stated plainly because it is a real feature of the
design, not a flaw to be hidden: it means the readings are written by someone
with an incentive for them to be identifiable, which if anything favours H₁.
A null result under those conditions is therefore the stronger conclusion.

The author is asked to write as they normally would for a daily column, and is
given no information about participants, results, or which readings have been
identified successfully.

Syndicated newspaper columns were considered and rejected: republishing them
daily would reproduce copyrighted text without licence.

Each published set records its author, an optional public credit link, and the
timestamp at which consent was confirmed. The database refuses to publish a set
lacking any of these, or holding fewer than twelve readings — one per sign.

## 6. Procedure

1. A set of twelve readings is published for a given UTC date.
2. A participant is shown all twelve with signs removed, ordered by a
   participant-stable shuffle so that reloading does not reshuffle and screen
   position carries no information between participants.
3. The participant selects one reading.
4. **Only then** is the participant asked for their sun sign. The order is
   enforced by the interface so that knowing one's own sign cannot steer the
   choice.
5. The entry is scored server-side. The correct answer is never sent to the
   browser before the entry is filed.

## 7. Sampling and stopping

Collection runs continuously. There is no stopping rule tied to results: the
register does not close because a milestone produced a pleasing number. It
closes when the experiment is retired, which is announced in advance.

## 8. Eligibility and deduplication

- One entry per participant per UTC day, enforced by a database constraint.
- Participants are anonymous, identified by a device-scoped random identifier.
- A salted one-way hash of the IP address is stored for abuse review only. It
  is never published.

**Known limitation, stated plainly:** clearing browser storage mints a new
identifier. The daily constraint and the address hash are the backstop, and
the count is not claimed to be tamper-proof. Any exclusion rule applied during
analysis will be published with the data and applied to the whole dataset, not
to selected entries.

## 9. Blinding and sealing

Same-day entries are sealed until 00:00 UTC. Public figures show cumulative
results through the previous day only. This is enforced in the database: the
public aggregate views exclude the current date, so no interface change can
expose today's distribution to someone still choosing.

## 10. Data publication

Anonymised entry data and the analysis code are published and refreshed
nightly from the day collection opens. Published files carry per-export
pseudonyms rather than participant identifiers, and exclude address hashes.

## 11. Prespecified threats to validity

1. **Multiplicity across signs** — handled by Holm–Bonferroni (§4).
2. **Barnum effect** — a single well-written reading attracts picks from
   everyone regardless of sign. Measured separately as the distribution of
   picks across readings, and reported rather than mistaken for signal.
3. **Unverified self-reported signs** — misreporting adds noise, biasing
   toward the null. A null result is therefore the weaker of the two possible
   conclusions, and this is stated wherever a null is reported.
4. **Non-random sample** — participants self-select and arrive from
   communities with priors. Referral source is recorded so the split can be
   inspected rather than assumed away. Results describe this sample, not the
   general population.
5. **Author effects** — a single author's style is a property of this
   register. A replication with a different author is the correct way to test
   whether any result generalises.

## 12. What would change our minds

If the observed rate exceeds chance at a milestone under the preregistered
test with correction applied, that is published as a positive result with the
same prominence as a null one — and the next step is replication with a
different author and a preregistered confirmatory register, not a press
release.

## 13. Revision history

| Version | Date | Change |
|---|---|---|
| v1.3 | 2026-07-24 | Reading source settled: commissioned credited astrologer, with disclosure (§5). Replaces the syndicated-column source described in v1.2. |
| v1.2 | 2026-07-18 | Clarified deduplication rule (§8). |
| v1.1 | 2026-07-04 | Interval estimates switched to Wilson score intervals (§4). |
| v1.0 | 2026-07-01 | Filed. |

Changes are appended. Once collection opens, §§2–4 are frozen: no revision may
alter the hypothesis, the test, α, or the milestone schedule while the register
is open.
