v0.13.2Control flow and dataflow are rebuilt on explicit semantics, Z3 translation matches executable C# numeric rules, and the build chain is hermetic and supply-chain verified with hash- and size-pinned Z3 binaries.See what's new

Results

Live Benchmark Results

Evaluated across 217 programs with 8 metrics

Updated: Aug 12, 2026, 11:02 PM17d253d
Overall Advantage
1.32x
Calor/C# composite
Programs Tested
217
217 Calor successes
Calor Wins
7
of 8 metrics
C# Wins
1
of 8 metrics
How to read this run: these are deterministic static-analysis micro-benchmarks. Repeating them 30 times produced identical values, so the zero-width confidence intervals and reported p-values do not measure uncertainty in the 217-program sample. These results are also separate from the v0.12 release gates.

Agent Refactoring Benchmark

Measures Claude Code agent success rates on real refactoring tasks (rename, extract, inline, move, add contracts, change signature).

Calor19/20 tasks
95%
C#19/20 tasks
95%
View category breakdown
Rename Symbol
2/3
3/3
Extract Method
4/4
4/4
Inline Function
3/3
3/3
Move Method
3/3
3/3
Add Contract
4/4
3/4
Change Signature
3/3
3/3
Majority voting (2/3 runs) with compilation + Z3 verification580e189

Metric Breakdown

ComprehensionCalor wins
1.84x

Explicit structure aids understanding

Error DetectionCalor wins
1.49x

Contracts surface invariant violations

Token EconomicsCalor wins
1.42x

More compact representation

Refactoring StabilityCalor wins
1.38x

More stable during refactoring

Edit PrecisionCalor wins
1.36x

Explicit IDs and markers aid targeting

CorrectnessCalor wins
1.29x

Contracts help prevent edge case bugs

Generation AccuracyCalor wins
1.02x

Better code generation from prompts

Information DensityC# wins
0.98x

Calor trades density for explicitness

Calor better
Tie
C# better
|Center line = 1.0x (equal)

Current Status

Calor leads in 7 of 8 metrics, demonstrating advantages in areas where explicitness matters.

Per-Program Results

