GravityAgent fact sheet
Every number on this site is taken from this page. Last verified . If a page and this table ever disagree, this table is right and the page is a bug; tell us at [email protected].
Product
| Fact | Value | Source |
|---|---|---|
| Name | GravityAgent | — |
| What it is | AI spam scoring for Gravity Forms submissions, as a WordPress add-on backed by a hosted engine | docs/roadmap.md §3 |
| Domains | Site gravityagent.io; API api.gravityagent.io | docs/handoff.md |
| Plugin licence | GPLv2-or-later | plugin/LICENSE, plugin/gravityagent.php |
| Engine | Proprietary hosted service on Cloudflare Workers | ADR-0001 |
| Requirements | Gravity Forms ≥ 2.6, WordPress ≥ 6.0, PHP ≥ 7.4 (tested on 8.x); tested up to WP 7.1 | plugin/readme.txt |
| Plugin version | 0.1.0 | plugin/readme.txt |
| Merchant of record | Freemius | ticket 01 (2026-09-04) |
Pricing and tiers (annual, decided 2026-09-04)
| Tier | Price | Sites | Scored submissions / month |
|---|---|---|---|
| Free | $0 | 1 | 250 |
| Starter | $99 / year | 1 | 2,000 |
| Growth | $249 / year | 5 | 10,000 |
| Agency | $599 / year | 25 | 50,000 |
- Trial: 14 days, no card, Growth-shaped, 1,000 scored submissions, once per customer and once per site domain. (
backend/src/entitlements.ts) - Over the limit: scoring stops after a 10% grace allowance; nothing is ever charged as overage; submissions are admitted unscored. (
backend/src/usage-counter.ts) - Monthly windows reset on a rolling monthly period from activation; paid plans bill annually. (spec 06 amendment 2026-09-04)
- Downgrades and cancellations take effect at period end; upgrades immediately. (
backend/migrations/0004)
Behaviour
| Fact | Value | Source |
|---|---|---|
| Fail-open | No verdict for any reason → entry admitted, marked "Not scored" with a reason; never marks spam without a clean verdict at or above threshold | plugin/src/SpamGate.php, INVARIANT tests |
| Never overturn | An entry another plugin already marked spam is left alone, no call made | same |
| Time budget | 3 s hard wall in the plugin; engine p95 target ≤ 1.5 s | spec 00 constraint 1 |
| Learning | Site owner's corrections become examples for that site's later submissions; no fine-tuning, no cross-customer model | spec 00 constraint 5 |
| Site profile | Built automatically from the site's public pages at activation, on manual re-crawl, and about every 60 days; nothing behind a login | backend/src/crawl/ |
| Field exclusion | Per-field opt-out; excluded values never leave the site; file uploads sent as name + label only | plugin/src/RequestBuilder.php |
Benchmark (locked 2026-09-05, ticket 03)
| Fact | Value |
|---|---|
| Action threshold | 0.85 |
| Set | 220 reviewed items across 6 synthetic sites |
| Result | 0 false positives on 95 genuine submissions; 87.2% recall on spam; ECE 0.053 |
Privacy posture
| Fact | Value | Source |
|---|---|---|
| Roles | The WordPress site is the controller; GravityAgent is a transient processor | CONTEXT.md, docs/legal/dpa.md |
| Content storage | No submission content is ever stored: not in a database, log, cache or backup; enforced by sentinel-leak tests on every table and the log sink | backend/test/decide.test.ts |
| Kept | Non-content decision records (ids, label, confidence, model, latency, tokens) for ~90 days; daily outcome counts; site profile and owner notes until deactivation | docs/legal/privacy.md |
| Training | Never; the LLM provider is used on Gemini API paid-tier terms that forbid it | docs/legal/subprocessors.md |
| Location | Stored data US-only (Cloudflare D1, ENAM); in-flight processing at the nearest Cloudflare edge and at Google | docs/legal/privacy.md §4 |
| Subprocessors | Cloudflare, Google (Gemini API), Firecrawl (crawl only), Freemius (paid checkout only) | docs/legal/subprocessors.md |
| Deletion | Deleting the entry deletes the content; deactivating the site deletes its profile and notes immediately | ticket 32 |