Money & Business Jul 11, 2026

January Marketing Spend Cap Worksheet When Contractors Return Mid-Fest Prep - 2026

2026 January marketing spend cap worksheet when contractors return mid-fest prep—weekly cash caps, contractor ramp table, january_marketing_cap_receipt_v1.json, stop rules, BUILD_RECEIPT marketing_spend_planned before February Next Fest RC.

By GamineAI Team

January Marketing Spend Cap Worksheet When Contractors Return Mid-Fest Prep - 2026

Pixel-art hero for January marketing spend cap worksheet contractors return mid fest prep 2026

January 6: your art contractor invoices the winter capsule refresh. January 7: your social contractor wants $800 for a February fest creator push. January 8: you still have not filed January re-entry smoke, but Meta Ads Manager is open because "we need wishlists before signup week ends."

January 2027 is the inverse of December's contractor blackout: paid help returns while marketing cash competes with February RC engineering (branch label receipt, 7-day RC challenge) and the evidence stack you froze in December defer scope.

December engineering floor capped founder engineering hours when contractors went offline. October fest spend cap capped total fest marketing pool months ahead. October fest time-box split founder hours across engineering vs marketing during fest week. This Money & Business worksheet caps weekly marketing cash for Jan 6 through February promote week when contractors return mid-prep—not engineering floor hours, not annual runway math alone.

Non-repetition note: October spend cap owns runway-month pool + category caps for the whole fest arc. December engineering floor owns engineering_floor_hours per day during blackout. Contractor vs hire owns role dollars. This URL owns weekly_marketing_cap_usd + january_marketing_cap_receipt_v1.json + BUILD_RECEIPT marketing_spend_planned when contractors return and ads restart.

Pair BUILD_RECEIPT beginner pipeline, February signup trend playbook, contractor vs hire fest week, and jq January reentry capstone pointer.

Why this matters now (January 2027 / contractor return)

  1. Contractor invoices stack — Art, motion, and social contractors return Jan 3–Jan 10 with backlogged deliverables that feel like marketing but hit cash the same week as Steam ads.
  2. February signup clockFebruary fest signup playbook sets evidence dates; this worksheet sets spend dates—paid bursts before signup proof is theater.
  3. Smoke stop rulesFest marketing cap discipline says pause ads on smoke RED; January needs weekly caps wired to RC challenge gates, not a single October number.
  4. Engineering vs marketing cash confusion — Founders who capped December engineering hours still overspend January marketing cash because hours and dollars live in different worksheets.
  5. BUILD_RECEIPT row gap — Partners see founder_hours_planned from December but not marketing_spend_planned for January—cash surprises in diligence zips.

Direct answer: Fill january-marketing-cap-2027.md with weekly marketing caps Jan 6–Feb promote, contractor_return_ramp rows, category splits, stop rules tied to smoke/RC receipts, file january_marketing_cap_receipt_v1.json, set BUILD_RECEIPT marketing_spend_planned before any paid burst.

Who this worksheet is for

Audience Outcome
Solo founder Printable weekly cash caps you can refuse in Slack
Producer Receipt proving ads paused when smoke RED
Working dev marketing_spend_planned row aligned to invoice schedule

Time: ~60 minutes first worksheet; 10 minutes each Sunday update actual_spend_usd.
Prerequisites: Bank balance post-holiday, contractor return dates, October fest spend cap annual pool (or honest January remainder), January re-entry smoke scheduled.

Format ladder (January cluster)

Artifact Role
This worksheet Weekly marketing cash caps when contractors return
December engineering floor Daily engineering hours during blackout
October fest spend cap Annual fest marketing pool + runway
October fest time-box Founder hour lanes during fest week
Contractor vs hire Who you pay per role
February signup playbook Participate evidence before spend

Order: January re-entry smoke GREEN → jq January pointer GREEN → this worksheet → February RC label evening → 7-day RC challenge.

Beginner path — weekly marketing cap table

Copy into release-evidence/ops/january-marketing-cap-2027.md:

Week starting Contractors back Weekly marketing cap (USD) Paid social cap Contractor marketing cap Trailer/motion cap Stop rule active
Jan 6 art Jan 6, social Jan 8 $400 $0 $250 $150 No ads until smoke GREEN
Jan 13 audio Jan 10 $600 $150 $300 $150 Pause if smoke YELLOW
Jan 20 all lanes $900 $300 $400 $200 Pause if RC label receipt missing
Jan 27 $1,200 $500 $400 $300 Pause if jq pointer RED
Feb 3 (RC week) $800 $400 $200 $200 7-day challenge daily gate
Feb 10 (promote week) $1,500 $800 $400 $300 Full stop rules from October cap