Filter by level:
Program
Lvl
Status
Adv
Tokens
Gen Acc
Comp
Edit
Err Det
Info Den
Refactor
Correct
Abs1
1.311.041.001.681.311.670.911.301.60
AbsoluteContracts2
1.560.551.143.501.392.140.821.371.58
AbstractClass2
1.121.731.001.151.330.860.571.351.00
Adapter2
1.552.131.001.571.661.831.051.521.60
AggregateStats2
1.111.521.001.091.311.000.631.321.00
AreaOfCircle1
1.501.591.002.271.312.141.041.301.33
ArrayContracts3
1.471.601.031.441.352.141.021.401.80
ArraySlice2
1.511.141.002.781.432.140.791.301.50
ArraySum2
1.191.401.001.481.231.001.231.320.83
AsyncChain3
1.161.471.001.171.431.000.851.351.00
AsyncEffect3
1.271.691.001.361.071.331.271.471.00
AsyncErrorHandling3
1.391.491.001.831.481.331.591.470.91
AsyncLoop3
1.391.911.001.961.431.001.481.321.00
AsyncPure3
1.041.451.000.731.031.000.791.321.00
AsyncReturn3
1.141.331.001.291.311.000.851.301.00
AutoProps2
1.181.011.001.701.331.001.051.351.00
Average2
1.381.441.001.881.311.571.531.301.00
BankAccount3
1.651.451.002.811.652.141.241.371.50
BasicTryCatch2
1.141.341.001.261.311.000.801.351.08
BclCoverage2
1.392.651.141.411.431.140.881.471.00
BinarySearch3
1.191.951.001.321.351.000.661.400.86
BinaryTree4
1.473.921.001.051.360.860.821.840.92
BitContracts3
1.400.741.142.471.391.830.611.371.60
BitSet3
1.500.601.002.711.312.500.691.441.80
BMICalculator2
1.450.911.002.091.312.500.631.301.90
BreadthFirstSearch3
1.342.551.001.451.351.001.151.400.86
BubbleSort2
1.441.401.002.361.271.831.121.371.17
BuggyContracts2
1.341.321.141.431.391.671.081.461.25
Builder3
1.252.071.001.061.360.860.981.491.20
Calculator2
1.091.211.001.291.351.000.521.371.00
Calendar3
1.450.611.002.301.312.500.661.351.90
CancellableTask3
1.241.611.001.581.431.000.961.321.00
Capitalize2
1.300.901.001.821.311.830.641.301.60
CelsiusToKelvin1
1.511.551.002.271.312.141.011.301.50
ChainOfResponsibility3
1.321.911.001.331.361.570.691.431.23
CircularBuffer3
1.521.621.002.241.332.141.181.351.29
Clamp2
1.442.061.001.331.351.670.921.251.90
CollectionLib2
1.380.981.102.291.521.670.811.401.25
Command3
1.291.901.001.561.681.000.951.400.83
CompactClass2
1.400.711.002.381.312.000.811.391.60
ComposedEffects3
1.371.721.141.841.391.331.271.560.71
Composite3
1.662.031.001.761.682.501.041.491.80
Composition3
1.441.641.001.621.361.831.141.561.40
CompoundInterest2
1.461.301.002.211.312.140.931.321.50
ConstructorInit2
1.551.261.002.751.332.141.221.351.33
Contains2
1.141.161.001.441.311.000.661.321.20
ContractedDivide3
1.311.961.000.871.311.670.691.191.80
CorrectEffects2
1.311.451.141.721.391.330.881.591.00
CountOccurrences2
1.350.941.001.901.311.671.051.321.60
CountVowels2
1.111.181.001.501.231.000.651.351.00
CsvParser2
1.481.251.001.971.311.672.291.321.00
CurrencyConverter2
1.510.681.002.701.312.500.751.291.80
CustomException2
1.351.531.001.451.351.570.871.431.60
DatabaseEffect3
1.351.141.142.211.391.331.071.501.00
DateDiff2
1.570.771.003.131.312.500.641.291.90
Decorator3
1.631.601.002.071.712.500.931.431.80
DelayedResult3
1.411.241.001.831.312.170.931.391.40
DepthFirstSearch3
1.332.191.001.551.311.001.021.351.20
Deque3
1.581.851.002.331.332.141.151.321.50
DictOps2
1.441.261.002.351.431.671.211.271.33
DigitCount2
1.530.521.002.641.312.500.901.441.90
Dijkstra4
1.711.781.002.541.342.501.421.321.80
DisjointSet3
1.292.131.001.241.521.000.861.371.20
DistanceCalculator3
1.190.741.001.431.311.670.521.341.50
DivisionContracts3
1.541.281.142.351.392.140.731.461.80
EditDistance3
1.211.651.001.471.231.001.021.341.00
EmailValidator2
1.080.971.001.551.311.000.531.301.00
Encapsulation3
1.181.981.001.071.361.000.681.371.00
EnumMatch2
1.321.031.002.071.311.001.661.301.20
EnumType3
1.261.001.002.091.311.000.971.321.40
EnumWithMethods3
1.220.871.002.091.311.000.791.301.40
ErrorPropagation2
1.261.041.001.881.311.570.831.301.17
ExceptionChain2
1.401.451.001.791.311.431.471.351.36
ExhaustiveMatch2
1.301.141.002.131.310.861.481.321.17
ExpressionBodied1
1.141.021.001.691.311.000.851.271.00
Factorial2
1.141.151.001.311.311.000.791.371.20
Factory3
1.632.211.001.991.352.140.971.891.50
Fibonacci2
1.140.861.001.411.311.000.751.371.40
FileEffects3
1.391.611.102.151.391.331.051.501.00
Filter2
1.241.411.002.061.431.000.551.271.20
FizzBuzz2
1.231.851.001.181.271.330.261.561.40
Flyweight3
1.571.541.001.881.362.501.321.461.50
FormatHeader2
1.141.431.001.291.311.000.661.441.00
GCD2
1.101.131.001.241.311.000.721.371.00
GenericClass2
1.421.891.001.681.331.431.181.321.50
GenericConstraints3
1.301.131.002.351.431.000.861.271.40
GenericFunction2
1.251.121.002.321.431.000.881.271.00
GradeCalculator2
1.280.861.001.681.311.830.601.301.70
Graph3
1.641.481.002.651.612.501.031.321.50
GroupBy2
1.491.731.002.391.431.830.851.271.40
GuardClause2
1.331.401.002.001.311.570.651.351.33
GuardMatch2
1.311.331.001.861.311.001.321.301.40
HashMap3
1.621.951.001.941.282.501.351.431.50
HelloWorld1
1.401.571.002.611.311.330.941.391.00
HiddenNetworkEffect3
1.502.181.141.891.431.141.651.601.00
Hypotenuse2
1.470.951.002.691.312.140.891.301.50
Inheritance3
1.291.331.001.441.481.001.281.371.40
InlineSigs2
1.120.861.001.741.311.000.591.271.20
InsertionSort2
1.241.431.002.041.231.001.041.350.83
InterfaceImpl3
1.551.921.001.811.681.831.161.591.40
InterpolationSearch3
1.311.391.001.551.311.830.861.371.14
Inventory3
1.541.431.002.661.332.140.941.321.50
IsAlpha1
1.110.821.001.911.311.000.371.271.20
IsEven1
1.141.611.001.211.311.000.521.301.20
IsOdd1
1.121.621.001.211.311.000.521.301.00
IsPrime3
1.221.451.001.181.351.220.631.301.60
Iterator2
1.411.421.001.751.341.831.201.321.40
Knapsack4
1.581.201.002.661.232.501.101.351.58
LCS3
1.221.451.001.591.231.001.031.301.17
LeapYear2
1.181.491.001.361.351.000.411.401.40
LinearSearch2
1.101.041.001.571.231.000.781.320.86
LinkedList4
1.604.481.001.001.360.861.071.671.40
LinqPipeline2
1.191.261.001.621.311.000.871.271.17
ListInvariant3
1.600.521.143.581.392.140.851.371.80
ListOps2
1.341.001.002.061.311.671.081.271.33
LogPipeline2
1.151.331.001.581.311.000.531.421.00
Map2
1.401.671.002.951.431.000.871.271.00
MathLib2
1.390.771.102.471.391.670.741.371.60
MathOperations3
1.322.401.000.821.351.110.911.371.60
MatrixMultiply3
1.421.571.001.951.341.571.301.301.33
MaxHeap3
1.482.441.001.631.361.571.281.431.17
MaxTwo1
1.260.951.001.701.311.670.761.301.40
MaxValue2
1.101.121.001.331.230.671.201.231.00
Mediator3
1.302.461.001.401.360.861.121.370.83
MergeSort3
1.522.881.001.441.351.830.971.371.33
MethodOverloading3
1.080.901.001.621.311.000.571.271.00
MethodOverriding3
1.251.131.001.561.431.001.551.321.00
MinStack3
1.312.121.001.391.610.861.011.321.17
MinTwo1
1.260.951.001.701.311.670.761.301.40
MissingEffects2
1.381.721.141.951.391.330.921.561.00
MixedContracts3
1.461.471.141.551.392.141.011.491.50
MixedSyntax2
1.401.231.002.111.312.140.791.321.33
ModuloContracts3
1.640.431.143.641.392.500.681.401.90
MultipleCatch2
1.141.281.001.271.351.000.731.371.09
NamedConfig2
1.121.321.001.251.311.000.621.421.00
NestedMatch2
1.311.351.001.861.311.001.431.301.20
NetworkEffect3
1.361.151.142.171.391.331.201.531.00
NullCheck2
1.101.161.001.661.310.860.701.270.80
Observer3
1.292.101.001.401.361.000.861.401.20
OptionalIds2
1.090.941.001.621.311.000.591.271.00
OptionType2
1.481.161.102.431.411.571.241.431.50
OverflowSafe3
1.511.631.031.461.352.141.291.401.80
OverflowUnsafe3
1.611.361.031.621.312.502.001.251.80
PairLogger2
1.111.231.001.421.311.000.471.421.00
Palindrome2
1.181.261.001.491.311.001.011.351.00
ParallelTasks3
1.291.381.002.161.431.001.061.301.00
ParseAndDouble2
1.141.421.001.291.311.000.661.441.00
PasswordValidator2
1.111.101.001.491.311.000.691.321.00
PhoneBook2
1.521.271.002.381.332.500.911.271.50
Polymorphism3
1.251.461.001.191.681.000.821.431.40
Power2
1.261.701.001.061.351.220.891.271.60
PriorityQueue3
1.542.771.001.711.361.571.051.491.33
Properties2
1.391.391.101.831.481.571.041.401.33
PropertyAccess1
1.831.341.101.631.481.834.251.431.60
PropertyMatch2
1.371.461.001.791.651.001.481.371.20
ProvableContracts2
1.481.011.142.101.392.140.981.491.58
Proxy3
1.301.591.001.411.681.140.881.531.20
PureComputation2
1.340.831.142.101.391.670.751.371.50
PureFunctions1
1.360.991.141.501.431.830.741.581.70
Queue3
1.302.291.001.221.360.861.091.401.17
QuickSort4
1.573.691.001.441.271.570.901.561.14
RangeContracts3
1.500.771.142.451.392.500.731.461.58
RangeMatch2
1.541.111.002.321.311.831.781.301.70
RecordType3
1.440.561.102.801.711.670.741.431.50
Reduce2
1.231.241.002.001.311.000.791.271.20
ResultType2
1.241.711.001.531.361.001.021.370.92
ReturnMapped2
1.131.451.001.251.311.000.641.421.00
ReverseArray2
1.531.021.002.871.311.831.591.321.33
ReverseString2
1.221.801.001.401.311.001.101.320.83
ScoreBoard2
1.571.341.002.371.332.500.951.271.80
SealedClass2
1.241.961.001.461.331.000.831.351.00
SearchContracts3
1.570.621.142.921.392.500.771.401.80
SelectionSort2
1.441.401.002.231.231.831.271.351.17
SetOps2
1.481.481.002.221.431.671.201.351.50
ShoppingCart4
1.713.231.001.901.282.141.061.931.19
Sign1
1.101.231.001.381.311.000.611.301.00
SimpleAsync3
1.331.341.001.961.311.331.341.391.00
SimpleClass2
1.631.401.002.361.652.500.881.431.80
SimpleMatch2
1.370.901.002.151.311.001.871.301.40
Singleton2
1.171.711.001.311.361.000.831.370.77
Sort2
1.161.551.001.581.231.000.781.300.83
SortedList2
1.371.501.001.651.591.670.971.301.25
SortingContracts3
1.560.681.143.071.392.500.551.371.80
Stack3
1.332.461.001.151.360.860.991.401.40
State3
1.441.241.002.051.361.002.071.371.40
StateEffect3
1.391.071.142.001.411.331.661.501.00
StaticMembers3
1.261.481.101.371.431.001.341.321.00
Strategy3
1.262.121.001.331.501.000.751.401.00
StringContracts3
1.371.421.031.451.312.141.011.321.29
StringLib2
1.320.801.102.331.391.670.651.371.25
StringUtils2
1.081.301.001.291.351.000.511.370.83
SumDigits2
1.550.421.002.871.312.500.951.441.90
SumRange2
1.311.711.001.481.231.570.951.341.17
SwitchExpression2
1.561.111.001.931.311.832.221.351.70
TaxCalculator3
1.420.731.002.281.312.500.651.301.58
TemperatureConverter1
1.111.291.001.281.311.000.631.351.00
TemperatureRange2
1.121.471.001.141.311.000.691.321.00
TemplateMethod3
1.001.440.760.370.940.860.731.831.10
TernaryChain2
1.190.891.001.611.311.001.021.271.40
ThreeWayMerge2
1.091.331.001.151.311.000.521.421.00
Timer2
1.531.111.002.571.362.141.191.401.50
TimerEffect3
1.590.661.103.131.392.500.691.401.90
TodoList2
1.541.441.002.061.592.141.231.321.50
TowerOfHanoi3
1.501.181.002.331.352.140.891.491.58
Trie4
1.622.311.001.801.362.501.111.461.39
TruncateString2
1.261.041.001.851.311.570.931.301.07
TryFinally2
1.181.281.001.481.311.001.011.351.00
TupleMatch2
1.240.911.001.911.311.001.071.301.40
TypeAlias3
1.451.341.102.561.411.381.381.301.17
TypeMatch2
1.411.271.001.751.351.002.141.371.40
UnitConverter2
1.350.691.002.371.311.830.691.271.60
UrlParser2
1.160.961.001.551.311.000.751.271.40
Visitor3
1.041.500.760.420.981.000.552.131.00
VoidSequence2
1.321.141.003.031.351.000.601.471.00
VotingSystem2
1.401.201.001.951.331.830.951.301.60
WildcardMatch2
1.200.801.001.841.311.000.931.301.40
Zip2
1.281.361.002.431.311.000.841.271.00

