Skip to main content

Radical transparency

What it costs us to make

Posters are free for everyone, forever. Songs are the thank-you for keeping it that way.

A shop has to hide its costs. A nonprofit does not. Every figure on this page is read out of the code that actually spends the money, and every one says where it came from. Where we do not have a number yet, this page says so rather than invent one.

Where the money comes from, and where it goes

This is the organization's own money, which is a different question from what one poster costs to make. When a funder, a state registry or a reviewer asks for our financials, this is what they mean. The identifiers and dates below are exact. Every dollar figure in these tables is one the President, the organization's principal officer, confirmed on September 2 and 3, 2026; none of them comes from an audited or independently reviewed financial statement, because there is none yet. Anything that has not been confirmed is marked as not yet published rather than estimated or written as zero.

The organization

From the IRS determination letter (Letter 947) and the California Articles of Incorporation. Anyone can check the federal half against the IRS Tax Exempt Organization Search using the EIN below.
Legal nameKEEP CALM INC
Employer Identification Number (EIN)33-2117386
Federal tax status501(c)(3) public charity, classified under section 170(b)(1)(A)(vi)
Exemption effectiveNovember 25, 2024 (determination letter dated December 4, 2024)
State of incorporationCalifornia nonprofit public benefit corporation, entity number 6473311, incorporated November 25, 2024
Fiscal yearThe calendar year. It ends December 31.
Accounting basis (cash or accrual)Not yet published
This page last reviewedSeptember 5, 2026

Revenue by source

Fiscal year January 1 to December 31, 2025, the most recent completed year.
SourceAmount
Contributions and gifts from individuals$0
Grants and foundation support$0
Shop and merchandise, net of the printer$0
Memberships and recurring support$0
Everything else$0
Total revenue$0

The zeros above are figures the President confirmed for the year, not blanks. Not in this table, and not yet published: the value of any donated services or costs the founders paid personally (in-kind support), which the Treasurer has not yet confirmed or ruled out for 2025. The filing is a separate matter. KEEP CALM INC filed the Form 990-N for fiscal 2025 and the IRS accepted it. An organization may file a 990-N when its gross receipts are normally $50,000 or less, so the filing is consistent with these figures, but it does not certify a year's exact revenue, and it carries no schedules and no breakdown, which is exactly why the table above exists and why it is not filled from it.

What we spent it on

The same fiscal year, split the three ways a Form 990 and every grantmaker ask for.
CategoryAmountShare
Program services: the free library, the translations, the crisis pages, the songs, posters and games$0n/a
Management and general$0n/a
Fundraising$0n/a
Total expenses$0n/a

Shares read n/a because total expenses for the year were $0: a percentage of nothing is not a number, and printing 100% would have implied spending that did not happen.

Cash, liabilities and staff

As of December 31, 2025, the close of the most recent completed fiscal year.
Cash and cash equivalents$0
Material liabilities, including loans and amounts owed to vendors$0
People on payroll0

Both balances were confirmed by the President on September 3, 2026. The Treasurer's reconciliation of them to bank records is not yet published.

Filings, and what to expect next

  • KEEP CALM INC files the Form 990-N, the electronic notice the IRS lets a small exempt organization submit in place of a full return when its gross receipts are normally $50,000 or less. The IRS applies that test over more than one year and with higher limits in an organization's first three years, so an accepted 990-N is not a certificate of one year's exact revenue. The 2025 notice was filed and accepted. A 990-N is a notice, not a return with schedules: there is no financial statement inside it to link to, which is the honest reason there is no Form 990 PDF on this page yet. Verify the organization and its filing history at the IRS Tax Exempt Organization Search using EIN 33-2117386, and read the IRS description of the 990-N.
  • The next return is due May 15, 2027, covering the fiscal year that ends December 31, 2026. If the organization stops qualifying for the 990-N under that test, it files a Form 990-EZ or Form 990 instead, and that return, which does carry the full financial schedules, will be linked here.
  • The first annual report covers fiscal 2026 and is published with the return for that year, which is due May 15, 2027.

Who watches the money, and who to ask

KEEP CALM INC is governed by a board of directors, as a California nonprofit public benefit corporation must be. The board approves the annual budget, reviews spending against it, and approves the annual filing before it goes to the IRS. The President is the principal officer and signs the filings. Hawa Naataa is the Treasurer. The other directors are Rudy Gallegos and Alfred Carnes, who have each agreed to serve and whose job is to hold the Treasurer and the President accountable for the figures on this page.

Any question about the figures on this page goes to Contact@KeepCalm.org and gets a real answer. If you are a funder who needs something in a particular format, ask: it is faster than guessing what you need.

What one thing costs to make

Everything from here down is unit economics: what a single song, poster, video or shirt costs this organization. It sits underneath the figures above because it answers a different question, and it stays because almost nobody publishes it.

Why songs are counted and posters are not

Start with the honest part: both of them cost us real money. Anyone who tells you a poster is free to make is rounding in their own favor.

The difference is what the money buys. A song is sung by an outside vendor, one render per song, billed to us the moment it is made and whether or not anybody ever plays it. A poster's cost is mostly translation: we pay once to put its words into every language we publish, and then that one poster serves every reader on the wall, in all of those languages, for as long as the site exists.

