dagapp.examples.consulting_fees
Compute consulting fees
All common parameter defaults are centralized in the dflt single-source-of-truth so functions that share parameter names also share the same defaults. This avoids signature conflicts when building a DAG using meshed (parameter merging).
- dagapp.examples.consulting_fees.base_fee_ex_vat(effective_day_rate: float, committed_days: float = 8.0) float[source]
Return the base monthly fee (ex-VAT) for committed days.
- dagapp.examples.consulting_fees.committed_days(tier: Literal['light', 'regular', 'deep'] = 'regular') float[source]
Return default committed days/month for a named tier.
- dagapp.examples.consulting_fees.deep_monthly_total_incl_vat(retainer: bool = True, ad_hoc_day_rate: float = 2800.0, retainer_day_rate: float = 2400.0, ramp_up_days: float = 0.0, flex_premium_pct: float = 0.1, vat_rate: float = 0.081) float[source]
Return total incl. VAT for the ‘deep’ (12 d/mo) scenario.
- dagapp.examples.consulting_fees.effective_day_rate(retainer: bool = True, ad_hoc_day_rate: float = 2800.0, retainer_day_rate: float = 2400.0) float[source]
Return the effective day-rate based on retainer flag.
- dagapp.examples.consulting_fees.effective_hourly_rate(effective_day_rate: float, hours_per_day: float = 8.0) float[source]
Return the hourly equivalent of the effective day-rate.
- dagapp.examples.consulting_fees.flex_fee_ex_vat(effective_day_rate: float, ramp_up_days: float = 0.0, flex_premium_pct: float = 0.1) float[source]
Return the flex (short-notice) component (ex-VAT). Applies only to additional ramp-up days beyond the commitment.
- dagapp.examples.consulting_fees.light_monthly_total_incl_vat(retainer: bool = True, ad_hoc_day_rate: float = 2800.0, retainer_day_rate: float = 2400.0, ramp_up_days: float = 0.0, flex_premium_pct: float = 0.1, vat_rate: float = 0.081) float[source]
Return total incl. VAT for the ‘light’ (4 d/mo) scenario.
- dagapp.examples.consulting_fees.monthly_totals(committed_days: float = 8.0, ramp_up_days: float = 0.0, retainer: bool = True, ad_hoc_day_rate: float = 2800.0, retainer_day_rate: float = 2400.0, flex_premium_pct: float = 0.1, vat_rate: float = 0.081) dict[source]
Return a dict with all intermediate values for transparency: effective_day_rate, base_fee_ex_vat, flex_fee_ex_vat, subtotal_ex_vat, vat_amount, total_incl_vat.
- dagapp.examples.consulting_fees.regular_monthly_total_incl_vat(retainer: bool = True, ad_hoc_day_rate: float = 2800.0, retainer_day_rate: float = 2400.0, ramp_up_days: float = 0.0, flex_premium_pct: float = 0.1, vat_rate: float = 0.081) float[source]
Return total incl. VAT for the ‘regular’ (8 d/mo) scenario.
- dagapp.examples.consulting_fees.subtotal_ex_vat(base_fee_ex_vat: float, flex_fee_ex_vat: float = 0.0) float[source]
Return the subtotal (ex-VAT).