CDS ISDA Standard Model spread to points upfront example

I’m having an issue replicating the result for the standard ISDA converter from spread to points upfront and I’m sure it has to do with either my day count convention or the way i compute the tenors from the published Markit interest rate file. Does anyone have an example of this done anywhere? Particularly how to compute the year fractions and zero rate curve to provide to the rates provider. For the example below, on trade date 4/5, the interest rates are published here: https://www.markit.com/news/InterestRates_USD_20210402.zip. My calculated number of -0.19899630655212297 is slightly off from the one computed with the Markit tool (Markit Converter) where it should be -.1990178237222. So i must have some convention that is wrong. Thanks!

id = StandardId.of("schema", "xyz");
valuationDate = LocalDate.of(2021,4,5);
trade = CdsConventions.USD_STANDARD.toTrade(id,
	TradeInfo.of(valuationDate),
	LocalDate.of(2021,3,20), 
	LocalDate.of(2026,6,20), 
	BuySell.BUY, 
	1d,
	.05).resolve(ReferenceData.standard());

dayCount = DayCounts.ACT_365F;

recoveryRates = ConstantRecoveryRates.of(id, valuationDate, .4);
ccy = com.opengamma.strata.basics.currency.Currency.USD;

yieldCurveMetadata = DefaultCurveMetadata.builder()
					.xValueType(ValueType.YEAR_FRACTION)
					.yValueType(ValueType.ZERO_RATE)
					.curveName("yield")
					.dayCount(dayCount)
					.build();

yieldCurveTenors = new double[]{0.08767123287671233, 0.1726027397260274, 0.2547945205479452, 0.5068493150684932, 1.0054794520547945, 2.0054794520547947, 3.0109589041095894, 4.008219178082192, 5.008219178082192, 6.008219178082192, 7.010958904109589, 8.016438356164384, 9.013698630136986, 10.01095890410959, 12.013698630136986, 15.016438356164384, 20.021917808219175, 25.027397260273972, 30.024657534246575};

//rawMarkitValues = new double[]{0.001104, 0.001353, 0.001998, 0.002013, 0.002805, 0.003173, 0.005475, 0.008258, 0.010942, 0.012863, 0.014588, 0.01583, 0.016848, 0.017523, 0.018925, 0.02018, 0.021063, 0.021385, 0.02142};
// zero rates computed from rawMarkitValues rounded to 6 decimals straight from CDS STANDARD MODEL excel
yieldCurveValues = new double[]{0.00112, 	0.001373, 	0.002027, 	0.002042, 		0.002844, 	0.003176, 	0.005491, 	0.00832, 	0.011081, 	0.013076, 	0.014883, 	0.016197, 	0.017283, 	0.018, 	0.019521, 	0.020888, 	0.021815, 	0.022105, 	0.022051};

timeYieldCurve = DoubleArray.ofUnsafe(yieldCurveTenors);
rateYieldCurve = DoubleArray.ofUnsafe(yieldCurveValues);
yieldCurve  = InterpolatedNodalCurve.of(yieldCurveMetadata, timeYieldCurve, rateYieldCurve,
					CurveInterpolators.PRODUCT_LINEAR, CurveExtrapolators.FLAT, CurveExtrapolators.PRODUCT_LINEAR);
					
discountFactorCurve = IsdaCreditDiscountFactors.of(ccy, valuationDate, yieldCurve);

ratesProvider = ImmutableCreditRatesProvider.builder()
					.valuationDate(valuationDate)
					.discountCurves(Collections.singletonMap(ccy, discountFactorCurve))
					.recoveryRateCurves(Collections.singletonMap(id, recoveryRates))
					.build();
conv = new CdsMarketQuoteConverter();
quote = CdsQuote.of(CdsQuoteConvention.QUOTED_SPREAD, .00989);
converted = conv.pointsUpFrontFromQuotedSpread(trade, quote, ratesProvider, ReferenceData.standard());

Actually I was able to find an example for this in IsdaComplianceDiscountCurveCalibratorTest