Beginner rule: paid_social + contractor_marketing + trailer ≤ weekly_marketing_cap. If a contractor invoice exceeds the contractor marketing column, defer the invoice week or lower paid social—do not borrow from February without updating the receipt.

Success check: Each week has one primary marketing outcome (e.g., "capsule refresh live") and one engineering outcome (e.g., "RC label receipt filed")—not twelve parallel launches.

Category definitions (what counts toward weekly cap)

Counts Does not count (track elsewhere)
Meta / TikTok / Reddit ads Founder salary
Social contractor invoices (fest prep) Engineering contractor bugfix
Trailer/motion deposits Steam revenue share
Influencer paid posts Tool subscriptions (Figma, Adobe)
PR list sends with cash fee BUILD_RECEIPT evidence labor you value at $0 cash

Quasi-paid: Founder Discord hours belong in October time-box—this worksheet tracks cash out the door only.

Developer path — gates K1–K6

Gate Check Fail action
K1 weekly_caps[] covers Jan 6 through Feb promote week Block receipt until table complete
K2 Each contractor_return_date ≤ first spend row using that lane Defer spend or update return date honestly
K3 marketing_spend_planned on BUILD_RECEIPT equals sum(weekly_caps) Fix BUILD_RECEIPT row before partner zip
K4 stop_rules[] reference smoke + RC receipt paths Wire pause triggers in ads manager notes
K5 category_totalsjanuary_marketing_pool_usd Lower caps or document written exception
K6 january_marketing_cap_ok: true No promote-week paid burst until GREEN

january_marketing_cap_receipt_v1.json (template)

{
  "schema": "january_marketing_cap_receipt_v1",
  "generated_at": "2027-01-06T18:00:00Z",
  "january_marketing_pool_usd": 4400,
  "weekly_caps": [
    {
      "week_start": "2027-01-06",
      "cap_usd": 400,
      "paid_social_usd": 0,
      "contractor_marketing_usd": 250,
      "trailer_motion_usd": 150,
      "actual_spend_usd": null,
      "stop_rule": "no_ads_until_smoke_green"
    },
    {
      "week_start": "2027-01-13",
      "cap_usd": 600,
      "paid_social_usd": 150,
      "contractor_marketing_usd": 300,
      "trailer_motion_usd": 150,
      "actual_spend_usd": null,
      "stop_rule": "pause_on_smoke_yellow"
    }
  ],
  "contractor_return_ramp": [
    { "lane": "art_capsule", "return_date": "2027-01-06", "first_invoice_allowed": "2027-01-06" },
    { "lane": "social_comms", "return_date": "2027-01-08", "first_invoice_allowed": "2027-01-08" },
    { "lane": "audio_trailer", "return_date": "2027-01-10", "first_invoice_allowed": "2027-01-13" }
  ],
  "stop_rules": [
    {
      "id": "SR1",
      "trigger": "january_reentry_smoke_ok != true",
      "action": "paid_social_usd = 0"
    },
    {
      "id": "SR2",
      "trigger": "february_rc_label_ok != true",
      "action": "pause_paid_social"
    },
    {
      "id": "SR3",
      "trigger": "february_rc_challenge_day_red",
      "action": "pause_all_marketing_except_owned_channels"
    }
  ],
  "pointers": {
    "january_reentry_smoke": "release-evidence/smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json",
    "january_reentry_capstone": "release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json",
    "february_rc_label": "release-evidence/steam/branch/FEBRUARY_RC_BRANCH_LABEL_RECEIPT.json",
    "october_fest_spend_cap": "release-evidence/ops/FEST_SPEND_CAP_2026.json"
  },
  "gates": {
    "K1": "pass",
    "K2": "pass",
    "K3": "pass",
    "K4": "pass",
    "K5": "pass",
    "K6": "pass"
  },
  "january_marketing_cap_ok": true
}

Store canonical copy at release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json.

BUILD_RECEIPT row (marketing_spend_planned)

{
  "marketing_spend_planned": 4400,
  "marketing_spend_actual": null,
  "marketing_spend_currency": "USD",
  "january_marketing_cap_receipt": "release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json",
  "january_marketing_cap_ok": true
}

Working dev rule: marketing_spend_planned is the sum of weekly caps in the receipt—not your October annual pool headline. January is a sub-ledger of the fest cap.

verify_january_marketing_cap.sh

#!/usr/bin/env bash
set -euo pipefail
RCPT="${1:-release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json}"

jq -e '.schema == "january_marketing_cap_receipt_v1"' "$RCPT" || exit 1

POOL=$(jq -r '.january_marketing_pool_usd' "$RCPT")
SUM=$(jq '[.weekly_caps[].cap_usd] | add' "$RCPT")
[[ "$SUM" -le "$POOL" ]] || { echo "K5 fail: weekly sum $SUM > pool $POOL"; exit 5; }

