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
- Gmail / Google Drive MCP connectors not available in this runtime. No receipts
could be pulled, and the
MooseQuest Ledger 2026Drive workbook could not be read or written. Every figure below is sourced from prior in-repo reconciliation memos (last full close: 2026-06-04), in-repo billing-collector config defaults, and one live data point available directly in this session (PostHog MCP — see imhere below). - Heroku CLI present but unauthenticated (
Invalid credentials provided) — no vault-sourcedHEROKU_API_KEYin this environment. Perfeedback_heroku_key_from_vault_not_keychain/feedback_main_loop_vault_limit, pulling that key issre-agentterritory, not bookkeeper's — not attempted here. console.anthropic.combilling dashboard not reachable. Anthropic API metered usage is UNKNOWN for a 4th consecutive reconciliation cycle (April, May, June, and now August).- AWS Cost Explorer intentionally NOT queried. AWS credentials were reachable in
this sandbox, but a parallel
sre-agentis pulling the authoritative AWS breakdown this cycle per the task brief. Duplicating that work here would risk two conflicting numbers in the same budget cycle. The CSV carries a placeholder row keyed"AWS: see sre CE breakdown"— re-key it to the sre-agent's per-project split once it lands. - No repo evidence for Avenue or Smarter as billed projects. Searched this repo's
docs tree, the
raxx-appGitHub org (single repo:TradeMasterAPI), and theMooseQuestpersonal GitHub account (27 repos, all pre-existing personal/home-lab tooling — SmartThings, Splunk, git-technique demos — none of them "Avenue" or "Smarter"). Both projects are recorded in the matrix asNO REPO EVIDENCErows, not as$0— treat their true spend as unknown, not zero, in any budget rollup.
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:
docs/finance/vendor-conventions.mdondeveloptoday still has no Postmark row.- The
backend_v2/config/billing_fixed_costs.yamlpostmark_pricing.active_tier: developer($0) assumption — used elsewhere in this repo, including by the June 2026 run-rate memo — has been stale since 2026-06-25 and nobody has corrected it. - The June 2026 month-end close never happened at all (the last full close on record is 2026-06-04, which predates this charge).
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 $)
- 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-prodare all now live perdocs/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. - 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.
- 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. - Apple Developer Program (Raxx product) — $8.25/mo amortized ($99/yr, paid 2026-04-22, renews 2027-04-22). Confirmed, low-risk.
- 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:
- Raxx product: needs a fresh Heroku invoice pull AND the Postmark charge confirmed before any budget line is set — the current $216.62 Heroku anchor is stale and the fleet has grown, and Postmark now has an unquantified gap.
- Shared / parent entity: the $36.00/mo evidenced total is low-risk and stable; could reasonably anchor a budget line as-is pending the Oracle Dyn confirmation.
- imhere, Avenue, Smarter: no budget line can be responsibly proposed from this repo's vantage point. Each needs its own vendor inventory before Phase 2 can attach a number — flagging this as the single biggest gap in Phase 1's coverage.
- AWS (cross-project): defer to the sre-agent's CE breakdown before setting any budget line; that breakdown should also resolve the Raxx/Avenue AWS attribution problem this memo could only flag, not solve.
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
- 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.
- Heroku vault credential.
sre-agentterritory — needs to be dispatched separately if a fresh Heroku invoice pull is wanted without waiting for Gmail/Drive access. - AWS Cost Explorer breakdown (parallel sre-agent). This memo's AWS row is a placeholder pending that work landing — re-key it once available.
- Anthropic API billing. Now unresolved across 4 reconciliation cycles — the longest-standing open item in the ledger's history.
- 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.
- Cloudflare
moosequest.appzone. Config gap — needs azone_identry inbackend_v2/config/billing_cloudflare_zones.yamlbefore it can ever show up in an automated collector run. - Orphaned Postmark branch (
origin/worktree-agent-add69720fe5205c30, commit4c6a2e78b). Never became a PR, never merged. Contains a fully-reasonedvendor-conventions.mdaddition 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, perfeedback_worktree_branch_contamination. - 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
- 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.
- Confirm current Sentry plan/invoice — resolves a $0–$26/mo swing that the task brief and the repo's own history disagree on.
- Confirm the Postmark charge amount from ~2026-06-25 and decide whether to
resurrect
origin/worktree-agent-add69720fe5205c30as a PR or redo the entry — this closes both a dollar gap and a documentation gap simultaneously. - Add
moosequest.apptobackend_v2/config/billing_cloudflare_zones.yamlwith itszone_idso it stops being invisible to the billing collector. - 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.
- Pull Anthropic API billing for the last 4 months (Apr–Aug) from
console.anthropic.com > Billing— longest-open item in the ledger. - 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.
- 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.