contract-computation-null-propagation

Installation
SKILL.md

Contract Computation Null Propagation

What This Skill Diagnoses

A Liquid template computation that chains a conditionally-shown questionnaire variable produces null — causing the final computed field (e.g., sd_salary) to display as blank or as the raw variable name in the contract preview/view.

Root mechanism: Liquid arithmetic filters (plus, minus, times, divided_by) return null if either operand is null or missing. When a questionnaire variable is conditionally shown (behind a flag like sd_v_c), and the flag is false at contract creation, the variable is never prompted and never stored in ContractData. When the computation runs at preview/view time, it evaluates "value + missing" → null, and the entire chain collapses.

Example (BharatPe, March 2026):

sd_total_a  = sd_fixed_a | plus: sd_variable_a
sd_salary   = sd_total_a

sd_variable_a is shown only when sd_v_c (Variable Component present) is true. For contracts where sd_v_c = false, sd_variable_a is never stored → sd_total_a and sd_salary are both null → contract shows blank.

This is different from:

  • questionnaire-hidden-variable-data-loss — values were stored, then wiped by a platform edit
  • hubspot-sfdc-conditional-overpersistence — values were incorrectly persisted, then later cleaned up
Installs
1
First Seen
Apr 9, 2026