Raxx · internal docs

internal · gated

Cross-project infrastructure spend memo — 2026-08 (Phase 1)

Prepared: 2026-08-02 UTC Scope: Operator-approved Phase 1 of the infrastructure-budget plan — the FIRST cross-project spend ledger covering every vendor across every project (Raxx / TradeMasterAPI, Avenue, Smarter, imhere, moosequest.net shared properties), not just Raxx. Companion file: docs/business/bookkeeper/2026-08-cross-project-spend-matrix.csv (30 vendor rows — the row-level source for every number in this memo) Visibility only. No spending decisions, no cancellations, no tax advice. This is Phase 1 input for the operator's Phase 2 budget-line work.


Hard blockers this session

This memo is therefore a best-effort, repo-evidenced snapshot, not a full reconciliation. Every number below traces to a specific row in the companion CSV.


Finding: an entire Postmark ledger entry was drafted and never landed

While reconciling the Postmark row, git log --all surfaced commit 4c6a2e78b ("docs(books): record 2026-06-25 Postmark charge + lock vendor convention") — a prior bookkeeper session's full write-up of Postmark's first-ever paid charge (~2026-06-25, amount UNKNOWN, NO RECEIPT flag) plus a docs/finance/vendor-conventions.md addition locking Postmark in as Internet & Hosting / Raxx product.

That commit lives only on the unmerged branch origin/worktree-agent-add69720fe5205c30. It never went through a PR (gh pr list --head worktree-agent-add69720fe5205c30 returns nothing) and never reached develop. As a result:

This memo's Postmark row is corrected to UNKNOWN (not $0.00) to reflect this finding. See the companion CSV's Postmark row for the full citation. This is a process gap, not a dollar-amount gap — the fix is to either resurrect that branch as a PR or redo the entry in the next full monthly close, not to guess the amount.


Total monthly run-rate

Evidenced total (Raxx product + Shared/parent entity infra only): $252.62/mo floor — $278.62/mo ceiling

The $26/mo spread is entirely the Sentry Team-tier question (see Top-5, below). This total does not include Postmark, whose actual monthly cost is now UNKNOWN rather than confirmed-free as of 2026-06-25 (see finding above) — so this total should be read as a floor that is missing at least one more line item. This total also explicitly excludes:

Excluded from total Why
Postmark First paid charge ~2026-06-25, amount UNKNOWN — see finding above
AWS (shared account 521228113048) Parallel sre-agent breakdown pending — do not double-count
Anthropic API metered usage Unknown — console access unavailable, 4th month running
Avenue (all vendors) No repo evidence of any kind
Smarter (all vendors) No repo evidence of any kind
imhere (beyond PostHog) Only PostHog is evidenced; hosting/domain/other vendors unknown
USPTO + Schwartz IP anticipated fees (~$350/class + ~$750) One-time, not yet invoiced as of last check — not recurring run-rate

Read this total as a floor on Raxx + shared-infra spend, not as "the business's total infrastructure spend." Three of the six categories in the task's project list (Avenue, Smarter, and most of imhere) are not represented in the dollar figure at all, and Postmark is now a confirmed gap rather than a confirmed zero.


Per-project subtotals (evidenced only)

