All posts
MermaidTablesRequirements

Feature matrices & requirement comparison with Mermaid tables

5 min readThe MermaidCreator team

Requirements and feature comparisons live in spreadsheets. Competitive matrices end up in slides nobody links to. But the best documentation is the kind that lives next to your code — version-controlled, diffed in PRs, and searchable with grep.

Mermaid's table diagram syntax lets you build structured requirement matrices, feature comparisons, and capability tables as text. No external spreadsheet tools, no stale handoff documents — just a table that's reviewed, versioned, and updated like everything else.

Table syntax basics

A Mermaid table starts with table followed by a column header and rows of data:

table(tableId)
    title Feature Comparison: Free vs Pro
    ,Free,Pro,Enterprise
    Price,$0/mo,$9/mo,Custom
    Diagrams,5/mo,Unlimited,Unlimited
    Team Members,1,3,Unlimited
    API Access,❌,❌,✓
    SSO/SAML,❌,❌,✓
    Priority Support,❌,❌,✓

Each row follows the pattern:

label, cell, cell, cell

The first row is the header; subsequent rows are data. Cells are separated by commas.

Building a feature matrix

Feature matrices communicate what's shipping, what's planned, and what's deliberately out of scope. Here's a realistic example from a developer platform:

table(featureMatrix)
    title Platform Capabilities by Tier (Q3 2026)
    ,Starter,Scale,Enterprise
    Deployments/day,10,500,10k+
    Concurrent builds,2,16,64
    Docker registry,Included,Included,Private
    Custom domain,❌,✓,✓
    Load balancing,❌,✓,✓
    Disaster recovery,None,7 days,Unlimited
    Compliance,SOC2,SOC2 + HIPAA,SOC2 + HIPAA + FedRamp
    SLA,No,99.5%,99.99%

Notice the use of checkmarks and X's for boolean comparisons. They scan faster than "Yes/No" and reduce cognitive load.

Requirement traceability

Teams use requirement traceability matrices (RTMs) to track which tests verify which requirements. Mermaid tables make this visible:

table(requirementTrace)
    title Requirement Coverage & Test Status
    Requirement,Test ID,Test Name,Status
    REQ-001 User login,T-101,Login form submission,✓ Passing
    REQ-001 User login,T-102,Invalid password handling,✓ Passing
    REQ-002 MFA support,T-201,TOTP generation,✓ Passing
    REQ-002 MFA support,T-202,SMS fallback,🔄 In Progress
    REQ-003 Audit logging,T-301,Audit log ingestion,⚠ Blocked
    REQ-003 Audit logging,T-302,Query performance,🔄 In Progress

Symbols communicate status at a glance:

  • = passing
  • = warning / blocked
  • 🔄 = in progress
  • = failed

This table is a single source of truth for "what requirements do we need to ship, and are they tested yet?" Update it in a PR, review it there, and everyone sees the coverage immediately.

Competitive analysis

Product teams use competitive matrices to track where the product stands. Mermaid tables make that analysis transparent to the whole team:

table(competitiveAnalysis)
    title Diagramming Tools: Feature Comparison (2026)
    Feature,MermaidCreator,Tool A,Tool B,Tool C
    Mermaid syntax,✓,❌,✓,Partial
    Live collaboration,✓,❌,❌,✓
    AI diagram generation,✓,Partial,✓,❌
    Public sharing,✓,✓,✓,✓
    Export to code,✓,❌,Partial,❌
    Pricing,Free + $9/mo,$15/mo,$19/mo,$25/mo
    API,✓,✓,❌,Partial

Update this quarterly as the competitive landscape shifts. The team stays aligned on where you're strong, where you're catching up, and what's a roadmap priority.

Data center region coverage

Infrastructure and DevOps teams use tables to document service availability. Mermaid captures it without a separate wiki:

table(regionCoverage)
    title CDN & Database Region Coverage
    Region,CDN,Database,Status
    US East,Atlanta,N. Virginia,✓ Active
    US West,Los Angeles,N. California,✓ Active
    Europe,Frankfurt,Frankfurt,✓ Active
    APAC,Singapore,Singapore,✓ Active
    South America,São Paulo,TBD,🔄 Q4 2026
    Middle East,Dubai,TBD,❌ Deferred

This lives in your infrastructure-as-code repository, reviewed and updated alongside actual deployments.

Tips for effective requirement tables

Limit columns to 4–5. Wider tables scroll horizontally and become hard to read. If you need more columns, split into two tables or make the row label more concise.

Use consistent symbols. Pick a set of checkmarks, X's, and progress indicators and stick with them across all tables. Mixed notation is confusing.

Link from prose. A table is most useful when referenced from docs. "See the feature comparison table above" works; a table that floats alone in a doc is often ignored.

Update in the same PR as the feature. If you ship a new capability, update the matrix at the same time. That's when everyone is thinking about it.

Version the table like code. If a customer asks "what features did Q2 2026 have?", git blame on the table gives them the answer. That's documentation archaeology — and it's powerful.

Tables vs. comparison pages

Mermaid tables are best for internal documentation, requirement tracking, and team-facing matrices. For public product comparison pages (especially search-optimized ones), they work, but consider that a /compare page in your marketing site has different needs: SEO, responsive design, and rich context.

For those, keep a /compare/<slug> route in your marketing site with full HTML. Update it separately via content pipelines — just like a blog post. A Mermaid table can live in your docs; a comparison page lives on your site.

FAQ

Can I export a Mermaid table to CSV? Not yet from the diagram directly, but the table is plain Markdown, so it's easy to convert to CSV manually or with a script. Many teams keep the Mermaid version in the repo and export to spreadsheet as needed.

Should I use Mermaid tables or just keep a spreadsheet? If it's internal, version-controlled, and reviewed in PRs, Mermaid wins. If it's a complex model shared across teams, a spreadsheet may be better suited — but try putting the Mermaid version in your repo first as the source of truth.

Can I make a table interactive? Not in the current Mermaid spec, but tables integrate with your docs site, so links and click events from surrounding prose work.

Start with your next feature rollout. Instead of updating a separate spreadsheet, sketch the capability matrix in Mermaid, commit it alongside your feature docs, and watch how much easier it is to keep it current when it's part of the same review process.

Related posts