Company Research and Valuation
Rebuild a broker price target from EPS and its multiple
Rebuild a broker price target by first confirming that the report actually uses an EPS-times-PE method. Match the forecast fiscal year, per-share basis, currency and target horizon, then multiply the supplied inputs and reconcile the result with the reported target. When comparing two reports, show how much of the change comes from EPS and how much from the chosen multiple under an explicit decomposition order.
This guide executes a synthetic target reconstruction and driver bridge. Target prices and method excerpts are external inputs, not assumed fields of a research-report tool. CoTrading’s corresponding workflow remains planned or unverified. A reproduced target is a reconstruction of conditional report arithmetic, not a forecast that a stock will reach that price.
Read the valuation method before selecting a formula
Obtain the target, EPS table and valuation paragraph from the actual report. A report may use DCF, sum-of-parts, book-value multiples, EV-based methods or several components. Do not apply EPS times PE simply because EPS and PE happen to be present elsewhere in the structured summary.
Damodaran’s earnings-multiples chapter explains PE as price per share relative to earnings per share and discusses the importance of earnings definitions. It supports the basic relationship, not the appropriateness of a particular broker’s selected multiple. Rearranging it to EPS times PE does not validate the assumptions behind the report.
Record source locations for each input. If the target or full method is unavailable, mark the reconstruction incomplete. A reference tool returning forecast EPS and PE does not prove it supplies target prices, every valuation adjustment or the underlying report text.
Match forecast year and target horizon separately
The EPS fiscal year and the target’s price horizon are different concepts. A twelve-month target can use a later earnings year; a year-end target can use another specified forecast period. Keep both fields and verify how the report maps them. Do not infer one from the other or roll “next year” silently between reports.
Our fictional AAA reports both use 2027 diluted EPS in CNY and a 31 December 2027 target horizon. The old report uses EPS 1.00 and PE 20, producing target 20.00. The new report uses EPS 1.20 and PE 22, producing target 26.40. These are invented supplied excerpts, not quotations from an actual broker.
The IAS 33 overview illustrates why numerator and diluted-share definitions matter. Confirm the applicable report basis, including splits, issuance assumptions and adjusted earnings. An EPS increase can reflect profit assumptions, share-count assumptions or both; the bridge should call it an EPS effect rather than automatically claiming stronger operations.
Reproduce each target and retain the residual
if row["method"] != "PE":
raise ValueError("unsupported_valuation_method")
for field in ["eps", "multiple", "reported_target"]:
if not row[field].is_finite():
raise ValueError("nonfinite_valuation_input:"+field)
computed = row["eps"] * row["multiple"]
residual = row["reported_target"] - computed
The full example also requires positive PE-method inputs and compatible old/new metadata. It uses a target tolerance of 0.01 CNY. Python’s decimal reference supports the explicit arithmetic and comparison. That tolerance is a declared reproduction policy, not a permission to ignore unexplained valuation components.
The main old and new targets reproduce with zero residual. A separate injected reported target of 27.00 leaves 0.60 beyond the tolerance. Preserve the difference and reopen the method excerpt. Hidden precision, an extra component or a different input may explain it; do not automatically accuse the report of arithmetic error or alter the visible EPS until the target matches.
Build a stated-order change bridge
The example changes EPS first while holding the old multiple, then changes the multiple using new EPS. The EPS component is (1.20 − 1.00) × 20 = 4.00. The multiple component is 1.20 × (22 − 20) = 2.40. Together they equal the target change of 6.40.
| Bridge step | Computed target | Increment |
|---|---|---|
| Old EPS and old PE | 20.00 | starting value |
| New EPS and old PE | 24.00 | +4.00 |
| New EPS and new PE | 26.40 | +2.40 |
This is a reproducible sequential attribution, not a unique causal explanation. The interaction between changing EPS and changing PE is 0.40. Under the EPS-first order it is included in the second, multiple component. State that convention so readers do not compare components from different orders as if one report were wrong.
Reversing the order gives a multiple-first component 2.00 and EPS-second component 4.40. Their sum is still 6.40. Alternatively, show three terms: EPS at old PE 4.00, PE change at old EPS 2.00 and interaction 0.40. Use one declared presentation consistently across the research table.
Execute the reconstruction and failure cases
Download the complete example. Use Python 3.12+, the standard library and synthetic report inputs; run python R543.py. The source is docs/growth/research/round-5/examples/R543.py.
Actual output reproduces 20.00 and 26.40, records change 6.40 and components 4.00 and 2.40, and asserts that they reconcile. It checks the reverse order and interaction separately. The injected target 27.00 is marked not reproduced with residual 0.60.
Additional assertions block a DCF method, a different EPS year, a different currency, basic instead of diluted EPS and a changed target horizon. These are input-meaning failures, not rounding issues. A target horizon change can legitimately alter a broker’s report, but it prevents this clean two-input comparison from attributing everything solely to EPS and PE.
Keep non-PE methods out of this calculation
The DCF counterexample may still contain EPS and a displayed PE for context. It does not authorize calculating its target from those fields. Return the method mismatch and obtain the cash-flow assumptions or appropriate valuation model. A numerically close EPS-times-PE result would not prove the report used that method.
Currency mismatch is another mechanism. A target in one currency and EPS in another need a supported conversion and timing policy. Merely seeing the same company name is insufficient. The fixture refuses the mismatch and contains no FX layer.
Likewise, fiscal-year rollover is not necessarily a same-year earnings upgrade. Preserve the old and new forecast periods, either rebuild each target separately or construct an expanded bridge that explicitly accounts for the horizon change. Do not describe a different-period comparison as a clean matched revision.
Deliver the report arithmetic and its unresolved inputs
The handoff includes method excerpts, original targets, EPS-year and horizon mapping, units, share basis, chosen multiples, reproduced targets, residuals and the driver bridge. Have a reviewer reconstruct both products and the sequential increments from the retained inputs.
Keep missing adjustments and precision questions as concrete follow-up items. If a source correction changes EPS, rerun its product and all dependent bridge components; if the method changes, stop reusing the PE formula. Preserve old report versions rather than updating their inputs in place.
The final conclusion should say whether the supplied target can be reproduced and which numerical assumptions changed. It should not infer that the selected multiple is justified, that an EPS revision will occur or that a target creates an assured return. This is a specific valuation-input check with a calculable change bridge, extending beyond a general reminder to verify AI arithmetic.
Keep inferred inputs distinct from quoted assumptions
An implied multiple calculated by dividing a target by a chosen EPS can be a useful separate observation. It is not evidence that the report explicitly selected that multiple. Do not infer the missing PE from the target, multiply it back by the same EPS and call that an independent reconstruction. The method and supplied assumptions must come from outside that circular calculation.
For a residual, check unrounded inputs and the target’s publication precision before diagnosing a mistake. Then inspect whether the report adds cash, uses a blended year, assigns scenario weights or contains another component. If the required detail is absent, retain the residual and the missing-input question rather than invent a bridge adjustment.
Attach the decomposition order to every component column. A later spreadsheet should not combine an EPS-first component with an EPS-second component from another presentation. The interaction check provides a practical consistency test: the complete chosen bridge must sum to the same old-to-new computed-target change.
When an author or method changes between reports, record that context without pretending the bridge reveals a person’s reasoning sequence. The attribution is arithmetic under declared counterfactual inputs. It describes how the numerical target can be reconstructed, while judgments about the valuation method and business assumptions remain separate research questions.
The PE input contract uses parsed Decimal values, and EPS, multiple and reported target must all pass is_finite() before positivity checks or arithmetic. NaN and either infinity receive nonfinite_valuation_input with the field name. The downloadable self-check covers all three values in all three fields. An infinite target or multiple is an input error, not an unexplained residual that the bridge should try to reproduce.
FAQ
Do EPS and PE fields prove the target uses PE valuation?
No. Read the method and identify every required target component before applying the formula.
Why can two bridge orders produce different components?
The EPS–multiple interaction is allocated to the second step. The total remains the same when the method is consistent.