update with fractional margin