Home Pricing Support Integrations Security About Get Started
Security & Trust

Security that federal buyers can verify.

Reason is built and hosted on infrastructure that federal procurement teams can audit. Here is exactly what we do — and what we don't — to protect your capture data, PWIN scoring, and proposal IP.

TLS in transit · AES-256 at rest Org-isolated data SOC 2 Type 1 target Q4 2026

What protects your data, in plain language.

Every claim below maps to a specific architectural choice in our codebase or hosting configuration. If a procurement officer wants verification, point them here.

Encryption in transit

TLS 1.2+ at the edge, SSL on every database connection.

All browser traffic is terminated at the Render edge with TLS 1.2 or higher — HTTP is forced to HTTPS at the platform level. Application-to-database traffic is likewise SSL when the connection is not localhost.

  • Edge TLS termination on Render
  • Postgres connections use SSL off localhost
  • No plaintext credentials in transit
Encryption at rest

Provider-managed AES-256 storage; bcrypt password hashes.

Our Postgres instance runs on Neon, which encrypts underlying storage with AES-256. User passwords are never stored in plaintext — we hash with bcrypt before persistence. Auth tokens are signed with a server-held secret.

  • Neon Postgres — AES-256 storage encryption
  • bcrypt hashing for password_hash
  • JWT secret stored as an environment variable, not in code
Access controls

JWT cookie auth, org-scoped data, role-based gating.

Sessions are JWTs delivered as httpOnly, sameSite=lax cookies. Every query layer is scoped by organization_id, so users only ever see their own org's opportunities, captures, and proposals. Server-side role checks gate admin actions.

  • httpOnly auth cookies · 7-day expiry
  • Per-organization isolation enforced in the data layer
  • Role-based require guards for admin / privileged endpoints
SSO · on request

SAML 2.0 / OIDC SSO, available on Enterprise.

Single sign-on is not turned on by default. We support SAML 2.0 and OIDC, scoped per organization, and activate it for Enterprise-tier customers during onboarding. If your agency requires SCIM or federated identity, we'll wire it in.

Honest status: SSO is opt-in and configured per customer. Federated provisioning (SCIM) is available with Enterprise onboarding — not yet a self-serve toggle.
Audit logging

Application event log for sign-ins, edits, and Stripe.

Sign-ins, opportunity edits, PWIN score runs, and Stripe webhook events are all written to an internal event log we can replay. This gives you a forensic trail — not a tamper-evident SOC-style audit chain (yet).

  • Funnel & mutation events captured per session
  • Stripe webhook deliveries logged for every charge
  • Log retention tuned to operational need, not compliance
Roadmap: a dedicated, hash-chained audit trail with longer retention is part of our SOC 2 Type II scope.
Infrastructure

Render-hosted app, Neon-managed Postgres.

Application code runs on Render with health-checked deploys. The database is a managed Neon Postgres instance with provider-side backups. There is no on-prem component, no developer direct DB access in production, and no shared credentials.

  • Render — managed runtime · auto TLS
  • Neon — managed Postgres · point-in-time recovery
  • Secrets injected as environment variables only

Where we are, where we're going, and when.

Honest timelines. We don't claim certifications we don't have yet.

Now
Operating posture
In production today

SOC 2 readiness assessment in progress. Background-checked engineers, change-controlled deploys, and the access controls described above. No current attestation — we will not represent this section as certified.

Target · Q4 2026
SOC 2 Type 1
Report target: Q4 2026

Point-in-time attestation covering security and availability trust criteria. We will publish the report summary under NDA on request once issued.

Future
SOC 2 Type II · FedRAMP Moderate
SOC 2 Type II target Q2 2027 · FedRAMP roadmap TBD with sponsor

Type II covers an operating window — typically 6 to 12 months — and we plan to start the observation period in late 2026. FedRAMP Moderate authorization requires a sponsoring agency; we are open to conversations with interested partners.

Procurement review pack: We can share a current security questionnaire response, an architecture diagram, and a sub-processor list on request. Email security@reasongov.com with your agency or contracting officer's name and we will respond within two business days.

Where your data flows, and where it stops.

Reason is a tool for working with federal-buyer data — not a marketplace. We do not sell, share, or train models on your data.

