planItem.config.revenueRule) and applied automatically during
generation.
immediate
The full line-item amount is recognized in the invoice month.
Example: a $1,200 line item on an invoice dated 15 Mar → one revenue row of **$1,200** for March.
proportionate
The amount is recognized straight-line by day across the line item’s service
period (fromDate → toDate). Partial start/end months are prorated by the
number of days that fall in each month.
Revenue is never recognized before the invoice date — any portion that would
land in a month earlier than the invoice date is carried forward into the
invoice month.
Example: a $1,200 line item for 1 Jan–31 Dec (daily rate ≈ $3.29) → ~$102 per 31-day month, ~$99 for 30-day months, invoiced in January. If the invoice were dated in March, Jan+Feb amounts fold into March.
milestones
Revenue is recognized against completed revenue_trigger milestones on the
contract plan item. Each completed milestone recognizes:
Example: a $1,000 line item with milestones 40% (completed Feb) and 60% (completed May) → **$400** in February and $600 in May.

