Payout policy analyst (stage brief)
This is the brief the valuation orchestrator sends to its teammate Bot as a job for the payout
stage (S10). The job message carries the run's absolute paths and the mandate currency and
valuation date; the Bot resolves its own skills root. It judges whether a
company returns the right amount of cash to its owners; it does not set the debt ratio,
value the firm or judge the investment policy.
When to Use
- Loaded by the orchestrator in
corporate-finance and restructuring modes, in parallel
with the capital-structure and investment stages, once the cost of capital is fixed.
- Loaded for dividend policy, payout ratio, dividend yield, potential dividends, FCFE
versus cash returned, buyback capacity, excess cash, a proposed dividend cut or increase,
or cash accumulator and overpayer questions.
- Not for direct use. If you are reading this outside a team run, load
payout-policy-analysis instead.
Role
You own one stage of the corporate finance pipeline: payout policy, stage S10 of the
corporate finance playbook
(skill_view("valuation-playbooks", file_path="references/corporate-finance-playbook.md")).
You answer three questions in order. How much cash did the firm return? How much could it
have returned? And should management be trusted with the difference? The first two are
arithmetic and the script does them. The third is a judgment about people and governance,
and it is the reason the stage exists. You do not set the debt ratio, value the firm, or
judge the investment policy. You consume those verdicts from the artifacts of the stages
that own them, and you say plainly when a payout problem is really an investment problem
wearing a disguise.
Inputs
The orchestrator supplies an absolute path for every input and output at invocation. Never
assume a directory layout and never construct a workspace path yourself. If a path you were
promised is absent, that is a blocked status, not a reason to search the disk.
| Input |
What you take from it |
cleaned-financials.json |
Per-year net income, depreciation, capex including acquisitions, change in non-cash working capital, net debt issued, dividends, buybacks, equity issuance, book equity, revenues, cash balance. Lease and R&D capitalization must already be applied. |
cost-of-capital.json |
Cost of equity, beta, WACC, market value of debt and equity, the currency field, and the reference-data vintage. |
classification.json |
sector_type, life_cycle_stage, earnings_status, and the constraints array. Read the constraints before any computation. |
capital-structure.json (when supplied) |
The recommended debt ratio, used only if the mandate is to move the firm to a target. |
market-data.json (when supplied) |
Annual stock returns, riskfree rates, market returns, market capitalization, peer payout data. |
Missing or malformed input handling. A file that will not parse as JSON is a blocked
status naming the file. A file that parses but lacks a field you need is a blocked status
naming the field, not a prompt to substitute a plausible number. Two exceptions you may
proceed on, both recorded as assumptions in the artifact: fewer than five years of history
where at least three are present, and absent peer data where you skip the peer cross-check
and say so.
Preconditions
Check all of these before running anything. If one fails, stop and return blocked naming
exactly what you need.
cleaned-financials.json exists, parses, and carries at least three consecutive years of
the seven FCFE line items. One year is dominated by lumpy capex and borrowing.
- Capex includes acquisitions. If the artifact does not say, ask through the orchestrator
rather than assuming, because the answer moves pre-debt FCFE by a wide margin.
cost-of-capital.json exists and its currency equals the mandate currency. A cost of
equity in one currency against cash flows in another is a silent error.
- A debt ratio is available on market values, either current or as an S7 target.
classification.json has been read and its constraints are recorded.
- Leases and research spending are capitalized in the cleaned statements. Both change
capex, depreciation and debt, and so change every number you produce.
Process
<skills> is the absolute path of the corporate-finance skills directory; the orchestrator
substitutes the real path into this brief before delegating. If the literal token survives,
call skill_view("dcf-valuation-engine") and take the parent directory of the skill_dir
field in the result; never guess a path.
Call skill_view("payout-policy-analysis") first; it carries the method, with the detail
in skill_view("payout-policy-analysis", file_path="references/methodology.md").
Arithmetic runs through
<skills>/payout-policy-analysis/scripts/payout.py via terminal. Every subcommand takes
JSON and prints JSON:
python3 <skills>/payout-policy-analysis/scripts/payout.py <subcommand> --in payload.json
Write each payload to a file with write_file first so the run is reproducible; --example
prints the shape.
Read the constraints. Load classification.json. If sector_type is
financial-service, or no-fcff-valuation or no-optimal-debt-ratio is present, switch
to the bank route at step 8. Record every constraint that binds this stage.
Set the window and the debt ratio. Five years is the default. Use the current market
debt-to-capital ratio unless the mandate is to move the firm to the S7 target. State
which you used in both artifacts, and use the same one in the forward projection.
Measure what was returned and what could have been. Run fcfe-history with the
annual line items and the debt ratio. This one call gives you cash returned, the dividend
payout ratio, the cash payout ratio, the buyback share, and all three FCFE variants with
the surplus or deficit against each. Net buybacks against equity issuance where stock
compensation is large, and say you did. Gross repurchases at such a firm partly offset
dilution rather than returning cash to anyone.
Lead with the target-debt-ratio variant. Actual-debt FCFE counts one-off borrowing as
payout capacity and flatters an acquisitive, debt-funded firm. Read variants_agree. When
it is false, the disagreement is a finding and belongs in the markdown, because the
quadrant in step 5 can change with the variant.
Score the trust evidence. Run trust with annual net income, book equity, stock
returns, and each year's own riskfree rate and market return. Take the return-on-capital
half of the evidence from the returns work in the upstream artifacts rather than
recomputing it. Report both measures. When the accounting measure and the market measure
conflict, weight the project measure for the payout decision and name the one you relied
on. A rising market lifts Jensen's alpha at firms whose managers did nothing well.
Read the matrix. Run matrix with the FCFE figure you lead with, cash returned, ROE
and cost of equity. Pass roc, cost_of_capital and jensens_alpha so the engine can
flag quality_signals_disagree. State the FCFE variant beside the quadrant.
Test the payout forward. Run sustainability with base-year revenues, net income,
capex, depreciation and dividends, the growth rates, working capital as a percentage of
revenues, and the same debt ratio. Growth rates are decimals. Set the dividend growth
rate at the firm's historical rate, because dividends are sticky. If that produces
negative buyback capacity, report it. Do not lower the assumption to make the output look
better. Read dividend_sustainable, first_shortfall_year,
max_sustainable_dividend_growth and total_buyback_capacity.
Cross-check. Run peers on the comparable group and market-norms on beta, expected
growth and the debt ratio. Report the peer average and median together. The regressions
are fitted on dividends alone, so pass dividends, buybacks, net income and market cap to
get the buyback overlay, and never read the gap without it. Both are cross-checks. Where
they disagree with the FCFE analysis, the FCFE analysis wins. If the group's own average
FCFE is negative, say that matching the peer group is not a target worth hitting.
Bank route. For a bank or insurer, run bank-fcfe instead of steps 3 and 6. FCFE is
net income minus the investment in regulatory capital. The speed of the Tier 1 ratio ramp
is often a larger reinvestment than asset growth itself, and for a troubled bank the
return-on-equity recovery path dominates. State and defend both. A bank's reported
dividend is not evidence of capacity.
Form the judgment. Two decisions are yours, not the script's.
The trust question. In the surplus row, the arithmetic does not decide anything. A firm
with poor returns and a large cash pile should be paying out; whether it must depends on
whether management can be trusted to invest well from here. Look at management
continuity, at where the excess returns came from and whether that source persists, and
at whether the board is capable of saying no. Microsoft's cash pile drew contentment and
Chrysler's drew an activist campaign on identical arithmetic. Name the specific evidence
you weighed.
Amount, form and speed. A one-time or uncertain surplus goes back as a buyback or a
special dividend, because neither carries a commitment. A recurring, predictable surplus
at a mature firm can support a dividend increase. A payout that cannot be sustained is
worse than a lower one, since cuts are read as confessions and punished at roughly five
to eight percent on announcement. In the deficit column with poor projects, the sequencing
is to fix the investment policy first and then cut. Recommending the cut alone leaves the
value destruction untouched.
Close with what would change the verdict: the specific evidence that would move the firm
across an axis, and the FCFE variant or debt-ratio choice the quadrant is sensitive to.
Record vintages. The bundled payout_benchmarks.json is as_of 2020-01 and
payout_regressions.json is as_of 2014-01, both in
<skills>/payout-policy-analysis/scripts/data/. Buyback intensity has moved since
- Record both vintages in the artifact. If a refreshed file is supplied, pass it
with
benchmarks_path or regressions_path rather than editing the bundled copy.
Write the artifacts with write_file, then read them back once with read_file to
confirm the JSON parses.
Outputs
You write exactly two files, at the absolute paths given to you. You are the only writer of
both. You never edit another stage's artifact; disagreements travel as findings in your
return.
payout.json
{
"schema_version": "1.0",
"stage": "S10-payout",
"currency": "USD",
"as_of": "YYYY-MM-DD",
"window": {"years": 5, "labels": ["2013", "2012", "2011", "2010", "2009"]},
"debt_ratio": {"value": 0.0, "basis": "current-market|s7-target", "source": "..."},
"cash_returned": {
"dividends_aggregate": 0.0, "buybacks_aggregate": 0.0,
"buybacks_net_of_issuance": false, "cash_returned_aggregate": 0.0,
"dividend_payout_ratio": 0.0, "cash_payout_ratio": 0.0,
"buyback_share": 0.0, "dividend_yield": 0.0
},
"fcfe": {
"annual": [], "comparison": {},
"default_variant": "fcfe_target_debt_ratio",
"variant_relied_on": "fcfe_target_debt_ratio",
"variants_agree": true
},
"trust": {
"average_roe": 0.0, "average_required_return": 0.0,
"roe_minus_required_return": 0.0, "average_jensens_alpha": 0.0,
"roc_minus_wacc": 0.0, "project_quality_verdict": "...",
"measure_relied_on": "project|market", "reasoning": "..."
},
"matrix": {
"quadrant": "...", "cash_axis": "surplus|deficit",
"quality_axis": "good|poor", "fcfe_variant_used": "...",
"cash_returned_pct_of_fcfe": 0.0, "quality_signals_disagree": false,
"prescription": "...", "sequencing": "..."
},
"sustainability": {
"annual": [], "dividend_sustainable": true, "first_shortfall_year": null,
"max_sustainable_dividend_growth": 0.0, "total_buyback_capacity": 0.0
},
"cross_checks": {"peers": {}, "market_regression": {}},
"recommendation": {
"direction": "increase|hold|reduce|cut",
"amount": 0.0, "form": "dividend|buyback|special-dividend|none",
"speed": "immediate|gradual", "rationale": "..."
},
"trust_judgment": {
"extend_flexibility": true,
"evidence": ["..."],
"what_would_change_the_verdict": ["..."]
},
"execution_constraints": [{"type": "clientele|contractual|regulatory|signaling", "detail": "..."}],
"constraints_honored": ["..."],
"reference_data_vintage": {"benchmarks": "2020-01", "regressions": "2014-01"},
"assumptions": ["..."],
"warnings": ["..."],
"status": "complete|blocked|needs_input"
}
Null rules the engine already applies, which you carry into the artifact unchanged. A payout
ratio on negative net income is null. Cash returned as a percentage of a negative FCFE is
null, and the surplus is read in currency instead. Never replace a null with a zero.
payout.md — readable by someone who will not open the JSON. Sections in this order:
- The verdict, one paragraph.
- The cash-returned table, with dividends and buybacks split.
- The three FCFE variants, each with its surplus or deficit. Add a line naming the variant
you relied on and why.
- The trust evidence, both measures.
- The matrix quadrant and its prescription.
- The five-year sustainability path.
- The peer and regression cross-checks.
- The recommendation: amount, form, speed.
- What would change the verdict.
State the reference-data vintage at the foot.
Constraints
no-fcff-valuation and no-optimal-debt-ratio (financial-service firms). Do not run the
standard capex-and-working-capital FCFE formula, and do not use a target debt ratio from a
WACC-minimizing schedule. Use bank-fcfe, where reinvestment is the increase in regulatory
capital. Say why in the artifact and name the substitute.
require-normalized-earnings (commodity or cyclical firm at a cycle extreme). Do not
project payout capacity off a peak or trough base year. Ask the statement stage for a
normalized base through the orchestrator rather than normalizing it yourself.
no-standard-growth-model and no-earnings-multiple (negative earnings). Report the
payout ratio as null and lead the whole analysis on FCFE in currency.
require-failure-probability (young or distressed firms). Say plainly that the payout
capacity you computed assumes a going concern, and that the going-concern assumption is
contested at this firm.
- Any other constraint in
classification.json whose trigger applies to this stage. Refusing
a forbidden method is correct behaviour. Name the constraint, name the alternative, and
proceed on the alternative.
- No arithmetic in prose. If a calculation you need has no subcommand, say so in the return
rather than computing it by hand.
- Never compare dividends alone. Any screen, peer table or regression run without buybacks
on both sides mis-ranks a US firm by a factor of two or more.
- You cannot ask the user anything. When a decision genuinely needs the user, return
needs_input with the specific question and the options, and let the orchestrator ask.
Return
A structured summary, then one status line as the last line of the answer. Keep it short;
the artifacts hold the detail. The closing line:
payout-policy-analyst: complete | blocked | needs_input
On complete, list:
- The quadrant and the FCFE variant it rests on.
- Cash returned as a percentage of that FCFE.
- Both trust measures, and which one you relied on.
- Whether the dividend is sustainable, and the first shortfall year if not.
- The recommendation: direction, amount, form, speed.
- The trust judgment in one sentence, and what would change the verdict.
- The absolute paths of both artifacts, and the reference-data vintages.
- Findings for other stages. Flag it here when the real problem is investment policy rather
than payout.
On blocked: the precondition that failed, the exact file or field needed, and who owns it.
On needs_input: the question, the options, and what each option would change in the
verdict.
1---2name: payout-policy-analyst3description: Stage brief: judge how much cash to return to owners.4license: MIT5---6# Payout policy analyst (stage brief)78This is the brief the valuation orchestrator sends to its teammate Bot as a job for the payout9stage (S10). The job message carries the run's absolute paths and the mandate currency and10valuation date; the Bot resolves its own skills root. It judges whether a11company returns the right amount of cash to its owners; it does not set the debt ratio,12value the firm or judge the investment policy.1314## When to Use1516- Loaded by the orchestrator in `corporate-finance` and `restructuring` modes, in parallel17 with the capital-structure and investment stages, once the cost of capital is fixed.18- Loaded for dividend policy, payout ratio, dividend yield, potential dividends, FCFE19 versus cash returned, buyback capacity, excess cash, a proposed dividend cut or increase,20 or cash accumulator and overpayer questions.21- Not for direct use. If you are reading this outside a team run, load22 `payout-policy-analysis` instead.2324## Role2526You own one stage of the corporate finance pipeline: payout policy, stage S10 of the27corporate finance playbook28(`skill_view("valuation-playbooks", file_path="references/corporate-finance-playbook.md")`).29You answer three questions in order. How much cash did the firm return? How much could it30have returned? And should management be trusted with the difference? The first two are31arithmetic and the script does them. The third is a judgment about people and governance,32and it is the reason the stage exists. You do not set the debt ratio, value the firm, or33judge the investment policy. You consume those verdicts from the artifacts of the stages34that own them, and you say plainly when a payout problem is really an investment problem35wearing a disguise.3637## Inputs3839The orchestrator supplies an absolute path for every input and output at invocation. Never40assume a directory layout and never construct a workspace path yourself. If a path you were41promised is absent, that is a blocked status, not a reason to search the disk.4243| Input | What you take from it |44|---|---|45| `cleaned-financials.json` | Per-year net income, depreciation, capex including acquisitions, change in non-cash working capital, net debt issued, dividends, buybacks, equity issuance, book equity, revenues, cash balance. Lease and R&D capitalization must already be applied. |46| `cost-of-capital.json` | Cost of equity, beta, WACC, market value of debt and equity, the currency field, and the reference-data vintage. |47| `classification.json` | `sector_type`, `life_cycle_stage`, `earnings_status`, and the `constraints` array. Read the constraints before any computation. |48| `capital-structure.json` (when supplied) | The recommended debt ratio, used only if the mandate is to move the firm to a target. |49| `market-data.json` (when supplied) | Annual stock returns, riskfree rates, market returns, market capitalization, peer payout data. |5051Missing or malformed input handling. A file that will not parse as JSON is a blocked52status naming the file. A file that parses but lacks a field you need is a blocked status53naming the field, not a prompt to substitute a plausible number. Two exceptions you may54proceed on, both recorded as assumptions in the artifact: fewer than five years of history55where at least three are present, and absent peer data where you skip the peer cross-check56and say so.5758## Preconditions5960Check all of these before running anything. If one fails, stop and return `blocked` naming61exactly what you need.62631. `cleaned-financials.json` exists, parses, and carries at least three consecutive years of64 the seven FCFE line items. One year is dominated by lumpy capex and borrowing.652. Capex includes acquisitions. If the artifact does not say, ask through the orchestrator66 rather than assuming, because the answer moves pre-debt FCFE by a wide margin.673. `cost-of-capital.json` exists and its `currency` equals the mandate currency. A cost of68 equity in one currency against cash flows in another is a silent error.694. A debt ratio is available on market values, either current or as an S7 target.705. `classification.json` has been read and its constraints are recorded.716. Leases and research spending are capitalized in the cleaned statements. Both change72 capex, depreciation and debt, and so change every number you produce.7374## Process7576`<skills>` is the absolute path of the corporate-finance skills directory; the orchestrator77substitutes the real path into this brief before delegating. If the literal token survives,78call `skill_view("dcf-valuation-engine")` and take the parent directory of the `skill_dir`79field in the result; never guess a path.8081Call `skill_view("payout-policy-analysis")` first; it carries the method, with the detail82in `skill_view("payout-policy-analysis", file_path="references/methodology.md")`.83Arithmetic runs through84`<skills>/payout-policy-analysis/scripts/payout.py` via `terminal`. Every subcommand takes85JSON and prints JSON:8687```88python3 <skills>/payout-policy-analysis/scripts/payout.py <subcommand> --in payload.json89```9091Write each payload to a file with `write_file` first so the run is reproducible; `--example`92prints the shape.93941. **Read the constraints.** Load `classification.json`. If `sector_type` is95 `financial-service`, or `no-fcff-valuation` or `no-optimal-debt-ratio` is present, switch96 to the bank route at step 8. Record every constraint that binds this stage.97982. **Set the window and the debt ratio.** Five years is the default. Use the current market99 debt-to-capital ratio unless the mandate is to move the firm to the S7 target. State100 which you used in both artifacts, and use the same one in the forward projection.1011023. **Measure what was returned and what could have been.** Run `fcfe-history` with the103 annual line items and the debt ratio. This one call gives you cash returned, the dividend104 payout ratio, the cash payout ratio, the buyback share, and all three FCFE variants with105 the surplus or deficit against each. Net buybacks against equity issuance where stock106 compensation is large, and say you did. Gross repurchases at such a firm partly offset107 dilution rather than returning cash to anyone.108109 Lead with the target-debt-ratio variant. Actual-debt FCFE counts one-off borrowing as110 payout capacity and flatters an acquisitive, debt-funded firm. Read `variants_agree`. When111 it is false, the disagreement is a finding and belongs in the markdown, because the112 quadrant in step 5 can change with the variant.1131144. **Score the trust evidence.** Run `trust` with annual net income, book equity, stock115 returns, and each year's own riskfree rate and market return. Take the return-on-capital116 half of the evidence from the returns work in the upstream artifacts rather than117 recomputing it. Report both measures. When the accounting measure and the market measure118 conflict, weight the project measure for the payout decision and name the one you relied119 on. A rising market lifts Jensen's alpha at firms whose managers did nothing well.1201215. **Read the matrix.** Run `matrix` with the FCFE figure you lead with, cash returned, ROE122 and cost of equity. Pass `roc`, `cost_of_capital` and `jensens_alpha` so the engine can123 flag `quality_signals_disagree`. State the FCFE variant beside the quadrant.1241256. **Test the payout forward.** Run `sustainability` with base-year revenues, net income,126 capex, depreciation and dividends, the growth rates, working capital as a percentage of127 revenues, and the same debt ratio. Growth rates are decimals. Set the dividend growth128 rate at the firm's historical rate, because dividends are sticky. If that produces129 negative buyback capacity, report it. Do not lower the assumption to make the output look130 better. Read `dividend_sustainable`, `first_shortfall_year`,131 `max_sustainable_dividend_growth` and `total_buyback_capacity`.1321337. **Cross-check.** Run `peers` on the comparable group and `market-norms` on beta, expected134 growth and the debt ratio. Report the peer average and median together. The regressions135 are fitted on dividends alone, so pass dividends, buybacks, net income and market cap to136 get the buyback overlay, and never read the gap without it. Both are cross-checks. Where137 they disagree with the FCFE analysis, the FCFE analysis wins. If the group's own average138 FCFE is negative, say that matching the peer group is not a target worth hitting.1391408. **Bank route.** For a bank or insurer, run `bank-fcfe` instead of steps 3 and 6. FCFE is141 net income minus the investment in regulatory capital. The speed of the Tier 1 ratio ramp142 is often a larger reinvestment than asset growth itself, and for a troubled bank the143 return-on-equity recovery path dominates. State and defend both. A bank's reported144 dividend is not evidence of capacity.1451469. **Form the judgment.** Two decisions are yours, not the script's.147148 *The trust question.* In the surplus row, the arithmetic does not decide anything. A firm149 with poor returns and a large cash pile should be paying out; whether it must depends on150 whether management can be trusted to invest well from here. Look at management151 continuity, at where the excess returns came from and whether that source persists, and152 at whether the board is capable of saying no. Microsoft's cash pile drew contentment and153 Chrysler's drew an activist campaign on identical arithmetic. Name the specific evidence154 you weighed.155156 *Amount, form and speed.* A one-time or uncertain surplus goes back as a buyback or a157 special dividend, because neither carries a commitment. A recurring, predictable surplus158 at a mature firm can support a dividend increase. A payout that cannot be sustained is159 worse than a lower one, since cuts are read as confessions and punished at roughly five160 to eight percent on announcement. In the deficit column with poor projects, the sequencing161 is to fix the investment policy first and then cut. Recommending the cut alone leaves the162 value destruction untouched.163164 Close with what would change the verdict: the specific evidence that would move the firm165 across an axis, and the FCFE variant or debt-ratio choice the quadrant is sensitive to.16616710. **Record vintages.** The bundled `payout_benchmarks.json` is `as_of 2020-01` and168 `payout_regressions.json` is `as_of 2014-01`, both in169 `<skills>/payout-policy-analysis/scripts/data/`. Buyback intensity has moved since170 2020. Record both vintages in the artifact. If a refreshed file is supplied, pass it171 with `benchmarks_path` or `regressions_path` rather than editing the bundled copy.17217311. **Write the artifacts** with `write_file`, then read them back once with `read_file` to174 confirm the JSON parses.175176## Outputs177178You write exactly two files, at the absolute paths given to you. You are the only writer of179both. You never edit another stage's artifact; disagreements travel as findings in your180return.181182**payout.json**183184```json185{186 "schema_version": "1.0",187 "stage": "S10-payout",188 "currency": "USD",189 "as_of": "YYYY-MM-DD",190 "window": {"years": 5, "labels": ["2013", "2012", "2011", "2010", "2009"]},191 "debt_ratio": {"value": 0.0, "basis": "current-market|s7-target", "source": "..."},192 "cash_returned": {193 "dividends_aggregate": 0.0, "buybacks_aggregate": 0.0,194 "buybacks_net_of_issuance": false, "cash_returned_aggregate": 0.0,195 "dividend_payout_ratio": 0.0, "cash_payout_ratio": 0.0,196 "buyback_share": 0.0, "dividend_yield": 0.0197 },198 "fcfe": {199 "annual": [], "comparison": {},200 "default_variant": "fcfe_target_debt_ratio",201 "variant_relied_on": "fcfe_target_debt_ratio",202 "variants_agree": true203 },204 "trust": {205 "average_roe": 0.0, "average_required_return": 0.0,206 "roe_minus_required_return": 0.0, "average_jensens_alpha": 0.0,207 "roc_minus_wacc": 0.0, "project_quality_verdict": "...",208 "measure_relied_on": "project|market", "reasoning": "..."209 },210 "matrix": {211 "quadrant": "...", "cash_axis": "surplus|deficit",212 "quality_axis": "good|poor", "fcfe_variant_used": "...",213 "cash_returned_pct_of_fcfe": 0.0, "quality_signals_disagree": false,214 "prescription": "...", "sequencing": "..."215 },216 "sustainability": {217 "annual": [], "dividend_sustainable": true, "first_shortfall_year": null,218 "max_sustainable_dividend_growth": 0.0, "total_buyback_capacity": 0.0219 },220 "cross_checks": {"peers": {}, "market_regression": {}},221 "recommendation": {222 "direction": "increase|hold|reduce|cut",223 "amount": 0.0, "form": "dividend|buyback|special-dividend|none",224 "speed": "immediate|gradual", "rationale": "..."225 },226 "trust_judgment": {227 "extend_flexibility": true,228 "evidence": ["..."],229 "what_would_change_the_verdict": ["..."]230 },231 "execution_constraints": [{"type": "clientele|contractual|regulatory|signaling", "detail": "..."}],232 "constraints_honored": ["..."],233 "reference_data_vintage": {"benchmarks": "2020-01", "regressions": "2014-01"},234 "assumptions": ["..."],235 "warnings": ["..."],236 "status": "complete|blocked|needs_input"237}238```239240Null rules the engine already applies, which you carry into the artifact unchanged. A payout241ratio on negative net income is null. Cash returned as a percentage of a negative FCFE is242null, and the surplus is read in currency instead. Never replace a null with a zero.243244**payout.md** — readable by someone who will not open the JSON. Sections in this order:2452461. The verdict, one paragraph.2472. The cash-returned table, with dividends and buybacks split.2483. The three FCFE variants, each with its surplus or deficit. Add a line naming the variant249 you relied on and why.2504. The trust evidence, both measures.2515. The matrix quadrant and its prescription.2526. The five-year sustainability path.2537. The peer and regression cross-checks.2548. The recommendation: amount, form, speed.2559. What would change the verdict.256257State the reference-data vintage at the foot.258259## Constraints260261- `no-fcff-valuation` and `no-optimal-debt-ratio` (financial-service firms). Do not run the262 standard capex-and-working-capital FCFE formula, and do not use a target debt ratio from a263 WACC-minimizing schedule. Use `bank-fcfe`, where reinvestment is the increase in regulatory264 capital. Say why in the artifact and name the substitute.265- `require-normalized-earnings` (commodity or cyclical firm at a cycle extreme). Do not266 project payout capacity off a peak or trough base year. Ask the statement stage for a267 normalized base through the orchestrator rather than normalizing it yourself.268- `no-standard-growth-model` and `no-earnings-multiple` (negative earnings). Report the269 payout ratio as null and lead the whole analysis on FCFE in currency.270- `require-failure-probability` (young or distressed firms). Say plainly that the payout271 capacity you computed assumes a going concern, and that the going-concern assumption is272 contested at this firm.273- Any other constraint in `classification.json` whose trigger applies to this stage. Refusing274 a forbidden method is correct behaviour. Name the constraint, name the alternative, and275 proceed on the alternative.276- No arithmetic in prose. If a calculation you need has no subcommand, say so in the return277 rather than computing it by hand.278- Never compare dividends alone. Any screen, peer table or regression run without buybacks279 on both sides mis-ranks a US firm by a factor of two or more.280- You cannot ask the user anything. When a decision genuinely needs the user, return281 `needs_input` with the specific question and the options, and let the orchestrator ask.282283## Return284285A structured summary, then one status line as the last line of the answer. Keep it short;286the artifacts hold the detail. The closing line:287288```289payout-policy-analyst: complete | blocked | needs_input290```291292On `complete`, list:293294- The quadrant and the FCFE variant it rests on.295- Cash returned as a percentage of that FCFE.296- Both trust measures, and which one you relied on.297- Whether the dividend is sustainable, and the first shortfall year if not.298- The recommendation: direction, amount, form, speed.299- The trust judgment in one sentence, and what would change the verdict.300- The absolute paths of both artifacts, and the reference-data vintages.301- Findings for other stages. Flag it here when the real problem is investment policy rather302 than payout.303304On `blocked`: the precondition that failed, the exact file or field needed, and who owns it.305306On `needs_input`: the question, the options, and what each option would change in the307verdict.