PWIN scoring services/pwin.js · Neon
Scoring calls route through the Polsia AI Proxy (Anthropic-compatible, ANTHROPIC_BASE_URL) to produce component breakdowns and what-must-change-to-win analysis. Inputs are scoped to your opportunity and org; we do not retain model inputs beyond the active session. All scores, signals, and explainability artifacts are stored on your org's Neon Postgres tenant.
Proposal generation services/proposal-ai.js
Generated proposal text (executive summary, technical approach, win themes) is produced from your org's stored past performance, key personnel bios, and the active solicitation context. Drafts live in your workspace only — no cross-org training, no shared model memory.
SAM.gov data organization_sam_settings
SAM.gov is read-only. Each org configures its own API key in organization_sam_settings; we make the calls on your behalf, store the resulting opportunity records by sam_solicitation_id, and never transmit your key to a third party. Nightly sync runs as an idempotent job that upserts rather than duplicates.
Payments Stripe Checkout · routes/checkout.js
Payment cards never touch Reason servers. We use Stripe Checkout (PCI DSS Level 1), which keeps card data inside Stripe's vault. We only persist order IDs, subscription IDs, and billing status — enough to manage receipts and renewals, not enough to reconstruct a card.
Authentication data db/auth.js · lib/authMiddleware.js
We store email and a bcrypt password_hash per user. Session tokens are JWTs signed with a server-held secret and delivered as httpOnly cookies. Password reset tokens are single-use and expire automatically.
Daily cron jobs jobs/sam-sync.js · polsia.toml
The only scheduled background process is the SAM.gov sync, declared in polsia.toml. Each run executes as an isolated job against your org's key with exponential backoff on rate-limit responses. Job logs are retained for operational review.
Responsible Disclosure

Found a security issue? Tell us directly.

We commit to acknowledging security reports within two business days, providing an initial assessment within ten, and working with you on coordinated disclosure.

Email security@reasongov.com

What to include: a clear repro, expected vs. actual behavior, and any logs you can safely share (no PII). Our promise: no legal action against good-faith research, encrypted-channel response on request, and a 90-day coordinated-disclosure window as our default goal.

For Federal Buyers

Procuring AI tools? Request a briefing.

If your agency or program office is evaluating Reason, we’ll walk your team through this security posture, the sub-processor list, and the data-flow architecture in a 30-minute call.

Request a Briefing →

Use your official government or company email — we’ll be in touch within two business days from security@reasongov.com.

What contracting officers usually want to know first.

Where is our data stored, and can it stay in the U.S.?

Yes. Application hosting is on Render (U.S. regions) and Postgres runs on Neon, which is U.S.-based and U.S.-operated. All customer data, including PWIN scoring inputs and proposal drafts, stays in U.S. data centers; we have no international data flows for customer content.

Who are your sub-processors, and how do we get the list?

Our sub-processors today: Render (hosting), Neon (Postgres), Polsia AI Proxy (model calls), and Stripe (payments). SAM.gov is read-only via per-org keys. Send a request to security@reasongov.com and we'll send the current list with DPA references.

If you have a breach, how and how fast do you tell us?

Our target breach-notification window is 72 hours from confirmed incident to customer notification, consistent with GDPR/CCPA expectations. Notification goes to the org owner contacts we have on file, with a written summary, scope, and remediation steps. We do not promise this in advance for incidents we cannot yet characterize — only that we will move at that speed.

Is our proposal text subject to ITAR / EAR or other export-control rules?

Reason does not control or classify content you upload. You decide whether the material you store or generate through Reason is controlled under ITAR, EAR, or agency-specific marking. Reason itself does not ingest controlled technical data without your direction in plain-text solicitation context; treat the platform as a tool, and your data classification rules apply.

How does account deletion work, and is data truly deleted?

Org owners can request account and data deletion from the team settings page or by emailing us. We delete the organization, its users, opportunities, captures, and proposals from production Postgres within 30 days, and rotated backups within 90 days. We will confirm deletion in writing.

How do you handle DFARS / flow-down obligations our prime contractor imposes?

We treat DFARS 252.204-7012 (Safeguarding Covered Defense Information) flow-downs as a contract-level conversation. Once SOC 2 Type 1 is issued we can provide the report and a NIST 800-171 self-assessment narrative for review. If a particular clause requires a CUI handling environment, that's the kind of requirement we'd scope a dedicated deployment against.