# The FACT-Ray standard

> GAMMA-Ray v0.0.155 (beta, for review; every rating is experimental). The three axes of FACT-Ray, the band matrix, the cap, fact nodes and claims, the rules of zoom and the conduct rules.
> Page: https://gamma-ray.sgit.ai/fact-ray/standard/ · Source: content/fact-ray/standard/index.md


FACT-Ray 0.1 beta (provisional) · built inside GAMMA-Ray first; it will move to its own site

## The unit: fact nodes and claims

- A **fact node** is one statement: "Product X logs every action".
- A node carries one or more **claims**. A claim is one source asserting something about the node, with its own three coordinates.
- A node's score comes from its claims.
- Nodes nest at every level of zoom.

## Axis S: Source. Who is saying it?

Defined by the source's relationship to the subject of the fact. The source's capacity is recorded too: a junior salesperson and the CISO are both S2, and the claim records their role.

| Level | Name | Meaning | On a Spectrum card | In a news story |
|---|---|---|---|---|
| S0 | **No data** | Nothing found. Never read as no. | No public page on audit logs | No source on headcount |
| S1 | **Discovered** | We (an agent or a journalist) found it in public material and interpreted it | Our agent read the vendor's documents | A reporter inferred it from a filing |
| S2 | **Subject** | The party the fact is about says it | The vendor states it | The company's spokesperson |
| S3 | **Counterparty** | Someone on the other side of a relationship with the subject | A customer | A client, an employee, an affected party |
| S4 | **Authority** | An independent body | An auditor or certification body | A regulator, a court, a statistics office |

**Anonymous sources.** Journalism needs them. They are recorded as S3 at R2, attributed to the newsroom rather than to the person. The newsroom carries the accountability.

## Axis R: Record. How firmly is it recorded and proved?

This axis is about record, attribution and proof, not the medium. A named person's spoken quote, recorded and on the record, is R3.

| Level | Name | Meaning |
|---|---|---|
| R1 | **Said** | Verbal, nothing recorded |
| R2 | **Written** | Recorded, but informal or unattributed: a chat, a forum post, an employee's personal blog |
| R3 | **On record** | Attributable through an accountable channel: a named role, the official domain, a signature |
| R4 | **Linked** | On record and pointing to an artefact anyone can open: a document page, an endpoint that resolves, data, a certificate |
| R5 | **Reviewed** | The artefact is captured and hashed (SHA-256, with the read date), and someone other than the claimant has checked that the claim matches it |

## Axis A: Accountability. Who stands behind it?

Every actor in the chain is recorded with a kind (agent or human), an identity, a capacity relative to this claim, and independence from the producer. These roll up into a ladder:

| Level | Name | Meaning |
|---|---|---|
| A0 | **Unvalidated** | Produced; nobody else checked |
| A1 | **Agent-checked** | One or more identified agents reviewed it |
| A2 | **Human-checked** | A named human reviewed it; capacity unstated or junior |
| A3 | **Practitioner-validated** | A human in a relevant role, or with a relevant qualification, signed it |
| A4 | **Accountable-signed** | The person who answers for it signed on record: owner, officer, licensed professional, the publishing operator |
| A5 | **Panel** | Two or more independent signers, each at A3 or above |

**Count and independence are always shown** beside the level: `A1 ×3 (same model family, shared repository)`. In this version they are displayed and do not change the band.

## How the axes combine

**Step 1: Source by Record gives the claim's band.** The matrix is data ([bands.json](../../data/fact-ray/bands.json)), never hidden in code.

| | R1 Said | R2 Written | R3 On record | R4 Linked | R5 Reviewed |
|---|---|---|---|---|---|
| **S1 Discovered** | none | Low | Moderate | Moderate | High |
| **S2 Subject** | Low | Low | Moderate | High | High |
| **S3 Counterparty** | Low | Moderate | High | High | Strong |
| **S4 Authority** | Moderate | Moderate | High | Strong | Strong |

S0 has no band; it shows as "no data".

**Step 2: Accountability caps the band.** ([caps.json](../../data/fact-ray/caps.json))

| Accountability | The band is capped at |
|---|---|
| A0 Unvalidated | Low |
| A1 Agent-checked | Moderate |
| A2 Human-checked | High |
| A3 Practitioner-validated | no cap |
| A4 Accountable-signed | no cap |
| A5 Panel | no cap |

The band shown is the lower of the matrix band and the cap. All three coordinates are always shown next to the band.

## From claims to a node

- **The node's band** is the band of its strongest claim.
- **+** Corroborated: at least two claims from independent sources agree, each at Moderate or above.
- **!** Contested: a claim at the same band or higher disagrees; both are shown.
- **stale** The strongest claim is older than the freshness window.
- **Freshness** is an attribute, not an axis. Every claim carries its read date.
- **Statement facts and operation facts.** A statement fact can be settled by the subject's own word: a named owner, a published policy, a stated purpose. An operation fact has to hold in practice: logging, monitoring, enforced limits. For an operation fact, a claim below R4 is shown and does not satisfy the node.

## Every level of zoom

Claims attach to nodes at any altitude: a corpus, a publication, an article, a sentence, a figure; a standard, an instrument, a provision; a card, a dimension, a level, an indicator, an evidence item. Two rules:

1. **Every validation has a scope.** "I checked figures 2 and 3" is not "I checked the article". A signature applies only to its stated scope.
2. **A parent never averages its children.** A parent shows the distribution of its children's bands, beside any validation of the parent as a whole. Validating the whole never upgrades the parts.

## Conduct rules

1. No data is not no.
2. Never show a band without its S·R·A coordinates.
3. The band matrix and the cap table are published as data; changes are versioned and dated.
4. Contested claims are shown side by side, never resolved quietly.
5. Every validation states its scope.
6. A parent never averages its children.
7. Quoted spans are exact and under fifteen words.
8. Corrections propagate to every page and every parent node, with a dated changelog entry.
9. FACT-Ray scores trust, not truth. A band is never called true or verified.
10. The same rules for us: our own publications are scored first.

## How GAMMA-Ray's labels map in

| GAMMA-Ray | FACT-Ray |
|---|---|
| Tier: public | S1 |
| Tier: declared | S2 · R3 |
| Tier: evidenced | R4 or R5 |
| Not evidenced | S0, no data |
| Today's Spectrum cards (studio, review and approve agents) | S1 · R5 · A1, same model family, shared repository |
| The operator signs a card | A4, for the scope he signs |

## Not decided

These are the operator's: whether count and independence should ever change the band; whether an agent with a strong independent track record can rank beside A2; freshness windows per kind of node; whether a vendor-wide certificate counts for one product; the domain FACT-Ray moves to.


[The standard](../../fact-ray/standard/index.md) · [The matrix](../../fact-ray/matrix/index.md) · [The actors](../../fact-ray/actors/index.md) · [Well-known files](../../fact-ray/well-known/index.md) · [Examples](../../fact-ray/examples/index.md) · [Where it is applied](../../fact-ray/applied/index.md)
