Detection as Code

Panther vs Sigma and pySigma

Panther totals 6.31 and Sigma and pySigma totals 5.50 on the 10 point detection-as-code rubric (sources read 2026-11-03 and 2026-11-04). Panther leads by 0.81 points. The pair turns on testing: Panther documents it in full, and Sigma and pySigma publish nothing on it.

The difference that decides this pair

The largest weighted gap on the rubric is testing: Panther scores 8.0 against 4.0 for Sigma and pySigma, which is 0.60 of the 10 point total.

On testing, Panther runs per-detection unit tests with panther_analysis_tool test and previews a rule on stored logs with Data Replay (Beta), while Sigma and pySigma document no rule testing in the pages read. docs.panther.com read 2026-11-03 github.com read 2026-11-04

Rubric side by side

Panther totals 6.31 and Sigma and pySigma totals 5.50 out of 10.

Rubric criteria for Panther and Sigma and pySigma, scores out of 10. A plus marks a criterion where Sigma and pySigma scores higher, a minus where Panther does.

MarkerCriterionWeightPantherSigma and pySigma
+Rule languages and conversion paths158.08.5
-Git-native workflow and CI/CD189.06.0
-Testing158.04.0
Coverage analytics125.05.0
-Rule health183.52.0
-Versioning and rollback86.05.0
+Content library size and freshness85.08.0
+Pricing transparency63.09.0
Total1006.315.50

The 33 capabilities as a diff

Read it as a diff from Panther to Sigma and pySigma: 24 of 33 rows differ. A plus marks a row where Sigma and pySigma documents more (8 rows), a minus a row where Panther documents more (16 rows). Rows with no marker match.

Capability rows for Panther and Sigma and pySigma, grouped. Changed rows are shaded and carry a marker.

MarkerCapabilityPantherSigma and pySigma
Languages
Sigma and pySigma documents moreSigma nativePanther, Sigma native: not documentednot documentedSigma and pySigma, Sigma native: documenteddocumented
Sigma conversionPanther, Sigma conversion: documenteddocumentedSigma and pySigma, Sigma conversion: documenteddocumented
Sigma and pySigma documents moreYARA-LPanther, YARA-L: not documentednot documentedSigma and pySigma, YARA-L: partialpartial
Sigma and pySigma documents moreSPLPanther, SPL: not documentednot documentedSigma and pySigma, SPL: documenteddocumented
Sigma and pySigma documents moreKQLPanther, KQL: not documentednot documentedSigma and pySigma, KQL: documenteddocumented
Sigma and pySigma documents moreEQL or ES|QLPanther, EQL or ES|QL: not documentednot documentedSigma and pySigma, EQL or ES|QL: documenteddocumented
Panther documents morePythonPanther, Python: documenteddocumentedSigma and pySigma, Python: not documentednot documented
Panther documents moreVisual builderPanther, Visual builder: documenteddocumentedSigma and pySigma, Visual builder: not documentednot documented
YARAPanther, YARA: not documentednot documentedSigma and pySigma, YARA: not documentednot documented
Sigma and pySigma documents moreLucene or KQL-likePanther, Lucene or KQL-like: partialpartialSigma and pySigma, Lucene or KQL-like: documenteddocumented
Source control and CI
Panther documents moreGit syncPanther, Git sync: documenteddocumentedSigma and pySigma, Git sync: not documentednot documented
Panther documents morePR deployPanther, PR deploy: documenteddocumentedSigma and pySigma, PR deploy: not documentednot documented
Panther documents moreCLIPanther, CLI: documenteddocumentedSigma and pySigma, CLI: partialpartial
Panther documents moreRule APIPanther, Rule API: documenteddocumentedSigma and pySigma, Rule API: not documentednot documented
Panther documents moreCI examplesPanther, CI examples: documenteddocumentedSigma and pySigma, CI examples: partialpartial
Env promotionPanther, Env promotion: not documentednot documentedSigma and pySigma, Env promotion: not documentednot documented
Testing
Panther documents moreUnit testsPanther, Unit tests: documenteddocumentedSigma and pySigma, Unit tests: not documentednot documented
Panther documents moreReplayPanther, Replay: documenteddocumentedSigma and pySigma, Replay: not documentednot documented
Synthetic eventsPanther, Synthetic events: not documentednot documentedSigma and pySigma, Synthetic events: not documentednot documented
Panther documents moreBacktest reportsPanther, Backtest reports: partialpartialSigma and pySigma, Backtest reports: not documentednot documented
Test coveragePanther, Test coverage: not documentednot documentedSigma and pySigma, Test coverage: not documentednot documented
Coverage analytics
ATT&CK mapPanther, ATT&CK map: documenteddocumentedSigma and pySigma, ATT&CK map: documenteddocumented
Panther documents moreGap viewPanther, Gap view: documenteddocumentedSigma and pySigma, Gap view: not documentednot documented
Panther documents moreData sourcesPanther, Data sources: partialpartialSigma and pySigma, Data sources: not documentednot documented
Panther documents moreLog source healthPanther, Log source health: partialpartialSigma and pySigma, Log source health: not documentednot documented
Rule health
Noisy rulesPanther, Noisy rules: not documentednot documentedSigma and pySigma, Noisy rules: not documentednot documented
Panther documents moreBroken rulesPanther, Broken rules: documenteddocumentedSigma and pySigma, Broken rules: not documentednot documented
Panther documents moreField driftPanther, Field drift: partialpartialSigma and pySigma, Field drift: not documentednot documented
Panther documents moreRule costPanther, Rule cost: partialpartialSigma and pySigma, Rule cost: not documentednot documented
Sigma and pySigma documents moreLifecyclePanther, Lifecycle: not documentednot documentedSigma and pySigma, Lifecycle: documenteddocumented
Library
Sigma and pySigma documents moreLibrary countPanther, Library count: partialpartialSigma and pySigma, Library count: documenteddocumented
CommunityPanther, Community: documenteddocumentedSigma and pySigma, Community: documenteddocumented
CadencePanther, Cadence: partialpartialSigma and pySigma, Cadence: partialpartial

documenteddocumentedpartialpartialnot documentednot documented

Sources for the rows that differ

Verdict by buyer type

Which of the two fits each kind of team.

BuyerVerdict
Microsoft Sentinel estateSigma and pySigma is the better fit: they convert Sigma to KQL through its Kusto backend, listed as Stable; Panther documents no Sentinel path.
Elastic estateSigma and pySigma is the better fit: they convert Sigma to Lucene, ES|QL and EQL through its Elasticsearch backend; Panther documents no Elastic path.
Splunk estateSigma and pySigma is the better fit: they convert Sigma to SPL through its Splunk backend; Panther documents no Splunk path.
Google SecOps estateSigma and pySigma is the only one of the pair with any stated route: they have a Google SecOps backend that its backend list marks as Development; Panther documents no Google SecOps path.
a team starting from scratch with SigmaBoth document a route: Panther converts Sigma with sigma-cli into Python or Simple detections and tests them in CI, and Sigma and pySigma are the format itself and converts it to Splunk, Kusto and Elasticsearch targets, with no runtime, tests or health checks, so the difference above decides.

When to pick each

Panther: Pick Panther when testing is the deciding need: it runs per-detection unit tests with panther_analysis_tool test and previews a rule on stored logs with Data Replay (Beta). It also leads on CI and deployment.

Sigma and pySigma: Pick Sigma and pySigma when library size is the deciding need: they offer more than 3,000 community rules. They also lead on published pricing.

Profiles: Panther, Sigma and pySigma. Alternatives: to Panther, to Sigma and pySigma.