Raxx · internal docs

internal · gated

Heroku May 2026 — invoice delta memo

Prepared: 2026-06-03 UTC Scope: Heroku May 2026 invoice — actual $216.62 vs. prior session-memory estimate ~$185 Companion doc: docs/business/bookkeeper/2026-05-reconciliation.md


What the $216.62 was

Heroku bills on a metered-monthly basis, issuing the invoice at or shortly after month-end. The May invoice arrived in Gmail on 2026-06-01 14:18 UTC (after the 2026-05-31 period-end close).

Invoice #112208633 — $216.62 total

Invoice line items (from Gmail body — authoritative)

Charge category Amount
Application dynos $50.96
Add-on services $165.66
Subtotal $216.62
Credits ($0.00)
Total charged $216.62

The Heroku billing email does NOT itemize by app or addon — only by these two top-level categories. The full per-app/per-addon breakdown lives only at the dashboard: https://dashboard.heroku.com/invoices/2026/05. Operator action OA-1 stands: paste the dashboard's per-app table back here so the ledger can carry per-app allocations.

Shape of the breakdown (interpretation, not authoritative)

This is consistent with the operator's Heroku app roster (raxx-api-{prod,staging}, raxx-console-{prod,staging}, raxx-velvet-{prod,staging}, raxx-queue-prod) where 3 of those provisioned Standard-0 Postgres per the Raptor migration decision 2026-05-10.


⚠ Security finding: operator home address on Heroku billing record

The invoice's Billed to: block on Heroku's side lists the operator's personal residential address (street + zip — redacted in this record per feedback_never_publish_operator_home_address; verbatim text remains on Heroku's invoice email in Gmail for audit purposes).

The same home street address the PII scanner just locked out of this repository (PR #3199 removed it from getraxx.com footer; PR #3201 dropped to "Pennsylvania, USA" only; PR #3202 landed the CI scanner). Heroku still has the home address stored on their side.

Operator action recommended: log into Heroku Dashboard → Account → Billing → Address → update to the Northwest Registered Agent address (502 W 7th St, Ste 100, Erie, PA 16502-1333) per feedback_never_publish_operator_home_address policy. Heroku displays this address on every invoice; left as-is, the home address keeps appearing on financial records.


Where it lands in the chart of accounts

Field Value
Category Internet & Hosting
Basis docs/finance/vendor-conventions.md — "Heroku
Deductible yes (ordinary and necessary business infrastructure cost)
Project allocation Raxx product
Entity MooseQuest LLC (invoice date post-formation 2026-05-21; see CPA question in main reconciliation re: pre/post-formation split for the billing period)
Schedule C line 27a (Other expenses — Internet & Hosting)

This categorization is consistent with every prior Heroku row in the ledger. No category drift. No re-derivation required.


Why the estimate was off by $31

The ~$185 session-memory estimate predated the Standard-0 Postgres provisioning on 2026-05-10 (per project_raptor_postgres_migration_decision). Standard-0 Postgres is $50/month. Because this was provisioned mid-month, the May invoice reflects: - ~21/31 days of Standard-0 Postgres at the Standard-0 daily rate (~$34 prorated for May) plus whatever the prior Basic-tier Postgres charged for the first 9 days

The $31 delta is arithmetically plausible as a mid-month Standard-0 Postgres proration. Going forward, Heroku is a ~$200+/month line item, not a ~$185/month figure.


Going-forward note — FLAG_HEROKU_BILLING_COLLECTOR

The operator is enabling FLAG_HEROKU_BILLING_COLLECTOR=1 and FLAG_BILLING_THRESHOLD_ALERTS=1 on prod. Once active, the system will:

  1. Automatically pull Heroku invoices into the ledger pipeline.
  2. Alert when the monthly Heroku total crosses the threshold (operator to set the threshold value; suggest $200 as the new baseline, alerting at $250+ as an anomaly gate).

This means the June 2026 close should be the first month where Heroku spend is captured automatically and the bookkeeper doesn't carry an estimate into month-end.

Baseline to use from June 2026 forward: update the Subscriptions tab Heroku row from ~$185/mo (estimate) to $216.62/mo (May 2026 actual). The actual baseline may shift month to month as dynos scale, but $216.62 is the first concrete data point post-Postgres-migration.


Candidate cuts (3)

These are observations only. No changes recommended without operator review. The bookkeeper does not authorize cost-cutting; this is a list of items worth Kristerpher eyeballing.

Cut candidate 1 — raxx-velvet-staging Standard-0 Postgres

If staging Velvet has not been actively used in 2+ weeks, a Standard-0 Postgres at $50/mo on the staging app is the largest single staging line item. Downgrading to a Basic Postgres ($9/mo) would save ~$41/mo ($492/yr). Before doing this: confirm that Velvet's staging DB can tolerate the Basic tier's connection count limits; Basic Postgres has a 20-connection cap that could cause test failures if Velvet staging runs any load tests.

Action needed: check heroku pg:info -a raxx-velvet-staging and confirm whether the DB is idle or actively used. If idle, downgrade. If used, keep and remove this flag.

Cut candidate 2 — raxx-console-staging Standard-1X or higher dyno

If the staging console is only used for internal smoke tests, a Standard-1X dyno ($25/mo) is a meaningful cost when Basic ($7/mo) is sufficient for a low-traffic internal surface. Saving: ~$18/mo ($216/yr). Not urgent but worth checking dyno type.

Action needed: heroku ps -a raxx-console-staging — if Standard tier, evaluate downgrade to Basic for the staging console.

Cut candidate 3 — Review add-ons for all staging apps

Papertrail (logging) and similar add-ons on staging apps often default to paid tiers when apps are created. If staging logging isn't actively monitored, stripping add-ons from staging saves incremental costs. Estimate: $5–$15/mo depending on what's attached.

Action needed: heroku addons -a <each-staging-app> — verify any paid-tier add-ons on staging aren't being used and could be replaced with free tiers.


CPA review flag

Estimate→actual delta: +$31.62

This is below any materiality threshold for a Schedule C business expense, but it is documented here for the CPA's awareness. The cause is the mid-month Standard-0 Postgres provisioning (not a billing error, not a price increase). No further CPA action needed on the delta itself. The pre/post-formation split question (LLC formed 2026-05-21; Heroku invoice covers full month from May 01 – June 01) is the more material CPA item and is listed as CPA question #1 in the main reconciliation doc.


Drive filing

This delta memo should be uploaded to Drive at:

MooseQuest > Finance > Expenses > 2026 > 2026-05

Filename:

2026-05-31_Heroku_delta_memo.pdf

Drive upload is pending a Drive-MCP-enabled session (same blocker as the invoice PDF upload).