I-D draft-schlitt-spf-classic-00 says:
7.2 The Received-SPF header
It is RECOMMENDED that SMTP receivers record the result of SPF
processing in the message headers. If an SMTP receiver chooses to do
so, it SHOULD use the "Received-SPF" header defined here.
But the syntax has a limitation: the header uses :
result = "Pass" / "Fail" / "TempError" / "SoftFail" /
"Neutral" / "None" / "PermError"
which are not SPF-specific terms. If you use SPF, not for
black-and-white filtering but for input to a bayesian decision
process, these words do not help. I use a different Received-SPF, with
prefixed words (SPF-pass, SPF-fail, etc), which allows bogofilter (the
bayesian filter I use) to learn by itself that SPF failures are
probably spam and that a SPF pass is a good sign:
~ % bogoutil -w .bogofilter/wordlist.db head:SPF-pass head:SPF-fail
head:SPF-none
spam good
head:SPF-pass 9 17
head:SPF-fail 1 0
head:SPF-none 92 61
(Of course, bayesian filters with context could help but I do not
know if they exist.)