Building a Dominion Card List in Excel
Most people start by just opening a blank spreadsheet and typing columns until it feels right. That works for a weekend session but falls apart when you're tracking 250+ cards across multiple expansions and want to do things like filter by cost, count cards in a deck, or sort by kingdom tier. I learned that the hard way after spending three hours manually cross-referencing a CSV from dominion.cards against my own list. The first sheet should be your master card reference. Columns I use are Card Name, Set, Cost, Type (Action, Treasure, Curse, Victory, Reaction, Respawn, etc.), Keyword, Description, and a unique ID column. The ID column is the part most people skip, and it's the one that saves you when two cards share a name or you're dealing with fan-made content. For the actual data, I pull from the official Dominion JSON dumps rather than typing manually. The project at dominion.cards maintains a clean JSON structure with all core set and expansion cards. You can import that directly into Excel using Data > From JSON, which populates most of your fields automatically. After import, I usually spend about 20 minutes cleaning up the Type column because the JSON sometimes labels things inconsistently. Dominion's own taxonomy calls them "Action" and "Action-Curses" while other sources say "Hex" or "Prize." Pick one system and stick to it.
Deck Builder Sheet
The second sheet is where you actually build decks. I lay it out with a section for Kingdom cards, a section for Supply pile counts, and a section for your player deck. The key insight here is separating the two. People often conflate the kingdom pile with the cards in their deck, which leads to confusion when calculating available copy counts. In Dominion, each kingdom card has a pile of 10 (usually), and you can't get more than that total across all players. That's different from the 4-copy limit you're used to in Magic or other games. I use a simple VLOOKUP or XLOOKUP from the master sheet so that when I type a kingdom card name, it auto-fills cost, type, and description. Something like =XLOOKUP(A2,Master!A:A,Master!B:B,NA()) keeps things tidy. Then for the supply tracking, I use conditional formatting on the pile count column. Anything under 3 turns red, under 6 turns yellow. This is mundane but it's saved me from buying into an empty pile more times than I want to admit.
Calculating Card Value and Deck Balance
This is where it gets into the territory people actually care about. To evaluate a deck composition, you need column counts, average cost, and some rough scoring. The formula I settled on after a lot of iteration is straightforward: assign points to cards based on type and cost, then sum by category. I give Actions 1 point each, Treasures 2 points, Curses negative 2, Victory cards 1, and Reaction/Reserve cards 1.5. Then I weight by cost so a $5 Action scores higher than a $2 Action. The actual formula in my supply sheet looks something like this for the value column: =CostWeight(Type,Cost). It's not elegant but it produces numbers that match my gut assessment about 80% of the time, which is better than I expected from something this simple. The real problem shows up with dynamic cards like Market Square or Warehouse. These cards change what you can do each turn, and their "value" isn't fixed. I've started flagging cards with keywords like "Draw", "Trash", "Gain", or "Transfer" and adding a separate column for their strategic flexibility score from 1 to 5. It's subjective, but it's better than pretending every card has a single static value.
Get the Full Details

Common Pitfalls
Here's what nobody warns you about when building a Dominion Card List Excel. The first issue is that Dominion has had 15+ base sets and dozens of expansions over 15 years. Cards have similar names across editions. "Harem" exists in at least two different versions. "Merchant Ship" appears in Intrigue and Guilds with completely different effects. My master sheet has a disambiguation column for this, and I cross-reference every card with the official Ascending Empire card database before adding anything new. The second issue is expansion pack updates. Upper Decks introduced the concept of upgrading cards, and Promotions added another layer. If your Excel list doesn't account for upgrade paths, your deck builder will mislead you. I solved this by adding an "Upgrade Target" column for every card that can be upgraded. When a card appears in the kingdom, you know immediately which other card it can become. The third issue is the Curse card. Every Dominion game starts with everyone having 2 Curses in their deck, plus any Curse cards the kingdom might include. Beginners frequently forget the starting Curses when calculating deck size and endgame points. I added a default row at the top of my deck builder that auto-fills 2 Curses per player and 10 Curses in the supply pile, which catches that mistake before it happens.
Download and File Structure
The complete file I use has five sheets: Master Cards, Deck Builder, Supply Tracker, Scoring Reference, and Upgrade Map. The Master Cards sheet contains 380+ entries covering all published Dominion content through Adventures. The Deck Builder is pre-wired with XLOOKUP formulas and conditional formatting. Supply Tracker shows pile counts with color coding. Scoring Reference has the point values by category. Upgrade Map lists every upgrade path in the game. You can find the JSON source data at dominion.cards/downloads. The file itself is shared on the Dominion Strategy subreddit occasionally and on the official forum. Look for threads from users who've posted updated versions after each new expansion release, since the card count grows every few months. A version from last year will already be missing cards from the most recent set.
When Excel Isn't the Right Tool
Let me be clear about the limitations. If you're trying to simulate thousands of game outcomes or do serious probabilistic analysis of draw sequences, Excel will choke. The card draw math in Dominion involves hypergeometric distributions and the calculation gets complicated fast, especially with cards that let you look at the top N cards of your deck. For that, you need a proper simulation tool or at minimum a spreadsheet with array formulas that Excel wasn't designed to handle efficiently. Similarly, if you want to track your personal game history, win rates by kingdom, or card pick frequencies, you'll hit a wall pretty quickly. The spreadsheet approach works for deck construction and card reference. It does not work as a comprehensive statistics database. For that, I use a SQLite backend with a simple Python frontend, and it handles tens of thousands of game records without breaking a sweat. The Excel file is what I open when I want to plan a deck in five minutes before a game night. One more thing. The Dominion card list as of the current expansion cycle runs roughly 400 to 430 unique cards depending on how you count. That's a lot to manage manually. I recommend spending the first evening setting up the template properly rather than editing it on the fly between games. The time investment pays for itself the second time you need to look something up or rebuild a deck after a rules change.
