diff --git a/internal/licenses/licenses.go b/internal/licenses/licenses.go
index 5940cf4..5188f3b 100644
--- a/internal/licenses/licenses.go
+++ b/internal/licenses/licenses.go
@@ -64,8 +64,8 @@
 	// relative to the contents directory.
 	FilePath string
 	// The output of oldlicensecheck.Cover.
-	Coverage    oldlicensecheck.Coverage
-	NewCoverage licensecheck.Coverage
+	OldCoverage oldlicensecheck.Coverage
+	Coverage    licensecheck.Coverage
 }
 
 // A License is a classified license file path and its contents.
@@ -429,9 +429,9 @@
 		types, cov := DetectFile(bytes, f.Name, d.logf)
 		licenses = append(licenses, &License{
 			Metadata: &Metadata{
-				Types:    types,
-				FilePath: strings.TrimPrefix(f.Name, prefix),
-				Coverage: cov,
+				Types:       types,
+				FilePath:    strings.TrimPrefix(f.Name, prefix),
+				OldCoverage: cov,
 			},
 			Contents: bytes,
 		})
diff --git a/internal/licenses/licenses_test.go b/internal/licenses/licenses_test.go
index 7696c09..17beae3 100644
--- a/internal/licenses/licenses_test.go
+++ b/internal/licenses/licenses_test.go
@@ -304,7 +304,7 @@
 			got := d.ModuleIsRedistributable()
 			if got != test.want {
 				for _, l := range d.ModuleLicenses() {
-					t.Logf("%v %v", l.Types, l.Coverage)
+					t.Logf("%v %v", l.Types, l.OldCoverage)
 				}
 				t.Fatalf("got %t, want %t", got, test.want)
 			}
