Skip to content

Capacity register

Rule: plan work against the scarcest resource first; never use a scarce model for general work.

1. Google GenAI (Gemini API), project MoneyMarche, free tier

Limits are per project. RPM = requests per minute, TPM = input tokens per minute, RPD = requests per day. "Peak" is the highest use in the last 28 days.

Model RPM TPM RPD Peak (28 days) MMDEP use
Gemini 3.5 Flash-Lite 15 250K 500 10 RPM, 420K TPM (over), 76 RPD Controller default and general jobs
Gemini 3.1 Flash-Lite 15 250K 500 unused Second Flash-Lite pool (overflow)
Gemma 4 26B / 31B 30 16K 14,400 each unused High-volume small jobs (short prompts only)
Gemini 3.8 Flash 5 250K 20 5 RPM, 21 RPD (limit hit) Not for general work: hard reasoning only
Gemini 3.7 / 3.6 / 3 Flash, 2.5 Flash 5 250K 20 each 3.6: 3 RPD Escalation only, a few calls a day
Gemini 2.5 Flash-Lite 10 250K 20 unused Not useful (low RPD)
Gemini Embedding 1 / 2 100 30K 1,000 unused Search over docs, if needed
Pro models (2.5 Pro, 3.1 Pro) 0 0 0 — Not available on the free tier

Note: some public sources quote higher free limits (for example 1,500 a day for 2.5 Flash / 3 Flash and 1,000 a day for 2.5 / 3.1 Flash-Lite). The AI Studio page for project MoneyMarche, with "All models" switched on, shows the lower figures above; the project's own page is what Google enforces, so MMDEP plans against it and re-reads it monthly.

Findings: Flash models give only 20 requests a day each, so an hourly Flash controller (24+ calls) would exceed the limit. The 3.8 Flash limit and the 3.5 Flash-Lite token limit were both hit in the last 28 days (probably the PE Gemini pilot). Billing (paid tier) raises all limits; prices in DR-004.

How MMDEP tracks GenAI capacity (Atul, 14 Oct): limits cannot be read from code, and Google may vary them by project, account age, region and traffic. So mmdep control (DR-006 phase 3): 1. records every call in the hub ledger: model, input/output tokens (from the response's usage metadata), time, outcome; 2. on a refusal (HTTP 429), records the quota named in the error, falls back along a model chain (3.1 Flash-Lite → 2.5 Flash-Lite → 3.5 Flash-Lite → Gemma) and retries later; 3. writes a daily usage line per model to the capacity register, so real limits are learned from use; 4. reads each model's context limits once (models.get: input and output token limits).

Keys (Atul, 14 Oct): use the existing MoneyMarche free-tier key for now. Further projects and keys are created by Atul one at a time, when needed; he tells Claude the project name, and stores the key by running a setup script on the laptop (hidden prompt, saved outside any repository). Claude never sees a key.

Budget rule for mmdep control: at most 300 Flash-Lite calls a day (60% of one pool), prompts under 50K tokens; at most 10 Flash calls a day for escalations; Gemma for anything short and repetitive.

2. Claude

Resource Capacity State (14 Oct) Rule
Claude subscription, weekly quota Weekly allowance 65% used Study slices stop above 80%; no Claude CLI; PM work kept small
Claude online via GitHub issues Shares the same allowance Not started Only for development tasks the controller files

3. ChatGPT

Resource Use State
Account A API/MM-Cron, MWMC, MCRM projects (3 hourly schedulers, 07–23 IST), ex-PM Limits not measured
Account C WPDev Limits not measured

4. Compute and CI

Resource Capacity Note
Laptop GitLab runner 1 job at a time Only when the laptop is on and Docker is running
GitLab shared minutes 400 a month per top-level group (free tier, DR-011) Live use per group: latest.md → "GitLab compute minutes" on branch control, read daily by the collector (backlog B5). Shows "not visible" where the collector's token can't read a group's usage (that needs the group's Owner role). Routine jobs stay on the laptop runner
GitHub Actions (private repos) About 2,000 minutes a month on the free plan PE ran about 100 CI runs in a month; usage to be read from GitHub billing
Laptop availability Daytime, not guaranteed Collector misses runs when the laptop sleeps

5. People

Person Capacity
Atul A few short sessions a day; phone between
Ajay Through the Google Doc; days, not hours