So a song costs about two and a half times what a poster costs, and that cost is spent again for every single song. A poster's cost is mostly a one-time translation that then serves every reader of that phrase, in every language, forever. The poster is the help, and the help does not get a price tag. That is the whole argument, and the numbers below are the proof.

What a free account gets is decided and enforced in code, not left open: 1 song, 1 game and 1 Intention each calendar month, and unlimited posters. The month is counted in UTC, and an unused allowance does not carry over. Those numbers are read from lib/entitlements.js, the file that enforces them.

What one creation costs

One custom song

$0.477

  • $0.450 of audio: one full three-minute render, which is 2,700 vendor credits, billed at $0.15 a minute.
  • $0.027 of words: the one model call that writes the lyrics.

Measured Prices in lib/spend-guard.js. One member action makes one song, not three: lib/create-gen.js line 229.

One poster

$0.187

  • $0.153 to translate its words into the other 35 languages, which is 82% of the whole cost.
  • $0.034 for everything else it takes to make one.

Measured Price in lib/spend-guard.js, the 82% share in lib/translate.js.

One custom video

$0.85

  • The worst case for one made-to-order video. The looping backgrounds you see all over the site are not this: they are real footage we collect from free libraries, and they cost nothing each.

Measured Price in lib/spend-guard.js.

One member-made game

$0.221

  • $0.177 to translate its words into the other 35 languages, which is 80% of it.
  • $0.039 to write it, across 1.4 attempts on average, with the house rules and two worked examples cached so we are not billed for them every time.
  • $0.005 for the safety check on the words the member typed, the same one every poster phrase pays.

Measured Every input in scripts/game-creation-economics.mjs, read out of this repository rather than estimated.

One Intention

$0.75

  • $0.75 of narration: five minutes of speech is about 4,500 characters, and we are billed one credit a character at the same rate a song pays.
  • The music underneath and the moving picture cost nothing. Every bed is Creative Commons, written by a musician we name on our credits page, and the footage is real film from free libraries.

Measured The narration credit count in lib/spend-guard.js, at the credit price the song figure above is built from.

One detail worth knowing, because it is the reason the poster bill never falls: every tip we write is unique on purpose, so no translation we buy can ever be reused for another poster. We pay for all 35 translated languages, on every single poster, every time.

What a shirt costs

Nothing in the shop is priced by feel. One function does all of it: take what the printer actually charges us for that exact item and size, double it, then round up to the next price ending in .99. That is the entire pricing policy, and it is four lines long in lib/merch.js.

Base costs read from our live Printify shop on 6 September 2026. Run the pricing function against the poster's base cost and it returns exactly the price in the third column. The tee's base cost has risen since its price was set and we did not raise the price, so on a tee we now keep a little less than the rule would give us.
Item Printer charges us You pay Card fee KEEP CALM keeps
Tri-Blend Tee, S to XL $24.56 $48.99 $1.72 $22.71 46%
Tri-Blend Tee, 2XL and up $27.67 $54.99 $1.89 $25.43 46%
Satin poster, 8 by 12 inches $6.90 $13.99 $0.71 $6.38 46%

One assumption The card fee is the only number on this page we do not read from a vendor. It is the published US online card rate, 2.9% plus 30 cents, and lib/bundle.js labels it an assumption rather than burying it inside a formula. If your card costs us more than that, the last column is smaller than it says.

Read the last column carefully, because it is not profit. "KEEP CALM keeps" is what is left after the printer and the card, and before shipping, hosting, storage, and every hour of human work. No figure on this page claims to cover a salary.

The discount we do not give

The Calm Set is a tee, its matching print, and a wallpaper pack. You can buy one, and it is charged as the sum of its parts. Our checkout carries no discount code and the shop has no automatic discount, so a set in the cart costs exactly what the same pieces cost bought one at a time. We are not going to print a saving next to a button that would charge the full price.

The code is blunt about it. lib/bundle.js can price a set at 15% off, and right beside that arithmetic it sets CHECKOUT_APPLIES_DISCOUNT to false, as a constant rather than a setting, so the day a real discount exists somebody has to edit that file and say so. Two things have to be true first: a discount created in the store, and a checkout taught to pass it.

The wallpaper pack in that set is listed at zero dollars, because it costs zero dollars: it is rendered, not printed. Giving it an invented sticker price to make the savings look bigger is the oldest trick in the bundle trade, and we are not running it on a nonprofit's checkout.

Measured CHECKOUT_APPLIES_DISCOUNT in lib/bundle.js is where this is written down, and the page that builds the set prints no price of its own: the subtotal a shopper sees there is the one Shopify returns.

What we do not know, and will not guess

  • Shipping. The printer sets it per destination, and it is in none of the figures above.
  • Hosting, storage, bandwidth, the crisis pages, and human time. None of it is in any number on this page. A tier that implied one shirt runs the organization would be a lie you could check.
  • What these things will cost next year. Printers change their base costs and vendors change their rates. Each number here carries the date we read it, so you can tell when we are overdue for another look.

If a figure here is wrong, it is wrong in public, and you can hold us to it: Contact@KeepCalm.org. The promise these numbers pay for is written out in the Free Help Guarantee, and if you want to keep it funded you can give the gift of calm.