Showing 217 of 217 programs. Values above 1.0 favor Calor (highlighted in pink), values below 1.0 favor C# (highlighted in teal).


Read the Results Carefully

The v0.12 run covers 217 programs, reports an overall Calor/C# advantage of 1.32x, and has Calor ahead in seven of eight metrics. Comprehension is 1.84x, error detection is 1.49x, token economics is 1.42x, and information density is 0.98x—the one category where C# leads.

These measurements need two important caveats:

  • The metrics are deterministic static analyses. Thirty runs are thirty identical observations, so the zero-width confidence intervals and p-values measure no run-to-run variance; they do not measure sampling uncertainty over the corpus.
  • These C#-versus-Calor micro-benchmarks are not the v0.12 release gates. PP-A1 covered adoption readiness, while PP-W5 measured toolchain tax and concluded only that no large tax was detected—not that parity was proven.

Token economics is a composite of token, character, and line ratios. Calor still pays a § token premium on small programs even though the current composite favors Calor.


When to Use Calor

Based on results, Calor is most valuable when:

  • Contract verification matters — The error detection advantage validates explicit contracts
  • Edit precision is important — Optional explicit IDs and structural markers provide targeting signals
  • Agent comprehension is critical — Explicit structure provides clear signals
  • Compact source matters across several dimensions — The composite token, character, and line measure currently favors Calor

Use C# when:

  • Ecosystem libraries are needed — Leverage existing tooling
  • Human readability is priority — Familiar syntax for human developers

Methodology

All benchmarks are automated and reproducible. Each program is evaluated across 8 metrics comparing Calor and C# implementations.

The published dashboard framework:

  1. Compiles paired Calor and C# programs.
  2. Applies deterministic metric calculators to source, syntax trees, and compilation results.
  3. Aggregates the per-program Calor/C# ratios.
  4. Repeats the deterministic evaluation 30 times for the reported statistical artifact. Greater than 1.0 favors Calor; less than 1.0 favors C#.

LLM-based task runners exist separately and are not folded into this dashboard result.

See Methodology for full details on the evaluation framework.


Running Benchmarks

To regenerate benchmark results:

Bash
# Run the evaluation framework
dotnet run --project tests/Calor.Evaluation -- run -f website -o website/public/data/benchmark-results.json

# Start the website to view results
cd website && npm run dev

Results are automatically loaded from benchmark-results.json and displayed in the dashboard above.