@@ -313,7 +313,7 @@
 				gotMetas = append(gotMetas, lic.Metadata)
 			}
 			opts := []cmp.Option{
-				cmpopts.IgnoreFields(Metadata{}, "Coverage"),
+				cmpopts.IgnoreFields(Metadata{}, "OldCoverage"),
 				cmpopts.SortSlices(func(m1, m2 *Metadata) bool { return m1.FilePath < m2.FilePath }),
 			}
 			if diff := cmp.Diff(test.wantMetas, gotMetas, opts...); diff != "" {
@@ -413,7 +413,7 @@
 			contents: map[string]string{
 				"foo/LICENSE": mitLicense,
 			},
-			want: []*Metadata{{Types: []string{"MIT"}, FilePath: "foo/LICENSE", Coverage: mitCoverage}},
+			want: []*Metadata{{Types: []string{"MIT"}, FilePath: "foo/LICENSE", OldCoverage: mitCoverage}},
 		},
 
 		{
@@ -424,12 +424,12 @@
 				"COPYING":        bsd0License,
 			},
 			want: []*Metadata{
-				{Types: []string{"BSD-0-Clause"}, FilePath: "COPYING", Coverage: oldlc.Coverage{
+				{Types: []string{"BSD-0-Clause"}, FilePath: "COPYING", OldCoverage: oldlc.Coverage{
 					Percent: 100,
 					Match:   []oldlc.Match{{Name: "BSD-0-Clause", Type: oldlc.BSD, Percent: 100}},
 				}},
-				{Types: []string{"MIT"}, FilePath: "LICENSE", Coverage: mitCoverage},
-				{Types: []string{"MIT"}, FilePath: "foo/LICENSE.md", Coverage: mitCoverage},
+				{Types: []string{"MIT"}, FilePath: "LICENSE", OldCoverage: mitCoverage},
+				{Types: []string{"MIT"}, FilePath: "foo/LICENSE.md", OldCoverage: mitCoverage},
 			},
 		},
 		{
@@ -438,7 +438,7 @@
 				"LICENSE": mitLicense + "\n" + bsd0License,
 			},
 			want: []*Metadata{
-				{Types: []string{"BSD-0-Clause", "MIT"}, FilePath: "LICENSE", Coverage: oldlc.Coverage{
+				{Types: []string{"BSD-0-Clause", "MIT"}, FilePath: "LICENSE", OldCoverage: oldlc.Coverage{
 					Percent: 100,
 					Match: []oldlc.Match{
 						{Name: "MIT", Type: oldlc.MIT, Percent: 100},
@@ -472,7 +472,7 @@
 				{
 					Types:    []string{"UNKNOWN"},
 					FilePath: "foo/LICENSE",
-					Coverage: oldlc.Coverage{
+					OldCoverage: oldlc.Coverage{
 						Percent: 69.361,
 						Match:   []oldlc.Match{{Name: "MIT", Type: oldlc.MIT, Percent: 100}},
 					},
@@ -498,9 +498,9 @@
 					FilePath: "COPYING",
 				},
 				{
-					Types:    []string{"MIT"},
-					FilePath: "LICENSE",
-					Coverage: mitCoverage,
+					Types:       []string{"MIT"},
+					FilePath:    "LICENSE",
+					OldCoverage: mitCoverage,
 				},
 			},
 		},
@@ -513,7 +513,7 @@
 				{
 					Types:    []string{"Apache-2.0"},
 					FilePath: "LICENSE",
-					Coverage: oldlc.Coverage{
+					OldCoverage: oldlc.Coverage{
 						Percent: 100,
 						Match: []oldlc.Match{{
 							Name:    "Apache-2.0-Short",
@@ -648,7 +648,7 @@
 				gotMetas = append(gotMetas, l.Metadata)
 			}
 			opts := []cmp.Option{
-				cmpopts.IgnoreFields(Metadata{}, "Coverage"),
+				cmpopts.IgnoreFields(Metadata{}, "OldCoverage"),
 				cmpopts.SortSlices(func(m1, m2 *Metadata) bool { return m1.FilePath < m2.FilePath }),
 			}
 			if diff := cmp.Diff(test.wantMetas, gotMetas, opts...); diff != "" {
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index 563e90c..47000d0 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -208,16 +208,16 @@
 	var licenseValues []interface{}
 	for _, l := range m.Licenses {
 		var covJSON []byte
-		if l.NewCoverage.Percent == 0 && l.NewCoverage.Match == nil {
+		if l.Coverage.Percent == 0 && l.Coverage.Match == nil {
+			covJSON, err = json.Marshal(l.OldCoverage)
+			if err != nil {
+				return fmt.Errorf("marshalling %+v: %v", l.OldCoverage, err)
+			}
+		} else {
 			covJSON, err = json.Marshal(l.Coverage)
 			if err != nil {
 				return fmt.Errorf("marshalling %+v: %v", l.Coverage, err)
 			}
-		} else {
-			covJSON, err = json.Marshal(l.NewCoverage)
-			if err != nil {
-				return fmt.Errorf("marshalling %+v: %v", l.NewCoverage, err)
-			}
 		}
 		licenseValues = append(licenseValues, l.FilePath,
 			makeValidUnicode(string(l.Contents)), pq.Array(l.Types), covJSON,
diff --git a/internal/postgres/insert_module_test.go b/internal/postgres/insert_module_test.go
index 8921a65..fb21c6a 100644
--- a/internal/postgres/insert_module_test.go
+++ b/internal/postgres/insert_module_test.go
@@ -96,7 +96,7 @@
 		}
 		wantu.Subdirectories = subdirectories
 		opts := cmp.Options{
-			cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+			cmpopts.IgnoreFields(licenses.Metadata{}, "OldCoverage"),
 			cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
 		}
 		if diff := cmp.Diff(wantu, got, opts); diff != "" {
@@ -273,9 +273,9 @@
 	m.Licenses = []*licenses.License{
 		{
 			Metadata: &licenses.Metadata{
-				Types:       []string{sample.LicenseType},
-				FilePath:    sample.LicenseFilePath,
-				NewCoverage: newCoverage,
+				Types:    []string{sample.LicenseType},
+				FilePath: sample.LicenseFilePath,
+				Coverage: newCoverage,
 			},
 			Contents: []byte(`Lorem Ipsum`),
 		},
@@ -289,9 +289,9 @@
 	}
 	got := u.LicenseContents[0].Metadata
 	want := &licenses.Metadata{
-		Types:       []string{"MIT"},
-		FilePath:    sample.LicenseFilePath,
-		NewCoverage: newCoverage,
+		Types:    []string{"MIT"},
+		FilePath: sample.LicenseFilePath,
+		Coverage: newCoverage,
 	}
 	if !cmp.Equal(got, want) {
 		t.Errorf("\ngot  %+v\nwant %+v", got, want)
diff --git a/internal/postgres/licenses.go b/internal/postgres/licenses.go
index a3a8ec7..6f91bda 100644
--- a/internal/postgres/licenses.go
+++ b/internal/postgres/licenses.go
@@ -120,12 +120,12 @@
 		// which is always populated, but the old one doesn't. First try
 		// unmarshalling the new one, then if that doesn't populate the ID
 		// field, try the old.
-		if err := json.Unmarshal(covBytes, &lic.NewCoverage); err != nil {
+		if err := json.Unmarshal(covBytes, &lic.Coverage); err != nil {
 			return nil, err
 		}
-		if len(lic.NewCoverage.Match) == 0 || lic.NewCoverage.Match[0].ID == "" {
-			lic.NewCoverage = licensecheck.Coverage{}
-			if err := json.Unmarshal(covBytes, &lic.Coverage); err != nil {
+		if len(lic.Coverage.Match) == 0 || lic.Coverage.Match[0].ID == "" {
+			lic.Coverage = licensecheck.Coverage{}
+			if err := json.Unmarshal(covBytes, &lic.OldCoverage); err != nil {
 				return nil, err
 			}
 		}
diff --git a/internal/postgres/unit_test.go b/internal/postgres/unit_test.go
index a4c67b0..0a7ef99 100644
--- a/internal/postgres/unit_test.go
+++ b/internal/postgres/unit_test.go
@@ -72,7 +72,7 @@
 			t.Fatal(err)
 		}
 		opts := []cmp.Option{
-			cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+			cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 			cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod"),
 			cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
 		}
@@ -412,7 +412,7 @@
 					t.Fatal(err)
 				}
 				opts := []cmp.Option{
-					cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+					cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 					cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod"),
 					cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
 				}
@@ -580,7 +580,7 @@
 	opts := []cmp.Option{
 		cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
 		// The packages table only includes partial license information; it omits the Coverage field.
-		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 	}
 	want.SourceInfo = um.SourceInfo
 	want.NumImports = len(want.Imports)
@@ -684,7 +684,7 @@
 			opts := []cmp.Option{
 				cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
 				// The packages table only includes partial license information; it omits the Coverage field.
-				cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+				cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 			}
 			test.want.CommitTime = um.CommitTime
 			test.want.SourceInfo = um.SourceInfo
diff --git a/internal/testing/sample/sample.go b/internal/testing/sample/sample.go
index 9a3d3ca..0376d70 100644
--- a/internal/testing/sample/sample.go
+++ b/internal/testing/sample/sample.go
@@ -38,7 +38,7 @@
 		{
 			Types:    []string{LicenseType},
 			FilePath: LicenseFilePath,
-			Coverage: oldlicensecheck.Coverage{
+			OldCoverage: oldlicensecheck.Coverage{
 				Percent: 100,
 				Match:   []oldlicensecheck.Match{{Name: LicenseType, Type: oldlicensecheck.MIT, Percent: 100}},
 			},
diff --git a/internal/worker/refetch_test.go b/internal/worker/refetch_test.go
index 6c5f9f0..a5a6f57 100644
--- a/internal/worker/refetch_test.go
+++ b/internal/worker/refetch_test.go
@@ -121,7 +121,7 @@
 	}
 	if diff := cmp.Diff(want.UnitMeta, *got,
 		cmp.AllowUnexported(source.Info{}),
-		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 		cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod")); diff != "" {
 		t.Fatalf("testDB.GetUnitMeta(ctx, %q, %q) mismatch (-want +got):\n%s", want.ModulePath, want.Version, diff)
 	}
@@ -133,7 +133,7 @@
 	if diff := cmp.Diff(want, gotPkg,
 		cmp.AllowUnexported(source.Info{}),
 		cmpopts.IgnoreFields(internal.Unit{}, "Documentation"),
-		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+		cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage", "OldCoverage"),
 		cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod")); diff != "" {
 		t.Errorf("mismatch on readme (-want +got):\n%s", diff)
 	}