jq -e '.january_marketing_cap_ok == true' "$RCPT" || exit 6

SMOKE=$(jq -r '.pointers.january_reentry_smoke' "$RCPT")
if [[ -f "$SMOKE" ]]; then
  jq -e '.january_reentry_smoke_ok == true' "$SMOKE" || {
    PAID=$(jq '[.weekly_caps[0].paid_social_usd] | add' "$RCPT")
    [[ "$PAID" -eq 0 ]] || { echo "SR1 fail: smoke not green but paid social > 0"; exit 4; }
  }
fi

echo "january_marketing_cap verify: OK"

Exit codes: 1 schema, 4 stop rule SR1, 5 K5 pool, 6 K6 latch.

Contractor return ramp (mid-fest prep)

When contractors return, marketing spend often front-loads before engineering is ready. Map return dates to first_invoice_allowed:

Lane Typical return Spend allowed when Block if
Art / capsule Jan 3–6 Capsule assets merged + February safe-zone pass Z-gates planned Smoke RED
Social / comms Jan 6–10 Signup evidence filed per G1–G6 Participate date unknown
Trailer / motion Jan 8–15 RC branch label declared RC label receipt missing
PR / outreach Jan 10+ Demo scope hash stable Defer SHIP exception open

Cross-link contractor vs hire: if you hired social part-time in January, move dollars from contractor_marketing to payroll row in your burn sheet—do not double-count in weekly cap.

January pool math (derive from October cap remainder)

october_marketing_pool_usd =   # from fest-spend-cap-2026.md
spent_oct_through_dec_usd =    # invoices + ads actuals
january_marketing_pool_usd = min(
  october_marketing_pool_usd - spent_oct_through_dec_usd,
  cash_on_hand_usd * 0.08,
  5000
)
Runway after holiday Default January pool cap
< 4 months $0 paid social; contractor caps only if invoice already signed
4–6 months 8% cash on hand, max $3,500
6+ months 10% cash on hand, max $5,000

Subtract February engineering evidence reservations (QA contractor, Steam fees) before marketing pool—cousin to October cap Step 2 evidence reservation.

Stop rules (wire to receipts, not vibes)

Stop rule ID Trigger receipt / field Marketing action
SR1 january_reentry_smoke_ok != true paid_social_usd = 0 all weeks until GREEN
SR2 january_reentry_capstone_ok != true Pause influencer + PR sends
SR3 february_rc_label_ok != true No boost posts pointing at store URL
SR4 RC challenge day gate RED Pause paid social for 48h
SR5 Refund blocker row open Per October fest cap stop rule

Post stop-rule fires to #marketing-ops with receipt path—reduces "we didn't know smoke failed" threads during RC week.

jq gate sketch (CI optional)

jq -e '
  .january_marketing_cap_ok == true
  and (.weekly_caps | length) >= 4
  and ([.weekly_caps[].cap_usd] | add) <= .january_marketing_pool_usd
' release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json

Pair jq January pointer—marketing cap verify runs after pointer GREEN in CI graph.

Proof table (fill before first paid social)

Row Evidence Owner GREEN when
P1 JANUARY_REENTRY_SMOKE_RECEIPT.json Engineering january_reentry_smoke_ok: true
P2 JANUARY_REENTRY_CAPSTONE.json Engineering january_reentry_capstone_ok: true
P3 JANUARY_MARKETING_CAP_RECEIPT.json Producer K1–K6 pass
P4 FEBRUARY_FEST_SIGNUP_RECEIPT.json Producer G1–G6 pass
P5 Ads manager screenshot (spend = 0 pre-smoke) Marketing Matches SR1
P6 BUILD_RECEIPT marketing_spend_planned Engineering Matches receipt sum

Scenarios A–G

A — Solo founder, $0 paid social January
Weekly caps cover contractor capsule only ($150–$250/wk). SR1 stays active until smoke GREEN. Engineering owns receipt filing Sunday nights.

B — Two-person team, contractor social returns Jan 8
K2 blocks Jan 6 invoice for social lane. Shift $250 from week 1 to week 2 contractor_marketing_usd in receipt—update marketing_spend_planned same day.

C — October pool exhausted in December trailer
january_marketing_pool_usd = 0 paid social; organic + owned channels only. Document in receipt notes—partners prefer honest zero to borrowed ads.

D — Smoke GREEN Jan 7, RC label missing Jan 20
SR3 fires: pause paid social week Jan 20 even though cap allows $300. Founder hours go to RC label evening.

E — jq pointer RED after holiday hotfix
SR2 fires: influencer deposits refunded or deferred. Weekly cap table unchanged—actual spend must respect stop rules even when caps allow more.

F — Publisher asks for marketing plan in diligence zip
Export january-marketing-cap-2027.md + receipt JSON + BUILD_RECEIPT row. Cross-link Q3 diligence packet structure.

