diff --git a/cmd/govulncheck_compare/govulncheck_compare.go b/cmd/govulncheck_compare/govulncheck_compare.go
index 52214c5..7660590 100644
--- a/cmd/govulncheck_compare/govulncheck_compare.go
+++ b/cmd/govulncheck_compare/govulncheck_compare.go
@@ -59,7 +59,7 @@
 
 	for _, binary := range binaries {
 		pair := govulncheck.ComparePair{
-			BinaryResults: govulncheck.SandboxResponse{Stats: govulncheck.ScanStats{}},
+			BinaryResults: govulncheck.SandboxResponse{Stats: govulncheck.ScanStats{BuildTime: binary.BuildTime}},
 			SourceResults: govulncheck.SandboxResponse{Stats: govulncheck.ScanStats{}},
 		}
 
diff --git a/internal/buildbinary/bin.go b/internal/buildbinary/bin.go
index 892c232..b21d9af 100644
--- a/internal/buildbinary/bin.go
+++ b/internal/buildbinary/bin.go
@@ -9,6 +9,7 @@
 	"os/exec"
 	"path/filepath"
 	"strings"
+	"time"
 
 	"golang.org/x/pkgsite-metrics/internal/derrors"
 )
@@ -16,6 +17,7 @@
 type BinaryInfo struct {
 	BinaryPath string
 	ImportPath string
+	BuildTime  time.Duration
 }
 
 // FindAndBuildBinaries finds and builds all possible binaries from a given module.
@@ -27,27 +29,30 @@
 	}
 
 	for i, target := range buildTargets {
-		path, err := runBuild(modulePath, target, i)
+		path, buildTime, err := runBuild(modulePath, target, i)
 		if err != nil {
 			return nil, err
 		}
 		binaries = append(binaries, &BinaryInfo{
 			BinaryPath: path,
 			ImportPath: target,
+			BuildTime:  buildTime,
 		})
 	}
 	return binaries, nil
 }
 
 // runBuild takes a given module and import path and attempts to build a binary
-func runBuild(modulePath, importPath string, i int) (binaryPath string, err error) {
+func runBuild(modulePath, importPath string, i int) (binaryPath string, buildTime time.Duration, err error) {
 	binName := fmt.Sprintf("bin%d", i)
 	cmd := exec.Command("go", "build", "-C", modulePath, "-o", binName, importPath)
+	start := time.Now()
 	if err = cmd.Run(); err != nil {
-		return "", err
+		return "", 0, err
 	}
+	buildTime = time.Since(start)
 	binaryPath = filepath.Join(modulePath, binName)
-	return binaryPath, nil
+	return binaryPath, buildTime, nil
 }
 
 // findBinaries finds all packages that compile to binaries in a given directory
diff --git a/internal/buildbinary/bin_test.go b/internal/buildbinary/bin_test.go
index 1d9f8b3..1249755 100644
--- a/internal/buildbinary/bin_test.go
+++ b/internal/buildbinary/bin_test.go
@@ -83,7 +83,7 @@
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			got, err := runBuild(tt.modulePath, tt.importPath, 1)
+			got, _, err := runBuild(tt.modulePath, tt.importPath, 1)
 			defer os.Remove(got)
 			if (err != nil) != tt.wantErr {
 				t.Errorf("runBuild() error = %v, wantErr %v", err, tt.wantErr)
diff --git a/internal/govulncheck/govulncheck.go b/internal/govulncheck/govulncheck.go
index 142a054..9a95278 100644
--- a/internal/govulncheck/govulncheck.go
+++ b/internal/govulncheck/govulncheck.go
@@ -247,6 +247,10 @@
 	ScanSeconds float64
 	// ScanMemory is the peak (heap) memory used by govulncheck, in kb.
 	ScanMemory uint64
+	// BuildTime is the amount of time it takes to build a given binary
+	// *BEFORE* scanning it with govulncheck.
+	// This is only used in COMPARE - BINARY mode
+	BuildTime time.Duration
 }
 
 // SandboxResponse contains the raw govulncheck result
