Delete the link.If nothing is left, the link is the post.
Every moderated community removes self-promotion on the same structural grounds, and every founder learns them by getting removed. This grades the post before you publish it — six signals, three verdicts, and a ceiling that reads the post as if the link were already gone.
You do not get told why the post was removed. You get told nothing.
Most removals are silent. The post simply stops being visible to anyone but you, which is why founders repeat the same mistake for months.
Standalone value, rule match, contribution ratio, affiliation disclosure, account standing, link placement. Weights sum to 100.
Standing is the input to every future post's score. Burning it in one community is not a bad day; it closes the room.
The advice everyone gives is “add value, don’t just drop links.” That is true and useless, because it is not testable before you press post. This makes it testable: delete the link, re-score the post on only what is left, and let that number cap the verdict.
Change a mark. Watch the ceiling bite.
Grading r/SaaS. Change any mark and the verdict recomputes. Nothing is sent anywhere.
Standalone valueweight 24 · residual
Delete the link. Is anything left?
Worth reading with the link deleted.
Community rule matchweight 20 · residual
What do the written rules actually say?
The rules are silent, ambiguous, or conditional on something unmet.
Contribution ratioweight 16 · residual
What has this account given this community before today?
Some non-promotional history, but promotion is a large share.
Affiliation disclosureweight 16
Does the post say you built or sell the thing?
Stated plainly in the post body, before the link.
Account standingweight 12 · residual
Where does this account stand in THIS community?
Established elsewhere, little standing here, no removals.
Link placement and countweight 12
How many links, and where?
At most one plain link, placed after the value.
Removal precedent
Has this community removed a post of this type before?
Score
76/100
Band: POSTABLE
Residual · link deleted
67/100
Band: REWRITE
OVERRIDE A — residual ceiling. Capped at REWRITE: without the link this post would not be worth posting.
Verdict
REWRITE
Fix first: Community rule match
This grades a post, never a person. It contacts no platform and cannot predict a moderator's decision.
Load P-02 and P-03 back to back. They differ by a single mark — contribution ratio — and that one mark is the difference between a capped REWRITE and a clean POSTABLE. Load P-05 for a post that scores 86 and still reads WILL BE REMOVED, because the community already removed this exact thing once.
This is the real output of the shipped engine on the shipped sample.
Nothing below is written by hand. It is the verbatim stdout of python3 engine.py posts-sample.csv, captured programmatically and diffed against this page before publishing.
======================================================================== SELF-PROMO SURVIVABILITY CHECKPOINT - SPS-079 - RedHub AI LLC ======================================================================== Grades planned posts. Scores posts, never people. No platform is contacted. No moderator decision is predicted. ------------------------------------------------------------------------ POST P-01 [r/smallbusiness weekly thread] ------------------------------------------------------------------------ Standalone value 2/2 weight 24 (residual) Community rule match 2/2 weight 20 (residual) Contribution ratio 2/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 2/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 100/100 -> POSTABLE Residual (link deleted) 100/100 -> POSTABLE Removal precedent none Overrides none fired VERDICT POSTABLE Fix first nothing - every signal is at 2 ------------------------------------------------------------------------ POST P-02 [r/SaaS] ------------------------------------------------------------------------ Standalone value 2/2 weight 24 (residual) Community rule match 1/2 weight 20 (residual) Contribution ratio 1/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 1/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 76/100 -> POSTABLE Residual (link deleted) 67/100 -> REWRITE Removal precedent none OVERRIDE A FIRED residual ceiling: capped at REWRITE VERDICT REWRITE Fix first Community rule match ------------------------------------------------------------------------ POST P-03 [r/SaaS (twin: history added)] ------------------------------------------------------------------------ Standalone value 2/2 weight 24 (residual) Community rule match 1/2 weight 20 (residual) Contribution ratio 2/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 1/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 84/100 -> POSTABLE Residual (link deleted) 78/100 -> POSTABLE Removal precedent none Overrides none fired VERDICT POSTABLE Fix first Community rule match ------------------------------------------------------------------------ POST P-04 [r/marketing] ------------------------------------------------------------------------ Standalone value 1/2 weight 24 (residual) Community rule match 1/2 weight 20 (residual) Contribution ratio 0/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 2/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 62/100 -> REWRITE Residual (link deleted) 47/100 -> WILL BE REMOVED Removal precedent none OVERRIDE A FIRED residual ceiling: capped at WILL BE REMOVED VERDICT WILL BE REMOVED Fix first Contribution ratio ------------------------------------------------------------------------ POST P-05 [Hacker News Show HN] ------------------------------------------------------------------------ Standalone value 2/2 weight 24 (residual) Community rule match 2/2 weight 20 (residual) Contribution ratio 1/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 1/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 86/100 -> POSTABLE Residual (link deleted) 81/100 -> POSTABLE Removal precedent unchanged OVERRIDE B FIRED precedent floor: this exact removal already happened VERDICT WILL BE REMOVED Fix first Contribution ratio ------------------------------------------------------------------------ POST P-06 [r/webdev] ------------------------------------------------------------------------ Standalone value 0/2 weight 24 (residual) Community rule match 1/2 weight 20 (residual) Contribution ratio 0/2 weight 16 (residual) Affiliation disclosure 1/2 weight 16 Account standing 1/2 weight 12 (residual) Link placement and count 1/2 weight 12 Score 30/100 -> WILL BE REMOVED Residual (link deleted) 22/100 -> WILL BE REMOVED Removal precedent resolved Overrides none fired VERDICT WILL BE REMOVED Fix first Standalone value ------------------------------------------------------------------------ POST P-07 [Indie Hackers] ------------------------------------------------------------------------ Standalone value 2/2 weight 24 (residual) Community rule match 0/2 weight 20 (residual) Contribution ratio 2/2 weight 16 (residual) Affiliation disclosure 2/2 weight 16 Account standing 2/2 weight 12 (residual) Link placement and count 2/2 weight 12 Score 80/100 -> POSTABLE Residual (link deleted) 72/100 -> REWRITE Removal precedent none OVERRIDE A FIRED residual ceiling: capped at REWRITE VERDICT REWRITE Fix first Community rule match ======================================================================== QUEUE ROLLUP ======================================================================== Posts graded 7 Will be removed 3 (43%) QUEUE VERDICT QUEUE WILL BURN THE ACCOUNT Fix first P-06 - Standalone value ========================================================================
Six weighted signals, three verdicts, two overrides, one proven bound.
Standalone value 24, community rule match 20, contribution ratio 16, affiliation disclosure 16, account standing 12, link placement 12. Weights sum to 100. POSTABLE at 75 or more, REWRITE from 50 to 74, WILL BE REMOVED under 50.
The same model re-run over only the four signals that survive deleting the link, renormalised to 100. The verdict may be no better than the residual's band. Worsen-only: it can never improve a result. It fires on 198 of the 2,187 possible inputs.
If this community has removed a post of this type before and the cause is unchanged, the verdict is WILL BE REMOVED regardless of score. Marking the cause resolved leaves the override inert, and the sample proves both states.
Override A alone can never move a post from POSTABLE to WILL BE REMOVED. Reaching a score of 75 requires a residual of at least 66, which is at worst the REWRITE band. That is not a claim — the shipped verifier proves it exhaustively across all 729 mark combinations, and prints the minimum residual it found. Only the precedent floor can take a strong post to WILL BE REMOVED, and only because the removal already happened.
It grades a post you wrote. It does not grade a room, a moderator, or you.
- A pre-publish structural check on a post you are about to make.
- Deterministic and offline — same inputs, same verdict, every time.
- A named model you can argue with: weights, bands and overrides are all on this page.
- Dateless. There is no evaluation date anywhere in the product, so nothing drifts.
- Not a prediction of a moderator’s decision. Moderation is a human judgement and no tool can guarantee an outcome.
- Not connected to anything. It fetches no page, reads no account, and posts nothing.
- Not a way to get promotional posts past a rule. A post the rules forbid scores as a post the rules forbid.
- Not an audit, not a moderation tool, and it scores no people.
Scope note: disclosure obligations for paid, sponsored or affiliated promotion vary by jurisdiction and by platform, and the affiliation signal here is a structural check on your own post, not a compliance determination. Confirm your own obligations. This is not legal advice.
Anyone whose distribution depends on rooms they do not control.
- Solo founders whose only free channel is other people’s communities.
- Bootstrapped teams with a product nobody has heard of yet.
- Agencies posting on behalf of clients, where a removal costs a relationship.
- Anyone who has been silently removed and never found out why.
- Anyone looking for a way around a community’s stated rules.
- Teams running paid placements, where the rules are contractual, not communal.
- Moderators evaluating other people’s posts — this grades your own.
- Anyone expecting a guarantee. There is no guaranteed outcome here.
The Checkpoint says whether the post survives. These three shape what it says.
The Checkpoint grades whether the post survives the room. This grades whether it was worth reading in the first place.
ViewAccount standing is an input here and an output there. Build the standing that lifts every future post's score.
ViewThis lane is human reach. That one is machine reach — getting cited by the answer engines once the post is live.
ViewThe mechanics, stated plainly.
Find out before the room does.
Not after.
One purchase, lifetime access, 12 months of updates. $79, once.
Deterministic and offline. It grades posts, never people, and cannot predict a moderator’s decision. Not legal advice.
Sold by RedHub AI LLC · Secured by Stripe · redhub.ai