Most companies in this space publish an accuracy percentage. We do not, because the number would be meaningless and we would be choosing it. This page is the opposite: the ceiling on what our signals can support, written down where you can hold us to it.
A Pupul file proves that a record existed at a point in time and has not been altered since. That is a cryptographic claim, not a psychological one. The ledger only appends, every checkpoint is signed and published, and anyone can verify it without asking us. On this claim we are not making a probabilistic guess, and we will defend it.
Everything else the file carries is inference, and inference has a ceiling.
Published research on inferring stable traits from behavioural and self-report signals generally tops out around a 0.4 to 0.5 correlation with the thing being measured, and that is under good laboratory conditions with instruments far longer than ours. Nothing we do escapes that ceiling. Anyone who tells you their behavioural inference is 90 percent accurate is either measuring something trivial or measuring agreement with themselves.
So we treat the inferred parts of a file as a useful starting point that a human corrects, never as a finding, never as a score, and never as evidence about someone.
When we cannot evidence a claim, the API returns null. It never returns false. This is a deliberate architectural choice and it is the most important sentence on this page.
The difference matters because a false reads as an accusation. If someone has no record with us, that is a fact about our data, not a fact about them. A system that returns false for absence quietly converts "we have never seen this person" into "this person failed a check", and that is how verification infrastructure ruins lives. Ours cannot do it, because the value is not available to return.
| Claim | What it actually means | What it does not mean |
|---|---|---|
| is_human | A presence signal accrued over an elapsed record. Consistent with a human keeping a record over time. | Not a biometric. Not identity verification. Not proof of who someone is. |
| is_continuous | Entries span real elapsed time and were not inserted retroactively. This is the strongest thing we measure. | Not a measure of how good, reliable or trustworthy a person is. |
| has_deviated | The pattern of the record changed relative to its own history. | Not a judgement. People change for good reasons far more often than bad ones. |
| stands_behind | The person affirmatively attached themselves to this record and can revoke it. | Not a guarantee of the content, and not an endorsement by us. |
Every claim is returned with the provenance that produced it: how many entries, over how many distinct weeks, from which sources, and how many of those were imported rather than lived. Imported history never counts toward continuity. If it did, the whole thing would be forgeable with a CSV.
This is not caution for its own sake. A provenance record that decides access to work, care or credit becomes a consumer report, and a consumer report carries obligations that our design deliberately does not meet, because meeting them would require exactly the surveillance we refuse to build.
None of the above is worth anything if you have to take our word for it. All of this is verifiable without our cooperation.
If evidence shows a claim on this page is wrong, this page changes and the change is dated. We would rather publish a ceiling that embarrasses us than an accuracy number we picked because it sounded good.