G — Contractor returns early (Dec 28)
Do not raise January caps for "early" work—that belongs in December engineering floor or SHIP exception defer rows, not marketing cash.

Sunday retrospective (10 minutes)

Each Sunday update actual_spend_usd per week row:

  1. Export ad platform spend CSV → sum paid_social_actual.
  2. Match contractor invoices to contractor_marketing column.
  3. If actual > cap, document overage_reason in receipt notes and lower next week—do not silently borrow from February promote week.
  4. Re-run verify_january_marketing_cap.sh.
  5. Touch Thursday row review column marketing_spend_planned vs actual.

Comparison pack (January vs October vs December)

Worksheet Unit Window Contractor story
October fest spend cap USD pool May–October arc Quote season
December engineering floor Hours/day Dec 13–Jan 2 Contractors offline
January marketing cap USD/week Jan 6–Feb promote Contractors return
October fest time-box Hours/day Fest week Founder lanes

Integration with February RC week

During 7-day RC challenge:

Challenge day Marketing cap guidance
C1–C2 paid_social_usd = 0 unless smoke + pointer GREEN
C3–C5 50% of that week's paid social cap
C6–C7 Full cap only if all challenge gates GREEN

Pair February capsule safe-zone—do not run $800 ad burst on outdated capsule art; cap is not permission to amplify stale store truth.

Printable sign-off block (producer)

## January marketing cap sign-off — 2027-01-06

- [ ] Weekly cap table K1 complete
- [ ] Contractor return dates K2 verified
- [ ] BUILD_RECEIPT marketing_spend_planned K3 filed
- [ ] Stop rules SR1–SR5 written in ads manager notes
- [ ] january_marketing_cap_receipt_v1.json committed
- [ ] verify_january_marketing_cap.sh exit 0

Signed: __________  Date: __________

Common mistakes

"December defer said FREEZE so marketing is zero."
FREEZE is scope, not cash. Contractors returning in January still invoice—this worksheet caps those dollars.

"October fest cap already decided marketing."
October pool is annual; January is weekly execution against remainder—different grain.

"Smoke passed—we can max ads."
Smoke proves baseline; RC label, signup evidence, and challenge gates still gate SR2–SR4.

"Contractor quote is under cap so we skip receipt."
K3 requires BUILD_RECEIPT row—quotes without receipt are invisible to partners.

"Founder Discord is free marketing."
Hours belong in time-box; cash belongs here—do not hide contractor invoices as "founder time."

"One big February ad buy simplifies the sheet."
Weekly caps exist to catch early January overspend before promote week—lump sums hide SR1 violations.

Outbound references

Related GamineAI reads

Key takeaways

  1. January marketing needs weekly cash caps—not December engineering hours, not October annual pool alone.
  2. january_marketing_cap_receipt_v1.json records caps, contractor ramp, and stop rules K1–K6.
  3. BUILD_RECEIPT marketing_spend_planned must equal the sum of weekly caps before paid bursts.
  4. SR1 blocks paid social until January re-entry smoke is GREEN.
  5. Contractor return dates gate first_invoice_allowed—K2 prevents pre-return spend.
  6. Pair October fest spend cap for annual pool; this worksheet is January sub-ledger.
  7. December engineering floor is the blackout hour mirror; this is the return cash mirror.
  8. February signup playbook sets evidence dates; this sets spend dates.
  9. RC challenge days tighten paid social—do not treat weekly cap as daily permission.
  10. verify_january_marketing_cap.sh gives partners one exit code for marketing discipline.
  11. Forward #10 opinion on numbered SHIP exceptions—marketing unfreeze pairs engineering unfreeze policy.
  12. Sunday actual_spend_usd updates keep Thursday row review honest.

FAQ

Is this the same as the October fest marketing spend cap?
No—October cap sets annual pool and runway; this URL sets weekly January–February execution when contractors return.

How is this different from December engineering floor?
December caps engineering hours when contractors go offline; January caps marketing cash when they return.

Do I need jq for a money worksheet?
Optional—verify_january_marketing_cap.sh uses jq for K5/K6; spreadsheet-only studios can manual-check sums.

Can I spend before February signup?
Only on contractor deliverables in the cap table—not paid social aimed at store URL until signup G-gates pass.

What if my October pool is already $0?
File receipt with january_marketing_pool_usd: 0 and organic-only stop_rules—honest zero beats borrowed ads.

Does contractor vs hire replace this worksheet?
No—contractor vs hire picks role economics; this caps weekly cash after you decide who to pay.

Where does Monday capstone reconciliation fit?
Backlog #11 row review expects marketing_spend_planned filed here first—pair jq pointer #8 and this receipt before first February upload.