Project Monthly run-rate (evidenced) Basis
Raxx product $216.62 – $242.62 recurring + $8.25 amortized = $224.87 – $250.87/mo, PLUS Postmark UNKNOWN Heroku $216.62 (stale, likely understated — see Top-5 #1) + Sentry $0–$26 (unresolved) + Postmark UNKNOWN (see finding above) + Apple Developer $8.25 amortized + everything else $0 (free tier, confirmed)
Shared / parent entity (moosequest.net umbrella) $36.00/mo Google Workspace $22.00 + Dreamhost $5.00 + Oracle Dyn $5.00 (est.) + GitHub $4.00
imhere $0.00/mo evidenced (PostHog free tier only) Real total is unknown — no hosting/domain/other-vendor evidence in this repo
Avenue NO DATA Zero repo evidence of any kind
Smarter NO DATA Zero repo evidence of any kind
AWS (cross-project, shared) SEE SRE CE BREAKDOWN Not summed here — parallel workstream

Top-5 spend lines (evidenced, by monthly $)

  1. Heroku (Raxx product) — $216.62/mo, STALE (62 days, May 2026 invoice). The app fleet has grown materially since then (raxx-eyetok-*, raxx-freescout-prod, raxx-tickets-prod, raxx-support-*, raxx-waf-logs-prod, raxx-rack-*, raxx-analytics-*, raxx-antlers-*, raxx-learn-staging, raxx-status-prod, raxx-iac-state-prod are all now live per docs/ops/runbooks/heroku.md's app roster, none of which existed at May invoice time). The current bill is almost certainly higher than $216.62. Top operator action for this cycle.
  2. Sentry (Raxx product) — $0.00–$26.00/mo, UNRESOLVED CONFLICT. The task brief for this cycle assumes "Sentry (Team tier)" — that would be the published $26/mo Team plan rate. The last repo-confirmed status (2026-06-04) was still the free Developer tier. No upgrade or invoice evidence exists in-repo for the intervening ~8 weeks. This is the largest unresolved swing item after Heroku.
  3. Google Workspace (Shared) — $22.00/mo, HIGH confidence but STALE (102 days since last billing-dashboard read). Business Plus, 1 seat. Note: a config file (backend_v2/config/billing_fixed_costs.yaml) carries an unfilled $6.00/seat "Business Starter" placeholder that was never reconciled against the real $22/mo Business Plus rate — worth a config cleanup pass regardless of budget impact.
  4. Apple Developer Program (Raxx product) — $8.25/mo amortized ($99/yr, paid 2026-04-22, renews 2027-04-22). Confirmed, low-risk.
  5. Dreamhost / Oracle Dyn (Shared) — $5.00/mo each, tied. Dreamhost is HIGH-confidence (confirmed billing pattern); Oracle Dyn is MEDIUM (never invoice-confirmed across three prior reconciliation cycles — always estimated). GitHub's $4.00/mo Pro plan is a close #6.

Honorable mention (unranked — amount unknown, not zero): Postmark's first paid charge (~2026-06-25) could plausibly land anywhere from ~$15/mo (Basic tier) to a one-time top-up with no recurring impact — see the finding above. It is excluded from this ranked list only because its dollar amount cannot be evidenced, not because it is small.


Stale items — needs an operator receipt-pull or dashboard check

All figures below are more than 30 days old as of this memo (2026-08-02) and were never refreshed because Gmail/Drive access has been unavailable across the last three reconciliation attempts (April, May, June).

Item Last confirmed Age What's needed
Heroku total 2026-06-01 (May invoice) 62 days Pull July/August invoice PDF from dashboard.heroku.com — fleet has grown, expect a materially higher number
Sentry plan/tier 2026-06-04 59 days Confirm current plan (free vs. Team $26/mo) directly from Sentry dashboard — task brief and repo disagree
Google Workspace 2026-04-22 102 days Reconfirm $22/mo rate hasn't changed; also reconcile the stray $6/seat config placeholder
Oracle Dyn never invoice-confirmed indefinite Pull an actual Dyn billing statement — this has been an open item since April
GitHub plan 2026-06-04 59 days Confirm which account (raxx-app org vs. personal MooseQuest account) carries the paid Pro plan
Postmark charge 2026-06-25 (orphaned, unmerged draft) 38 days Confirm actual charge amount from Postmark dashboard; land (or redo) the vendor-conventions.md update — see finding above
USPTO filing status 2026-06-04 59 days Confirm whether RAXX/MOOSEQUEST filings have since been made (would trigger a $350/class charge)
Schwartz IP invoice 2026-06-04 59 days Confirm whether the ~$750 IP-assignment invoice has since arrived
CPA engagement 2026-05-27 (outreach sent) 67 days Confirm which (if any) of the 5 contacted firms was retained, and at what fee
Cloudflare moosequest.app zone never tracked N/A — config gap Zone is referenced only in a memory note (BFM toggle); it has no zone_id entry in backend_v2/config/billing_cloudflare_zones.yaml and has never appeared in a reconciliation. Add it to the collector config and confirm plan tier.
AWS Lightsail (FreeScout raxx-tickets) bundle tier never confirmed N/A Sub-line of the shared AWS account; rolled into the sre-agent's pending CE breakdown
Anthropic API usage never captured 4 reconciliation cycles Pull from console.anthropic.com > Billing — longest-standing open item in the ledger's history
imhere vendor stack (beyond PostHog) never captured N/A No repo evidence of hosting/domain/other vendors — likely lives in a separate repo/workspace
Avenue — entire vendor stack never captured N/A Zero repo evidence this project has any billed infrastructure at all
Smarter — entire vendor stack never captured N/A Zero repo evidence this project has any billed infrastructure at all

One correction to the task brief's assumptions

The task brief asked for Cloudflare plan tiers across "raxx.app, moosequest.app, getraxx.com, moosequest.net." moosequest.net is not on Cloudflare. Per backend_v2/config/billing_cloudflare_zones.yaml's own comment ("moosequest.net is registered elsewhere — not on this CF account") and the standing decision in feedback_dyndns_stays.md, moosequest.net DNS is served by Oracle Dyn and stays there — no Cloudflare zone plan applies to it. raxx.io (also on Cloudflare, also free tier) was added to the matrix for completeness since it shares the same collector config and vendor history as the other two Raxx domains.


Explicit per-project budget-line placeholders (Phase 2 input)

The CSV's Operator Budget Placeholder (monthly USD) column is intentionally blank for every row. That column exists for the operator to fill in Phase 2 — this memo does not propose budget numbers; it only reports what's evidenced. Suggested Phase 2 starting points based on what Phase 1 surfaced:


Open items for CPA

None specific to this cycle beyond what's already open in prior reconciliations (see docs/business/bookkeeper/2026-06-04-monthly-runrate-estimate.md's CPA-flags section, which remains unresolved as of this memo) plus the two CPA questions already drafted — but never landed — in the orphaned Postmark entry (cash-basis treatment of a possible top-up credit; PA sales-tax treatment on SaaS services). This Phase 1 deliverable is a visibility document, not a reconciliation of the Expenses tab — no new Deductible or Entity classifications were made.


Open items carried forward

  1. Gmail/Drive MCP access. Unresolved for three consecutive reconciliation attempts (April, May, June) and now this cross-project pass. Every "stale" item above traces back to this same root blocker.
  2. Heroku vault credential. sre-agent territory — needs to be dispatched separately if a fresh Heroku invoice pull is wanted without waiting for Gmail/Drive access.
  3. AWS Cost Explorer breakdown (parallel sre-agent). This memo's AWS row is a placeholder pending that work landing — re-key it once available.
  4. Anthropic API billing. Now unresolved across 4 reconciliation cycles — the longest-standing open item in the ledger's history.
  5. Avenue / Smarter / imhere vendor inventories. These need to come from the operator directly (or from those projects' own repos/ledgers, if they exist) — this repo's vantage point genuinely has nothing to offer beyond the one PostHog data point for imhere.
  6. Cloudflare moosequest.app zone. Config gap — needs a zone_id entry in backend_v2/config/billing_cloudflare_zones.yaml before it can ever show up in an automated collector run.
  7. Orphaned Postmark branch (origin/worktree-agent-add69720fe5205c30, commit 4c6a2e78b). Never became a PR, never merged. Contains a fully-reasoned vendor-conventions.md addition and a drafted (amount-pending) Expenses row. The next bookkeeper session should either open a PR from that branch or redo the work fresh — do not silently cherry-pick it without review, per feedback_worktree_branch_contamination.
  8. June 2026 month-end close never happened. The last full close on record is 2026-06-04. This is now a two-month-plus gap in the monthly cadence described in docs/finance/README.md.

Top actions for operator

  1. Pull the July/August Heroku invoice — this is the single highest-value pull; the current $216.62 anchor is 62 days stale and the fleet has grown since.
  2. Confirm current Sentry plan/invoice — resolves a $0–$26/mo swing that the task brief and the repo's own history disagree on.
  3. Confirm the Postmark charge amount from ~2026-06-25 and decide whether to resurrect origin/worktree-agent-add69720fe5205c30 as a PR or redo the entry — this closes both a dollar gap and a documentation gap simultaneously.
  4. Add moosequest.app to backend_v2/config/billing_cloudflare_zones.yaml with its zone_id so it stops being invisible to the billing collector.
  5. Supply vendor lists (or repo/ledger pointers) for Avenue, Smarter, and imhere's non-PostHog infra — Phase 1 cannot see past this repo's boundary, and three of the six requested projects have effectively zero coverage as a result.
  6. Pull Anthropic API billing for the last 4 months (Apr–Aug) from console.anthropic.com > Billing — longest-open item in the ledger.
  7. Confirm CPA engagement status from the 2026-05-27 outreach round (Kregel & Co, SDO, Dimov, Pilot, Wipfli) — needed before any CPA fee line can be budgeted.
  8. Schedule the overdue June 2026 month-end close — the cadence has slipped to two-plus months; the next close should also formally absorb the orphaned Postmark entry.