{"refusals":[{"id":"CN-MTH-001","class":"evidence","title":"No method could be chosen, because the soil and land cover could not be read","fix":"Read the public data again, or enter the site's surfaces by hand.","refuses":"a method selection, because the inputs could not be derived","why":"MS3 is the data adequacy gate and it fails independently of applicability. Nothing was refused about the site: nothing was known about it at a resolution the method runs on.","resolves":"draw or enter the surfaces manually, or retry the land cover and soil retrievals that did not resolve. This is the one gate whose remedy is entirely in the user's hands.","worth":"The whole answer. No method is selected, so no depth and no volume are produced at all.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-MTH-002","class":"policy","title":"The storm is too small for a reliable curve number depth","fix":"Use a larger design storm, or enter a measured infiltration rate. You can also waive this to report the curve number depth.","refuses":"the curve number as the reported answer where the storm is between one and two initial abstractions","why":"In band R1 the method is on the part of its own curve where it is most sensitive to the input nobody measures, so the reported depth is a statement about the cover assumption rather than about the storm. Registry entry method.band_lower prices that sensitivity, and it is cited rather than restated here because its own figures are not reproducible from this engine.","resolves":"compute against a larger design storm, which most jurisdictions also require, or use Green-Ampt with a measured infiltration rate, which has no initial abstraction threshold in it. Waiving releases the curve number depth, which is a real positive number computed the ordinary way and carries the sensitivity with it.","worth":"The curve number depth at this storm, which is small and highly sensitive. The sensitivity figures are the ones on registry entry method.band_lower, and that entry's own test records that they cannot be reproduced from this engine because they do not name the curve number they were computed at. They are cited here and not restated as this taxonomy's own.","registry_key":"method.band_lower","waivable":true,"not_waivable_because":""},{"id":"CN-MTH-003","class":"structural","title":"The storm is smaller than the initial abstraction, so the curve number gives zero","fix":"Use a design storm larger than the initial abstraction, or enter a measured infiltration rate for Green-Ampt.","refuses":"the curve number where the storm does not exceed the initial abstraction","why":"Below Ia the method returns exactly zero by definition and not by computation: Q = (P - Ia)^2 / (P - Ia + S) is defined as zero for P <= Ia, so the answer is a property of the threshold and carries no information about this segment at all.","resolves":"a method with no abstraction threshold in it, which is Green-Ampt with a measured rate, or a design storm above Ia. At CN 61 that is 1.28 in, which is above the storm most green infrastructure is designed against, so this is a common case and not an edge one.","worth":"Exactly zero, and that is the point: the number behind the refusal is a zero produced by a threshold rather than by the site.","registry_key":null,"waivable":false,"not_waivable_because":"waiving it releases exactly 0.000 in, every time, for any site and any cover. The curve number does not have an answer here that is being withheld; it has a threshold, and the zero is the threshold speaking. There is no figure behind the refusal for a signature to release."},{"id":"CN-MTH-004","class":"policy","title":"The curve number is not the reported answer on a drainage area this small","fix":"Route the site through its practice, or use the Green-Ampt result. You can also waive this to report the curve number.","refuses":"the curve number as primary on a drainage area below the practice floor","why":"Within a practice drainage area the curve number does not size the practice, and the half acre floor is where this product decided that stops being true. It is a chosen scale, not a published limit of the method.","resolves":"route the site through the practice, which is what MS2A does when a practice is supplied, or accept the Green-Ampt result the gate selects. Waiving releases the curve number as the headline on a sub floor area.","worth":"The difference between two methods on a small area, which on the cases in this engine's tests runs to a factor of several. The floor decides which of the two is the reported answer.","registry_key":"practice.min_area_acres","waivable":true,"not_waivable_because":""},{"id":"CN-MTH-005","class":"policy","title":"Nearly impervious ground is reported by direct subtraction, not the curve number","fix":"Nothing is needed: a depth is reported. Waive this only if you want the curve number figure reported instead.","refuses":"the curve number on a segment at or above the impervious threshold","why":"CN 98 understates impervious runoff by 34.6 percent at P = 0.4 in, 25.5 percent at 0.6 in and 16.7 percent at 1.0 in against direct depression storage subtraction, so above the threshold the engine reports the subtraction instead. The threshold itself is chosen: 0.95 is a judgment about where the two answers stop being interchangeable.","resolves":"nothing needs resolving for the answer to exist, because direct subtraction produces one. Waiving releases the curve number as the reported figure instead, which is the lower of the two at small depths.","worth":"Up to 34.6 percent of the runoff depth at P = 0.4 in, in the direction that understates it.","registry_key":"method.impervious_threshold","waivable":true,"not_waivable_because":""},{"id":"CN-MTH-006","class":"structural","title":"The curve numbers do not fit this initial abstraction ratio","fix":"Use a ratio of 0.2 or 0.05, or enter the initial abstraction as a depth in inches.","refuses":"a runoff figure computed at an initial abstraction ratio the curve numbers were not tabulated for and no published relation converts to","why":"The ratio and the retention are one calibration and not two settings. Every curve number this engine holds was fitted with the abstraction taken as 0.2 S, and S is the term that absorbed whatever the ratio did not, so a run that states another ratio and keeps the tabulated S evaluates a fitted loss relation against a threshold the fit never saw. On CN 60 at P = 3.16 in that is 82.8 percent high. One alternative convention has a published conversion, 0.05, and the engine applies it; for every other ratio there is no retention on that basis to compute with.","resolves":"state the ratio the tables were fitted at, which is 0.2, or the one published convention this engine can convert to, which is 0.05; or supply the initial abstraction as a measured depth in inches, which makes no claim about the convention the curve numbers carry.","worth":"The difference between the loss term of one calibration and the threshold of another, which on the site this was found on was 35.3 percent of the reported depth and 82.8 percent on one of its segments, both in the direction that overstates runoff.","registry_key":null,"waivable":false,"not_waivable_because":"waiving it would release a number that is not a worse estimate of this site, it is an estimate of nothing: the retention it stands on belongs to a different convention from the abstraction it is compared against, and no signature reconciles two calibrations. The figure a waiver would release is precisely the figure this refusal exists to stop being printed, and a person entitled to a 0.05 answer already has one, converted, without waiving anything."},{"id":"CN-ENG-001","class":"structural","title":"Green-Ampt gives zero because the storm is spread too evenly","fix":"Choose a rainfall distribution, use the storm's real duration, or enter a measured infiltration rate.","refuses":"the Green-Ampt zero produced when the storm's mean intensity does not exceed the saturated conductivity","why":"A storm spread evenly over its duration at a mean intensity at or below the soil's K is accepted by the soil drop for drop at any depth whatsoever (for example, 6 in over 24 hr is 0.25 in/hr against a sandy loam K of 0.4291 in/hr). The zero is an artifact of assuming one constant intensity over the whole storm, not a finding about the site: the same depth in a design temporal distribution exceeds K over part of the storm and produces runoff.","resolves":"supply a rainfall temporal distribution (the example above returns 2.016 in under NRCS Type II), compute against the duration the storm actually falls over rather than the nominal 24 hours, or supply a measured infiltration rate for this soil.","worth":"The gap between exactly zero under the constant intensity assumption and the depth under a design distribution, which is the assumption and nothing else (on the example above, zero against 2.016 in).","registry_key":null,"waivable":false,"not_waivable_because":"waiving it releases a runoff depth of exactly zero and a runoff volume of exactly zero cubic feet, which is not the answer being withheld: it is the constant intensity assumption returning its own definition. What produces a number here is a temporal distribution, and the engine already computes one on the routed path."},{"id":"CN-ENG-002","class":"structural","title":"There is no practice to route the runoff through","fix":"Add the practice in Practices, then compute again.","refuses":"a routed result where no practice was supplied","why":"M-RTE is a routing of a hydrograph through a stage-storage and stage-discharge relation, and both of those relations belong to a practice. With no practice there is no relation to route through.","resolves":"add the practice as designed, or start from a template, in the Practices panel, and compute again.","worth":"Not computable. There is no partial answer here to price: the routing has no object to run against.","registry_key":null,"waivable":false,"not_waivable_because":"there is no stage-storage relation to route through, so waiving produces no hydrograph, no volume split and no depth. What resolves it is a practice, which is an input rather than a permission."},{"id":"CN-ENG-003","class":"structural","title":"Routing needs a storm distribution and a time of concentration","fix":"Choose a storm distribution and enter a time of concentration, then compute again.","refuses":"a routed result with no time axis","why":"A practice is sized on when the water arrives and not only on how much of it there is. Without a temporal distribution and a time of concentration there is no inflow hydrograph, and a routing of a volume with no shape is not a routing.","resolves":"choose a storm distribution and give a time of concentration for the run, or ask for the runoff volume only by a method that needs neither: the curve number, or direct subtraction without a practice.","worth":"Not computable. The routing cannot be run at all, so there is no figure to compare a waived one against.","registry_key":null,"waivable":false,"not_waivable_because":"the routing integrates an inflow hydrograph forward in time, and with no distribution and no time of concentration there is no hydrograph to integrate. Waiving would have to invent the shape of the storm, and the shape is worth a factor of about three in every rate based result between Type IA and Type II."},{"id":"CN-ENG-004","class":"structural","title":"There is no runoff to route through the practice","fix":"Resolve the refusal on the runoff depth first; it is listed on this result.","refuses":"a routing where the loss method produced no runoff at all to route","why":"The inflow to the practice is exactly zero by construction rather than by measurement. Routing nothing through a practice reports a practice that captured everything, which is a stronger claim than the zero it came from.","resolves":"resolve the loss method's own refusal first. The warning on the loss series names it, and it is CN-ENG-001 on the Green-Ampt path and CN-MTH-003 on the curve number path.","worth":"A reported capture of 100 percent of nothing. The practice would be credited with the whole of an inflow that was itself an artifact.","registry_key":null,"waivable":false,"not_waivable_because":"the number waiving would release is a 100 percent volume reduction, computed by dividing a zero inflow by itself. The refusal upstream is the one to argue with, and it has its own id and its own class."},{"id":"CN-ENG-005","class":"structural","title":"The change cannot be shown because the two conditions use different methods","fix":"Tick \"Both conditions by the curve number method\" beside Compute and compute again.","refuses":"a delta computed across two different loss methods","why":"Two methods disagree with each other for reasons that have nothing to do with the site. CN 98 against direct subtraction is 34.6 percent apart at P = 0.4 in with the site held fixed, and that difference reported as a reduction is a stormwater benefit nobody built.","resolves":"compute both sides by the method applicable to the more restrictive band, so the difference between them is the site change and nothing else.","worth":"Up to 34.6 percent of the runoff depth on the impervious pair at small depths, all of it an artifact of the method change.","registry_key":null,"waivable":false,"not_waivable_because":"the difference between two methods is not a quantity this site has. Waiving releases a number that is the sum of the practice's effect and the method change, with no way to separate them, so the released figure answers a question nobody asked. Recomputing one side by the other's method is arithmetic the engine will do on request, and it is the actual remedy."},{"id":"CN-ENG-006","class":"structural","title":"The change cannot be shown because the method changed between the conditions","fix":"Compute both conditions by the same method, or read the two results side by side.","refuses":"a delta where the method selection gate moved between the two conditions","why":"A routed post development case against an unrouted pre development case is permitted when the routing's inflow was computed by the method the other side reports. When the selection gate moved, because the proposed site is less impervious or smaller than the floor, the two sides are not commensurable whatever the practice does.","resolves":"hold the selection fixed across the two conditions, or report the two sides separately with their own badges and no difference between them.","worth":"The whole of the reported reduction, which in this case carries a method change and a practice in one figure.","registry_key":null,"waivable":false,"not_waivable_because":"the released number would be a practice benefit added to a gate change, and the two cannot be separated in one number. Nothing a person can attest to makes them separable, because the mixing happened in the arithmetic and not in the evidence."},{"id":"CN-ENG-007","class":"structural","title":"The change cannot be shown between a routed and an unrouted Green-Ampt result","fix":"Compute the storm at its distribution's own duration, or route both conditions.","refuses":"a delta between routed and unrouted Green-Ampt, which is one method by name and two computations by nature","why":"Where the run's duration is not the storm distribution's, the unrouted side runs Green-Ampt at the storm's mean intensity and the routed side runs it at the distribution's varying intensity. The message gives both figures for this run.","resolves":"run the storm at the distribution's own duration, so both sides are computed under it, or route both sides.","worth":"The whole of the apparent reduction can be the loss model changing under the same name. The message gives this run's two figures.","registry_key":null,"waivable":false,"not_waivable_because":"the two sides are not the same computation, so their difference is not a reduction. Waiving would release a benefit on a site where nothing was built, and the remedy is arithmetic the engine already does when the storm is run at the distribution's duration."},{"id":"CN-ENG-008","class":"structural","title":"A percent reduction cannot be taken from zero existing runoff","fix":"Read the change in depth and volume instead, or use a storm that makes runoff on the existing condition.","refuses":"a percentage reduction from a base of zero","why":"The pre development case produced no runoff by this method, so the denominator of the percentage is zero. There is no percentage that describes going from nothing to nothing, and no percentage that describes going from nothing to something.","resolves":"report the absolute reduction in depth and volume, which are both defined, or compute the pre development side at a storm that produces runoff on it.","worth":"Not computable, and that is the refusal. The absolute reduction beside it is computed and is reported.","registry_key":null,"waivable":false,"not_waivable_because":"division by zero does not have an answer that a signature supplies. Waiving would have to pick a denominator, and any denominator picked here is invented. The absolute reduction is already reported and is the figure that means something."},{"id":"CN-ENG-009","class":"structural","title":"CurveNumber does not compute this method","fix":"Enter the result from your jurisdiction's own method, or choose the curve number, direct subtraction or Green-Ampt.","refuses":"a result from a method this engine does not implement","why":"M-JUR is a jurisdictionally published equation and this engine holds no jurisdiction layer, so it has neither the equation nor the coefficients it takes.","resolves":"enter the jurisdiction's own result, or select a method this engine implements, which is the curve number, direct subtraction, Green-Ampt or a routing of one of those.","worth":"Not computable here by definition. The equation exists in a manual this product has not read.","registry_key":null,"waivable":false,"not_waivable_because":"there is no implementation to release a number from. A waiver would produce nothing at all, because the refusal is about what this engine contains rather than about what it is willing to report."},{"id":"CN-ENG-010","class":"evidence","title":"Green-Ampt needs this site's soil, and none was entered","fix":"Enter the soil's conductivity, capillary head and moisture deficit with their source, or waive this to use the sandy loam default.","refuses":"a Green-Ampt runoff depth on a site whose caller supplied no soil, computed instead from the sandy loam texture class default","why":"Green-Ampt takes conductivity, capillary head and moisture deficit as inputs, and those are the answer. The engine held a sandy loam as the fallback for a caller who passed none, so a site on clay and a site on sand returned the depth of a site on sandy loam and the badge said M-GA as though the site's own soil had been read. Gates MS4 and MS5 route ordinary small storm runs here, so this was the reported answer on the storms a water quality volume is sized from. The SSURGO retrieval this product already performs resolves a hydrologic soil group and not a conductivity, and no published crosswalk from the group letter to the three Green-Ampt parameters exists that this product is willing to write down, so the parameters are missing rather than derivable.","resolves":"enter the site's Green-Ampt soil (saturated conductivity, capillary head and moisture deficit, with where they came from, such as a field infiltration test or a geotechnical report); or file this waiver to attest that the sandy loam texture class default applies at this site, the same attestation a practice needs before a texture class rate may size it.","worth":"A factor of 2,700 at the small end. 1 in over 1 hr returns 0.000146 in on the sandy loam default and 0.398 in on a clay loam at K = 0.05 in/hr, psi = 12 in. The default is the lower of the two on every soil tighter than sandy loam, which is most of the ones a stormwater practice is built on, so the error runs in the direction that understates the volume.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-PRC-001","class":"policy","title":"The practice drains too large an area for its size","fix":"Deepen the practice, add pretreatment or a second practice, or split the drainage area. You can also waive this.","refuses":"the sizing conclusion on a practice loaded above the contributing area ratio ceiling","why":"Above the ceiling the surface loading rate governs rather than the volume, and clogging, scour across the media surface and pretreatment capacity are not modeled anywhere in this engine. The ceiling is set at the ratio where the treatment volume alone fills the reference profile to its overflow, which is a property of the profile and is recomputed for each practice.","resolves":"deepen the profile, add pretreatment and a second practice in series, or divide the drainage area. A jurisdictional maximum supersedes the default ceiling outright.","worth":"The capture check and the storage surplus, which are withheld while the refusal stands. Both are computable and are what a waiver releases.","registry_key":"practice.loading_ratio_refuse","waivable":true,"not_waivable_because":""},{"id":"CN-PRC-002","class":"policy","title":"The practice takes longer to empty than the drawdown limit","fix":"Store less depth, enlarge the outlet, or enter your manual's drawdown limit. You can also waive this.","refuses":"the capture conclusion on a practice that takes longer than the drawdown limit to empty","why":"Storage that stands full is not capacity for the next storm. The 48 hour figure is the most widely required one and 72 hours is the common alternative, and no specific manual text was checked in setting the default, so it ships as a jurisdictional value the user confirms.","resolves":"reduce the stored depth, raise the design rate with more field testing, or enlarge the outlet. Where the governing manual publishes its own limit that figure supersedes and no waiver is needed: enter it as the practice's drawdown limit.","worth":"The capture check and the storage surplus. Moving the limit from 48 to 72 hours raises the storable depth at a design rate of 0.5 in/hr from 24 to 36 in and drops the bottom area needed for 1 in over half an acre of pavement from 908 to 605 sq ft.","registry_key":"practice.drawdown_limit_hours","waivable":true,"not_waivable_because":""},{"id":"CN-PRC-003","class":"evidence","title":"Drawdown needs a measured infiltration rate or another outlet","fix":"Enter a field-tested infiltration rate at the practice bottom, or add an underdrain or outlet structure.","refuses":"the drawdown and the capture volume on an infiltration practice with no measured rate and no other outlet","why":"Infiltration is the only outlet on this practice and nobody has measured it. Sizing from a texture class rate is the most common way these fail in the field: the facility ponds for a week and the drawdown that was reported was never a measurement of anything. A texture class rate is a regional average over a map unit nobody dug on this site.","resolves":"a field infiltration test at the proposed bottom elevation, by a method the governing jurisdiction accepts, entered as the practice's measured infiltration rate. Failing that, add an underdrain and size the practice as a filter, or an outlet structure and size it as detention, and neither needs a native rate at all.","worth":"The whole sizing conclusion. Waiving computes it at the texture class rate the survey publishes for this map unit, which is what the attestation is a claim about.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-PRC-004","class":"evidence","title":"Infiltration is not credited without a measured rate","fix":"Enter a field-tested infiltration rate if you want infiltration credited. As a filter or detention practice nothing more is needed.","refuses":"the infiltrated volume on a practice that drains through an underdrain or an outlet structure and has no measured rate","why":"This design is a sound filter or detention facility and its drawdown and capture volume are computed with the infiltration term at zero, which is the conservative direction. The one figure withheld is the infiltrated volume, which is what a retention credit is claimed against, and it is withheld rather than returned as zero because zero is also a claim about this site and the site may well infiltrate.","resolves":"a field infiltration test at the proposed bottom elevation, entered as the practice's measured infiltration rate, if a retention credit is wanted. As a filtration or detention practice this design needs no native rate at all.","worth":"The retention credit, which is the difference between a filtration practice and an infiltration one in every manual that distinguishes them. On the reference bioretention cell the infiltrated share of a 1 in storm is the majority of the volume.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-PRC-005","class":"structural","title":"Drawdown time cannot be found through an outlet controlled by a weir at its low end","fix":"Add a low orifice or an underdrain to the outlet, or enter a measured infiltration rate.","refuses":"a drawdown time through an outlet structure that is weir controlled at its own low end","why":"A weir passes the last of the water as the three halves power of the head, so the time to empty is the integral of dS over h^1.5, which does not converge. The facility drains most of its live storage quickly and then never quite finishes.","resolves":"give the structure a low stage orifice, which drains as the square root of the head and does empty in finite time, or an underdrain, or a measured infiltration rate. The peak attenuation is still computed by the routing, which integrates forward in time and needs no definition of empty.","worth":"Nothing, and that is the point. Any figure reported here is a property of the integration step rather than of the design: a finer rule returns a larger answer every time, without bound.","registry_key":null,"waivable":false,"not_waivable_because":"the integral diverges, so there is no drawdown time to release. A waived figure would be whichever number the step count happened to produce, and halving the step would change the answer on the report a person had already signed. This is the reason an extended detention release is specified as an orifice and not as a notch."},{"id":"CN-PRC-006","class":"structural","title":"Drawdown time cannot be found because the practice has no outlet below its overflow","fix":"Add an outlet below the overflow, lower the underdrain, or enter a measured infiltration rate.","refuses":"a drawdown on a practice with no outlet at all below the overflow","why":"There is no infiltration, and the underdrain and the outlet structure, if either is present, control at or above the water surface. Everything that enters leaves over the overflow, which is a depression and not a practice.","resolves":"give an outlet structure with a stage below the crest, lower the underdrain invert, or supply a measured infiltration rate.","worth":"Nothing. There is no route out of the practice below the crest, so there is no time to empty and no volume treated.","registry_key":null,"waivable":false,"not_waivable_because":"nothing drains the practice, so the drawdown is not long, it is undefined: the water leaves by going over the top. Waiving cannot open an outlet, and an outlet is what the sizing is a statement about."},{"id":"CN-PRC-007","class":"structural","title":"CurveNumber cannot size a green roof yet","fix":"Enter your manual's green roof credit as a reduction in the impervious area.","refuses":"a green roof, for want of an evapotranspiration term","why":"A green roof's whole performance between storms is evapotranspiration recovering the medium's storage, and this module has no ET term, no antecedent moisture accounting and no time axis longer than a single storm.","resolves":"an evapotranspiration model with an interstorm accounting, which is a category of computation this engine does not have rather than a coefficient it is missing. Until then, size the roof from the governing manual's own retention figure entered as a reduction in contributing impervious area.","worth":"See registry entry practice.green_roof_refused, which prices the span between a full and an empty medium at the start of the storm.","registry_key":"practice.green_roof_refused","waivable":false,"not_waivable_because":"the model has no evapotranspiration term, so waiving runs a green roof as a shallow lined basin that never dries out between storms. That answer is not conservative and it is not the practice: it credits none of what a green roof does and all of what it does not."},{"id":"CN-PRC-008","class":"structural","title":"CurveNumber cannot size rainwater harvesting yet","fix":"Enter your manual's credit for the system as a reduction in the impervious area.","refuses":"a rainwater harvesting system, for want of a demand series","why":"A cistern's performance is its drawdown between storms and that is a monthly demand series, which this module has no time axis to hang. The water drawn from a cistern also leaves the site as neither runoff nor recharge, which is a fifth volume category beside the four this module carries.","resolves":"a demand series and a fifth volume category for water that leaves as neither runoff nor recharge. Until then, enter the governing manual's own credit as a reduction in contributing impervious area.","worth":"See registry entry practice.rainwater_demand_refused. The demand is the whole of the performance and it is a property of the building rather than of the tank.","registry_key":"practice.rainwater_demand_refused","waivable":false,"not_waivable_because":"a cistern with no demand series is a tank that fills once and never empties, so waiving reports a practice that captures its own volume and nothing more, for every storm of the year. Folding the drawn water into the infiltrated volume instead would claim groundwater recharge for water that went down a drain."},{"id":"CN-PRC-009","class":"structural","title":"This practice earns only a local credit, and no local rules are on file","fix":"Add your local manual under Local rules, or enter its credit as a reduction in the impervious area.","refuses":"a credit only practice, for want of a jurisdiction to publish the credit","why":"A filter strip, a grass channel, sheet flow to a conservation area, a compost amendment and a disconnection have no storage to route. What they have is a credit in a manual, and the credit depends on a flow path length, a receiving slope and a table this product does not hold.","resolves":"a jurisdiction layer, which this product does not have. Until there is one, enter the governing manual's own credit as a reduction in contributing impervious area, which keeps the arithmetic in the engine and the rule with the person who is allowed to apply it.","worth":"Between 0.0 and 125.0 cu ft of the 1,815.0 cu ft required over half an acre of impervious cover at a 1 in treatment depth, which is between 0.0 and 6.9 percent of the requirement, and this engine cannot narrow that span by a cubic foot.","registry_key":"practice.jurisdictional_credit_refused","waivable":false,"not_waivable_because":"there is no storage and no outlet, so there is no routing to release. A number produced here would be a jurisdictional rule somebody guessed at, wearing this engine's provenance. The credit exists in a manual and the manual's own figure is the input, entered where the arithmetic can use it."},{"id":"CN-RTE-001","class":"structural","title":"This method cannot be routed through a practice","fix":"Use the curve number, direct subtraction or Green-Ampt for this site.","refuses":"a routing of a method that has no incremental loss series","why":"M-NONE is a refusal and has nothing to route. M-JUR is a published equation with no time axis in it, so there are no increments to convolve.","resolves":"resolve the site to a method that has an incremental form, which is the curve number, direct subtraction or Green-Ampt.","worth":"Not computable. There is no series to route, so there is no hydrograph to compare a waived one against.","registry_key":null,"waivable":false,"not_waivable_because":"the routing convolves an incremental loss series and this method does not have one. Waiving would have to invent the shape of the losses through the storm, which is the entire input to the routing."},{"id":"CN-RTE-002","class":"policy","title":"The routing time step is too long for this practice","fix":"Leave the time step blank so a suitable one is chosen, or enter a shorter one. The runoff volume is still reported.","refuses":"a routing at a time step above the practice response time ratio this product refuses at","why":"At the refusal ratio a single step drains the practice from its crest and the recession is described by its two endpoints. The measured peak error runs from 6 to 18 percent low and it is one sided, so it is not a margin. The ratio itself is a chosen threshold.","resolves":"route at a step at or below the guidance ratio times the practice's response time, which the message computes. The volume balance closes at any step, so a volume based result is available without waiving anything.","worth":"6 to 18 percent of the peak discharge, one sided low. The volume leaving the site moved by 1.5 percent across a factor of forty in the step on the trench in the tests, and the infiltrated share by 10 percent of itself.","registry_key":"routing.time_step_refuse_ratio","waivable":true,"not_waivable_because":""},{"id":"CN-RTE-003","class":"structural","title":"The practice is too small to hold the routed volume","fix":"Check the practice's footprint, depth and units, and the inflow.","refuses":"a stage for a storage volume the practice's own curve does not reach","why":"The stage-storage curve was extended to a million feet and still does not hold the volume asked of it, which means the volume asked for is not a volume this practice has a stage for.","resolves":"check the practice geometry and the inflow. A practice whose curve does not reach the routed volume by this margin is almost always a units error or a footprint entered in the wrong quantity.","worth":"Not computable. The inversion has no root, so there is no stage to report.","registry_key":null,"waivable":false,"not_waivable_because":"the equation being inverted has no solution. Waiving does not make one exist, and any stage returned would be the last value the bisection happened to hold."},{"id":"CN-RTE-004","class":"structural","title":"The practice's outlet could not be solved at one step","fix":"Check the outlet stages and sizes, and the inflow against the practice's capacity.","refuses":"a routing step whose stage equation has no root","why":"Either the inflow is orders of magnitude beyond anything this practice can pass, or the stage-discharge relation has stopped increasing with stage, which makes the routing equation non monotonic and its root ambiguous.","resolves":"check the outlet definition for a stage that reduces discharge as the head rises, and check the inflow against the practice's own capacity.","worth":"Not computable. Without a root there is no stage and therefore no outflow for this step.","registry_key":null,"waivable":false,"not_waivable_because":"the routing equation has no solution at this step, so there is no water level to release. Continuing past it would lose water and still report a closed volume balance, which is the quiet failure this check exists to prevent."},{"id":"CN-HYD-001","class":"structural","title":"The peak flow needs a time of concentration","fix":"Enter a time of concentration in hours. The runoff volume is reported without it.","refuses":"a peak discharge with no usable time of concentration: missing, zero, negative or not a number","why":"The unit hydrograph peaks at 0.6 Tc plus half the time step, so without a positive Tc there is no time to peak. A Tc that is only short is not refused: it is raised to the TR-55 minimum held in peak.min_tc_hours and the raise is stated on the result.","resolves":"supply a time of concentration in hours. The volume does not depend on Tc and is reported either way.","worth":"The peak discharge and everything computed from it. The volume is unaffected and is reported either way.","registry_key":null,"waivable":false,"not_waivable_because":"there is no time of concentration to release. A waiver cannot supply the time to peak the unit hydrograph needs; only a Tc can."},{"id":"CN-HYD-002","class":"policy","title":"The routing time step is too long for this site's time of concentration","fix":"Leave the time step blank so one that passes is chosen, or enter a shorter one. The runoff volume is still reported.","refuses":"a hydrograph at a time step above the fraction of Tc this product refuses at","why":"A hydrograph computed at this ratio misses its own peak: at the refusal ratio the computed peak runs 8 to 24 percent below the same case at a 0.005 hr step, and it gets worse without bound as the step grows.","resolves":"use a time step of Tc / 7.5 or less (the message gives the number for this Tc), or leave the step blank so one that passes is chosen. The volume is unaffected, so a volume based result can be reported without waiving anything.","worth":"8 to 24 percent of the peak discharge at the refusal ratio, one sided low, and unbounded above it.","registry_key":"hydrograph.time_step_refuse_ratio","waivable":true,"not_waivable_because":""},{"id":"CN-HYD-003","class":"structural","title":"This peak rate factor does not apply to the curved unit hydrograph","fix":"Use the triangular unit hydrograph with this factor, or use the standard factor of 484.","refuses":"a peak rate factor other than the published one applied to the curvilinear unit hydrograph","why":"The dimensionless table in this module is itself a 484 curve. Rescaling it to unit volume cancels the factor exactly, so the ordinates come back identical and the caller believes they have run a flat coastal watershed.","resolves":"use the triangular unit hydrograph shape, where the factor sets the time base and genuinely changes the answer, or supply the NRCS dimensionless curve published for that factor, which CurveNumber does not hold.","worth":"Nothing at all, exactly. The waived hydrograph is ordinate for ordinate the same as the published one, which is why reporting it under another factor is a false statement rather than an approximate one.","registry_key":null,"waivable":false,"not_waivable_because":"the volume rescale divides the factor straight back out, so a waived run returns the 484 hydrograph while the report names the other factor. There is no number here being withheld; there is an operation that has no effect, and reporting it as though it did is the failure."},{"id":"CN-DST-001","class":"evidence","title":"More than one storm distribution applies in this region","fix":"Choose the distribution type for the county (TR-55 Figure B-2), or enter your jurisdiction's own.","refuses":"a distribution type for a region that carries more than one","why":"TR-55 Figure B-2 assigns the type by county and the boundary runs through this state, so a state level answer would be wrong for part of it. Which side of the boundary the site is on is a fact about the site that this module does not hold.","resolves":"name the type, read off TR-55 Figure B-2 for the county, or enter the jurisdiction's own distribution.","worth":"The peak 30 minute fraction of Type II is roughly three times that of Type IA, and every rate based result scales with it.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-DST-002","class":"evidence","title":"No storm distribution is on file for this region","fix":"Choose the distribution type for the county (TR-55 Figure B-2), or enter your jurisdiction's own.","refuses":"a distribution type for a region this module does not hold","why":"The region list here is deliberately coarse and this module does not hold Figure B-2 itself, so it refuses rather than guessing.","resolves":"name the type from TR-55 Figure B-2 for the county, or enter the jurisdiction's own distribution.","worth":"The whole rate based result. Type II against Type IA is roughly a factor of three in the peak 30 minute rainfall fraction.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-DST-003","class":"structural","title":"The storm distribution cannot be looked up from the map","fix":"Choose the distribution type for the county yourself.","refuses":"a distribution type resolved from a coordinate","why":"Figure B-2 is a county resolution map and this module does not hold it in any form, digitised or otherwise. There is no table here to look a coordinate up in.","resolves":"a digitised Figure B-2 or the NOAA Atlas 14 regional temporal distributions, neither of which this product holds. Until then the type is named by the user, which get() does directly.","worth":"Type II for anything east of the Cascades would be right most of the time and silently wrong on the Gulf coast, the Atlantic coast and through California, which is exactly the population of sites where practices get built.","registry_key":null,"waivable":false,"not_waivable_because":"there is no map in this module to consult, so a waiver has nothing to release. A user who knows the type does not need a waiver either: naming it is an ordinary input, and get(name) takes it."},{"id":"CN-DST-004","class":"evidence","title":"NRCS does not assign this storm distribution to this region","fix":"Choose the type TR-55 Figure B-2 shows for the site's county, or enter your jurisdiction's own.","refuses":"a distribution type that NRCS does not assign to the named region","why":"Using the wrong type is not a small error: the peak 30 minute fraction of Type II is roughly three times that of Type IA. The region table here is coarse, so a site near a boundary may genuinely be assigned the other type by Figure B-2.","resolves":"read the type off Figure B-2 for the county the site is actually in, or register the jurisdiction's own distribution, which decides where its own curve applies and is never checked against this table.","worth":"Roughly a factor of five in the peak 30 minute rainfall fraction, and every rate based result scales with it.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-XWK-001","class":"structural","title":"This land cover is not rain falling on ground, so it has no curve number","fix":"Leave the area out of the drainage area, or treat it as storage.","refuses":"a curve number for a class that is not a rainfall to runoff question","why":"TR-55 has no open water row and open water is not a surface that abstracts rainfall. Perennial ice and snow is the same case. Reading either as a cover type is a category error rather than a gap in the table.","resolves":"treat the area as storage and route it, or exclude it from the contributing area, which the segmentation reports as unmapped with its acreage.","worth":"See registry entry crosswalk.water_as_storage. The area is reported with its acreage either way, so nothing is hidden by the refusal.","registry_key":"crosswalk.water_as_storage","waivable":false,"not_waivable_because":"there is no TR-55 row to release. Waiving would have to pick a cover type for a surface the table does not describe, and the nearest rows differ from each other by more than the choice is worth. What the area needs is routing or exclusion, and both are decisions about the site rather than about the table."},{"id":"CN-XWK-002","class":"structural","title":"This land cover has no row in the TR-55 tables","fix":"Enter a curve number from your local manual, or leave the area out.","refuses":"a curve number for a class with no TR-55 cover row","why":"Woody and herbaceous wetlands have no row in TR-55. The herbaceous cover invites a mapping to pasture, which is a different hydrology entirely: a wetland's runoff response is governed by its water table and not by its cover.","resolves":"a locally published wetland curve number, entered directly, or exclusion of the area from the contributing catchment.","worth":"The pasture rows a reader would reach for span CN 39 to 89 across conditions and groups, and none of them describes a wetland.","registry_key":null,"waivable":false,"not_waivable_because":"the table has no row for this cover, so there is nothing to release. A waiver would be a choice of substitute row made by whoever signed it, recorded as though the table had supplied it."},{"id":"CN-XWK-003","class":"structural","title":"This land cover is outside the region the TR-55 tables describe","fix":"Enter the ground by hand from a method fitted for your region; the rest of the site is still computed.","refuses":"a curve number for a class outside the geography the tables describe","why":"Dwarf scrub, sedge herbaceous, lichens and moss are Alaska classes. TR-55 describes none of these covers, and the runoff response of tundra over permafrost is not the response of any row in the table.","resolves":"a method fitted for the region, which this engine does not hold. The area is reported as unmapped with its acreage so the site can be evaluated on the part the tables do describe.","worth":"The whole of the area's contribution. There is no row that is approximately right, because the table describes a different continent's hydrology.","registry_key":null,"waivable":false,"not_waivable_because":"the tables do not cover this geography, so there is no row to release under any signature. What resolves it is a different method, which is a different product rather than a permission."},{"id":"CN-XWK-004","class":"policy","title":"This land cover is too small a share of the site to count separately","fix":"Enter the surfaces by hand if the small area matters, or waive this to keep it separate.","refuses":"a separate segment for a land cover class below the sliver share","why":"Three percent is one pixel of the thirty this product treats as the minimum for a reportable share, so a class below it on a site at that minimum is a single pixel sitting inside the boundary discretization error. The threshold is chosen and the folding is recorded with the class and the acreage that moved.","resolves":"a finer land cover product, where the same three percent is hundreds of pixels and is a feature of the site rather than a raster edge. Waiving keeps the class as its own segment at its measured share.","worth":"Up to 19.7 percent of the distributed runoff depth at P = 3 in on the widest pair in the crosswalk, brush in fair condition at CN 56 folded into newly graded barren at CN 86 on group B, and 3.0 percent on a typical pair.","registry_key":"crosswalk.sliver_fraction","waivable":true,"not_waivable_because":""},{"id":"CN-XWK-005","class":"structural","title":"A dual soil group needs one letter before a curve number is found","fix":"Answer the soil group question on the Public data step.","refuses":"a curve number from a dual hydrologic soil group","why":"A dual group such as B/D is two answers and the choice between them is the segmentation layer's, recorded in registry entry hsg.dual_resolution. If this module picked one as well the choice would be made twice and recorded nowhere.","resolves":"resolve the group upstream, in segmentation, where the choice is recorded as a Value with its own provenance, and pass the single letter here.","worth":"A factor of 3.42 in runoff at P = 3 in on pasture, group B against group D: 0.365 in against 1.250 in.","registry_key":"hsg.dual_resolution","waivable":false,"not_waivable_because":"the choice is not the land cover step's to make, so waiving here would record the decision in the one place a reviewer does not look for it. The same choice is available as the soil group answer for that map unit, which records who made it and why."},{"id":"CN-XWK-006","class":"policy","title":"Too few land cover squares cover this site to report its shares","fix":"Check the cover shares against the plan, or enter the surfaces by hand.","refuses":"a reportable land cover share from fewer pixels than the minimum","why":"The standard error of a share estimated from 30 pixels is 9.13 percentage points at its worst, which moves a composite curve number by roughly 4 units, and the boundary discretization is a second error of about twice the pixel size over the site's side length. The minimum is a chosen figure and it is generous: a quarter acre lot is 1.12 pixels and can never clear it.","resolves":"a higher resolution land cover product, a larger area, or surfaces entered by hand. At present this threshold is reported as a caution on the result rather than as a refusal.","worth":"9.13 percentage points on the impervious fraction at the threshold itself, worth roughly 4 composite curve number units and more than a tenth of the design volume. See registry entry landcover.min_pixels.","registry_key":"landcover.min_pixels","waivable":true,"not_waivable_because":""},{"id":"CN-SEG-001","class":"policy","title":"Part of the site has no known soil group, so there is no curve number for the whole site","fix":"Answer the soil group question on the Public data step or accept the most likely group, enter that ground by hand, or waive this to report the known part.","refuses":"one headline number for a site with a material share of unresolved soil","why":"A depth computed over the resolved share and applied to the whole site is wrong by the gap fraction before anyone asks what is in the gap, and by about twice that where the gap is the wetter group: resolving the rest to B and letting the gap be D is 20.1 percent low at a tenth unresolved. The tenth is a stated judgment rather than a calibration.","resolves":"answer the gap. Each map unit without a soil group is listed with its acreage, and answering it records who supplied the group and why. Waiving reports the headline over the resolved share with the gap stated beside it.","worth":"At least the gap fraction of the design volume, and about twice that where the gap is the wetter group: 20.1 percent low at a tenth unresolved on the B against D pairing, 10.6 percent at a twentieth.","registry_key":"segmentation.material_gap_fraction","waivable":true,"not_waivable_because":""},{"id":"CN-SEG-002","class":"structural","title":"No part of the site has a known soil group","fix":"Give a soil group for at least one map unit on the Public data step, from a report or a boring.","refuses":"any curve number for a site where no part has a resolved soil group","why":"There is no cell of TR-55 Table 2-2a to read. The curve number is a function of a cover type and a hydrologic soil group, and this site has no group anywhere on it.","resolves":"a hydrologic soil group for at least one map unit, from a geotechnical report, a neighboring rated map unit you will attest to, or a soil boring, entered as the answer for that map unit.","worth":"Everything. Without a group there is no row of the table to read, so there is no curve number and no runoff depth.","registry_key":null,"waivable":false,"not_waivable_because":"the table is indexed by hydrologic soil group and this site has none, so waiving does not select a row: it would have to invent one. Open space in good condition spans CN 39 on group A to CN 80 on group D, and at P = 3 in that is 0.000 in against 1.250 in, because the A end of the range is below its own initial abstraction of 3.128 in. There is not even a ratio between the two ends, let alone a conservative default to fall back on. The letter is the input, and CN-SEG-003 is where an attestation answers for it."},{"id":"CN-SEG-003","class":"evidence","title":"The soil survey gives no soil group for this map unit","fix":"Enter the group from a geotechnical report, a boring or a neighboring rated unit, and say where it came from.","refuses":"a hydrologic soil group for a map unit the survey rates none for","why":"The survey publishes no group for this map unit. That is a missing measurement about the ground rather than a threshold this product chose, and the user may well know the site is fill over a known parent material.","resolves":"a hydrologic soil group for this map unit, from a geotechnical report, a neighboring rated map unit you are willing to attest to, or a soil boring. Enter it as the answer for this map unit, which records who supplied it and why.","worth":"A factor of 3.42 in runoff at P = 3 in between group B and group D on pasture, over whatever share of the site the map unit covers.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-SEG-004","class":"evidence","title":"Part of the site is outside every soil survey area","fix":"Nothing is needed if the share is small. Otherwise read the public data again or enter that ground by hand.","refuses":"a hydrologic soil group for a pixel outside every soil polygon","why":"The soil polygons are supposed to tile the area of interest. Ground they do not cover has no soil group: the boundary may run beyond the survey area (across a national border or into open water), or the soil query returned less geometry than the site.","resolves":"a soil group attested for that ground, a check that the boundary does not run beyond the survey area, or reading the soil survey again over the full area where the soil notes say geometry was dropped.","worth":"The share of the site it covers, at up to a factor of 3.42 in runoff between the groups it might have been.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-SEG-005","class":"policy","title":"Water or wetland covers part of the site and has no TR-55 curve number","fix":"Answer each piece of water or wetland on the Public data step, or waive this to report the rest.","refuses":"one headline number for a site where land cover with no TR-55 row (open water, wetlands) is left unanswered over a material share","why":"TR-55 has no row for open water or wetlands, so that ground is in no area until an engineer says how to treat it. A volume computed over the rest of the site and read as the site's is short by at least that share.","resolves":"answer each piece of ground: for water, rain on the water surface runs off (CN 98) or the water is left out of the drainage area as storage; for wetlands, a curve number from the local manual, a chosen TR-55 row, or leaving it out as storage. Waiving reports the headline over the rest of the site with the unanswered ground stated beside it.","worth":"At least the unanswered share of the design volume. On a site otherwise at CN 69 on group B, a pond over a tenth of the area read as CN 98 gives 0.880 in against 0.670 in at P = 3 in.","registry_key":"segmentation.material_gap_fraction","waivable":true,"not_waivable_because":""},{"id":"CN-SEG-006","class":"policy","title":"The site is too small for land cover read from 30 m squares","fix":"Classify the aerial photograph (NAIP) and confirm its classes as areas, enter the surfaces by hand, or waive this with a reason.","refuses":"derived land cover as the site's surfaces on a boundary only a few 30 m pixels in size","why":"The national land cover is 30 m. Under three pixels the cover of the whole site is read off one or two squares that mostly lie outside it.","resolves":"draw or type the surfaces (roof, pavement, lawn) for the site, or waive this with a reason.","worth":"The cover shares can be anything from all lawn to all pavement for the same lot: 0.670 in against 2.77 in at P = 3 in on group B.","registry_key":"segmentation.min_pixels","waivable":true,"not_waivable_because":""},{"id":"CN-SEG-007","class":"policy","title":"The areas do not add up to the drainage area","fix":"Correct the areas so they add up to the boundary, or waive this with a reason if the difference is intended.","refuses":"a runoff volume for a condition whose areas do not add up to the drainage area","why":"A runoff volume is a depth times an area. When the areas of a condition add up to more or less than the drawn boundary, the volume and the peak describe different ground from the site.","resolves":"correct the areas so they add up to the boundary (a typed area in square feet instead of acres is the common slip), or waive this with a reason if the difference is intended.","worth":"The volume is off by the same share as the area: two percent at the threshold, a factor of 43,560 for square feet typed as acres.","registry_key":"site.area_closure_refuse","waivable":true,"not_waivable_because":""},{"id":"CN-GEO-005","class":"policy","title":"The boundary is larger than the small-watershed limit","fix":"Draw the site rather than the region, or split it into drainage areas. If the size is intended, waive this with a reason; the waiver is highlighted in the report.","refuses":"a runoff volume and peak for a boundary larger than the small-watershed limit","why":"The TR-55 methods this product uses are for small watersheds. Above the limit a single curve number, time of concentration and unit hydrograph stand for ground that has several of each, and the figures describe no one part of it.","resolves":"draw the site rather than the region, or split it into drainage areas of their own, or waive this with a reason where the size is intended; a waiver is highlighted in the report.","worth":"Not a fixed share: the error grows with how much the ground varies across the boundary. At 16,000 acres (25 square miles) a single Tc and a single hydrograph shape stand for the whole.","registry_key":"site.boundary_refuse_acres","waivable":true,"not_waivable_because":""},{"id":"CN-GEO-001","class":"structural","title":"The boundary crosses itself","fix":"Redraw the boundary without the crossing.","refuses":"an area for a self intersecting boundary","why":"Two non adjacent edges of the ring pass through each other, so the ring encloses one region positively and another negatively and the signed area is the difference between them. The bowtie is the common hand drawn case.","resolves":"fix the boundary. A crossing is not something a correct parcel boundary does, and the vertex order is usually what went wrong.","worth":"Unbounded and signed. A bowtie whose two lobes are equal measures exactly zero acres, and every acreage, volume and practice size on the site scales linearly with the figure.","registry_key":null,"waivable":false,"not_waivable_because":"the area of a self intersecting ring is not the ground the boundary describes, whoever signs for it. The signed excess formula returns a number, which is the danger: it is a difference of two regions rather than a measurement of one, and no attestation makes it the site."},{"id":"CN-GEO-002","class":"structural","title":"The boundary appears to cross the 180th meridian","fix":"Check the boundary's coordinates. Sites in the contiguous United States never cross it.","refuses":"a polygon that appears to cross the antimeridian","why":"The longitude span exceeds 180 degrees, which means the ring either wraps the date line or was digitised with a sign error. This engine's area, centroid and bounding box arithmetic is all planar in longitude and none of it wraps.","resolves":"split the polygon into two, one on each side of the meridian.","worth":"The area comes out as the complement of the site, which is the rest of the world. Nothing downstream can detect that from the magnitude alone.","registry_key":null,"waivable":false,"not_waivable_because":"the arithmetic in this module does not wrap, so waiving computes the area of the complement rather than of the site. The split is not a formality: it is what makes the two pieces measurable at all."},{"id":"CN-GEO-003","class":"structural","title":"A hole in the boundary is not inside its outline","fix":"Enter a separate area as its own part of the boundary, not as a hole.","refuses":"a hole that is not inside the ring it belongs to","why":"Every ring after the first in a boundary is a hole, and its area is subtracted. A ring outside the outline is therefore subtracted from ground the outline does not cover.","resolves":"check the boundary. The first ring is the outline and every later ring is a hole inside it, so a second, separate area has to be entered as its own part of the boundary rather than as a hole.","worth":"The acreage comes out smaller than the site, or the clamp at zero drives it to nothing, and either way it is a plausible looking number with nothing marking it.","registry_key":null,"waivable":false,"not_waivable_because":"the subtraction is arithmetically defined and geometrically meaningless, so waiving releases an acreage that is the site minus a piece of ground somewhere else. The ring order is the input that is wrong."},{"id":"CN-AST-001","class":"structural","title":"The assistant gave a number it could not trace to a result or a source","fix":"Ask again. The assistant may only state figures from your site's results, its record or a cited source.","refuses":"a generated sentence carrying a number that came from no engine run, no record field and no citation","why":"provenance.Origin has four members and there is no fifth. A numeral in generated prose that is in none of the site record, a citation marker or a labeled illustrative example came from the model, and a model is a reader of this engine's values and never a source of one.","resolves":"compute the figure through the engine and cite the run, read it off the record it is already on, or cite the retrieved passage that publishes it. Where none of those holds the number, the correct response is that this product does not have it.","worth":"Every other number in the response, and not only the invented one. A reader who catches one fabricated figure has no way to tell which of the rest were real, so the cost is the provenance of the whole page.","registry_key":null,"waivable":false,"not_waivable_because":"waiving does not supply an origin for the number. It records that a person signed for a figure whose source is still nothing, and the figure then travels downstream carrying a provenance chain whose first link is a signature under a sentence a language model wrote. On a report that is indistinguishable from a computed value, which is the one thing this product is sold on being able to distinguish."},{"id":"CN-AST-002","class":"structural","title":"The assistant stated a local requirement without a source","fix":"Ask again, or check the rule with the reviewing authority.","refuses":"a statement of what a jurisdiction requires, made with no retrieval hit behind it","why":"A regulatory statement may originate only in the encoded rule set or in a retrieved passage carrying a section identifier. With neither, the sentence is a recollection of what manuals usually say, and what manuals usually say is not what this jurisdiction requires.","resolves":"retrieve the governing passage and cite its section, or say plainly that the rule set for this jurisdiction contains no encoded requirement on the point and that the reviewing authority is the correct source. Adjacent encoded rules may be offered as context.","worth":"A design built to a requirement that does not exist, or missing one that does. Both fail at permit review, and the second fails after construction.","registry_key":null,"waivable":false,"not_waivable_because":"waiving cannot retrieve the passage. The refusal is about what was found rather than about what may be said, so a signature converts a recollection into an attested recollection and the manual is still unread. What resolves it is a search hit, which is an input rather than a permission, and where there is no hit the honest answer is the refusal itself."},{"id":"CN-AST-003","class":"structural","title":"The assistant used another jurisdiction's rule","fix":"Ask again about the jurisdiction this site is in.","refuses":"a rule applied or quoted from a jurisdiction other than the one the site resolved to","why":"Every rule application is keyed to a jurisdiction identifier derived from site geometry. A design storm, a water quality volume or a curve number credit imported from the next state produces a result that is plausible, internally consistent and not compliant anywhere.","resolves":"apply the rule set the site's geometry resolved to. Where the geometry straddles two jurisdictions the answer is to compute under each and say that the determination is an administrative matter this product cannot decide. Neighboring rules may be shown as explicitly labeled non governing context.","worth":"The whole of the regulatory conclusion, in the direction that looks right. Doc 05 Section 9.2 makes cross jurisdiction leakage a zero tolerance metric for exactly that reason.","registry_key":null,"waivable":false,"not_waivable_because":"the other jurisdiction's rule is not a conservative version of this one, it is a different rule, so waiving does not release a cautious answer: it releases the wrong answer with a signature under it. Nothing a person attests to makes a Maryland volume into a Virginia requirement, and the correct rule is a retrieval rather than a permission."},{"id":"CN-AST-004","class":"structural","title":"The assistant said a design is compliant or approved, which only a reviewer can say","fix":"Ask for the computed figure against the requirement instead.","refuses":"a generated assertion that a design is adequate, compliant, approved, certified or permit ready","why":"The CurveNumber validation plan makes this rule product wide: the product states what a rule requires and what the computed value is, and leaves the comparison and the conclusion to the user. An adequacy verdict is the determination a licensed professional accepts liability for, and this product is not that professional.","resolves":"present the computed value and the criterion from the cited section together with the shortfall or surplus, and say that whether the design satisfies local requirements is determined by the reviewing authority. The approved wording for this is held verbatim in the product.","worth":"The professional responsibility boundary itself. A user who reads an adequacy verdict has been told the answer to the one question the product exists not to answer.","registry_key":null,"waivable":false,"not_waivable_because":"a waiver cannot give this product standing it does not have. The conclusion would appear in a report wearing this engine's provenance, and the determination belongs to the engineer of record and to the reviewing authority, neither of whom is reachable from a dialogue in this application."},{"id":"CN-AST-005","class":"structural","title":"The assistant cited a document it had not looked up","fix":"Ask again; it has to cite a passage it actually found.","refuses":"a citation naming a document that was not retrieved in this turn","why":"Doc 05 Section 5.3 rule 3 prohibits citing a document the assistant has not retrieved in the current context. A marker written from memory is a claim about a section nobody read, and it is the most convincing thing a model can produce because it has the exact shape of a real citation.","resolves":"search the corpus and cite a passage that came back, or drop the claim. The set of passages retrieved this turn is known to the guard, which is the whole reason this prohibition is checkable rather than aspirational.","worth":"The audit trail, which is the product. A reviewer following a marker to a section that does not say what the sentence said has learned that none of the other markers can be trusted either.","registry_key":null,"waivable":false,"not_waivable_because":"waiving does not make the passage retrieved. The marker still names a section nobody opened, and the signature adds a second person's authority to a citation that has no first. What resolves it is a retrieval, and a retrieval is an act rather than a permission."},{"id":"CN-AST-006","class":"structural","title":"The assistant gave a design storm without its duration and source","fix":"Ask again for the depth with its duration, distribution and publisher.","refuses":"a design storm depth stated without its duration and its source","why":"Depth, duration, temporal distribution and return period are an inseparable tuple. Six inches means one thing over 24 hours and another over one, and the same nominal depth under Type IA and Type II differs by roughly a factor of five in the peak 30 minute fraction, which every rate based result scales with.","resolves":"state the depth with its duration, its distribution and the authority that publishes it, all four together. Where the rainfall source for the location is unavailable or the adopted source is ambiguous, decline the depth and name the authority that publishes it instead.","worth":"Every volume downstream of the storm. A depth is the first input to the whole calculation and an ambiguous one is wrong by the ratio between two durations, silently.","registry_key":null,"waivable":false,"not_waivable_because":"a depth with no duration is not an under specified number, it is several different numbers sharing a magnitude, and waiving picks none of them. The signature would attach to whichever duration the reader assumed, and different readers assume different ones. Naming the duration is an ordinary input and it costs nothing."},{"id":"CN-AST-007","class":"policy","title":"The assistant sounded more certain than the data allows","fix":"Ask again. With screening-level data the answer has to say it is an estimate.","refuses":"confidence vocabulary above what the governing data tier permits","why":"Doc 05 Section 6.6 binds the qualitative confidence vocabulary to the tier of the governing inputs rather than to the model's impression of them. A global baseline result described as well constrained reads to a user exactly like a result from the detailed United States surveys, and the two differ by the resolution of every contributing layer.","resolves":"use the row of the table the data actually sits on. The coarse global data may say screening level estimate and order of magnitude and must carry the mandatory statement that the result is not a design basis without local data verification. Waiving releases the stronger wording with the tier stated beside it.","worth":"What keeps the assistant honest about coarse data, the one thing standing between a coarse global result and a user who treats it as a United States survey. See registry entry assistant.confidence_tier_binding.","registry_key":"assistant.confidence_tier_binding","waivable":true,"not_waivable_because":""},{"id":"CN-AST-008","class":"policy","title":"The assistant's text for the report has claims without citations","fix":"Ask it to add the citations, or waive this to insert the text with the uncited sentences listed.","refuses":"the insertion into a report of a C1 to C4 claim carrying no citation marker","why":"Doc 05 Section 5.3 rule 1 is blunt that an uncited factual claim is a defect rather than a stylistic lapse. The coverage target is a figure this product chose, and a licensed engineer may reasonably hold that connective prose in a conversation does not need a marker on every clause.","resolves":"attach the marker, or restate the sentence so that it asserts nothing about the world. Waiving releases the response for report insertion with the uncited sentences listed beside it, which is what makes the waiver legible to a reviewer rather than invisible.","worth":"One sentence in a hundred over the evaluation set, and the reviewer's ability to audit the rest. See registry entry assistant.citation_coverage_target.","registry_key":"assistant.citation_coverage_target","waivable":true,"not_waivable_because":""},{"id":"CN-AST-009","class":"policy","title":"The assistant's text for the report has an interpretation not labeled as one","fix":"Ask it to label the interpretation, or waive this to insert the text with those sentences listed.","refuses":"the insertion into a report of an inference carrying no Interpretation label","why":"An unlabeled inference sitting between two cited computations inherits their authority, and the inference is the one sentence in the response that nothing checked. Doc 05 Section 5.3 rule 2 requires C5 claims to be visually distinguishable, and the threshold of zero unlabeled inferences is this product's choice.","resolves":"label the sentence Interpretation and name the C1 to C4 claims it rests on, or drop it. Waiving releases the response with the unlabeled inferences enumerated, so a reader still learns which sentences were judgment.","worth":"The reader's ability to tell which sentences to disbelieve first, which is the only defense anything has against a correct number supporting a wrong claim. See registry entry assistant.interpretation_label_threshold.","registry_key":"assistant.interpretation_label_threshold","waivable":true,"not_waivable_because":""},{"id":"CN-AST-010","class":"policy","title":"The assistant's answer was missing its required disclaimer","fix":"Ask again; the disclaimer is added word for word.","refuses":"a response missing the disclaimer that doc 05 Section 7.3 places on it","why":"The full statement goes on the first substantive response of a session and the short form on every sizing response and every response containing an adequacy comparison. A disclaimer that appears only after the reader has seen and acted on the number provides no protection and no honesty.","resolves":"append the approved disclaimer verbatim. It is held in all three lengths, and a paraphrase is a defect rather than a variant, because every paraphrase a model produces is friendlier and weaker than the sentence counsel wrote.","worth":"The placement rules of doc 05 Section 7.3 and doc 07 Section 6.4, which are a legal posture rather than a formatting preference. See registry entry assistant.disclaimer_placements.","registry_key":"assistant.disclaimer_placements","waivable":true,"not_waivable_because":""},{"id":"CN-AST-011","class":"structural","title":"The question is outside hydrology, so the assistant does not answer it","fix":"Ask the right professional; the assistant can answer the runoff part.","refuses":"an answer to a hydraulics, structural, geotechnical or water quality treatment question","why":"This engine computes rainfall to runoff and the sizing of storage that receives it. Bearing capacity, embankment safety, slope stability and pollutant removal are different disciplines with different methods, different failure modes and different licensure, and nothing in this product models any of them.","resolves":"state the discipline boundary, name the class of professional who answers the question, and return to the part of it this engine does compute. Where the question has a runoff component, answer that component and say which part was left.","worth":"Everything, and worse than nothing. An answer here is confident prose about a computation that was never performed, in a field where the failure mode is a collapse rather than a rejected submittal.","registry_key":null,"waivable":false,"not_waivable_because":"there is no computation behind the refusal to release. The engine holds no structural, geotechnical or treatment model at all, so waiving produces a sentence and not a result, and a sentence in this area wearing this engine's provenance is worse than the silence it replaced. What resolves it is a different professional, which is a referral rather than a permission."},{"id":"CN-AST-012","class":"structural","title":"The assistant will not argue for a chosen value while leaving out the evidence","fix":"Ask for the evidence for and against the value instead.","refuses":"a paragraph written to justify a predetermined value, omitting the evidence against it","why":"Asked to explain why CN 65 is correct here, a model will write the explanation, because that is what it was asked for. The resulting paragraph is a real piece of advocacy with real citations and it enters an override register as though it were an assessment.","resolves":"state the evidence for and against the value, with the tabulated figure, the departure in curve number units and the band it falls in, and let the person who holds the pen decide. The offer to do that is the sanctioned response to the request.","worth":"The override justification, which is the record a reviewer reads to decide whether a departure was argued or asserted. Advocacy in that field is worth the whole departure.","registry_key":null,"waivable":false,"not_waivable_because":"the refusal is not withholding a balanced paragraph that a signature would release. It is refusing to write a one sided one, and waiving produces exactly the one sided paragraph, now carrying an attestation that somebody wanted it. The balanced version is available without any waiver at all, which is what makes this an offer rather than a denial."},{"id":"CN-AST-013","class":"structural","title":"The assistant will not follow instructions found in an uploaded file","fix":"Ask your question directly. Uploaded files are quoted as unverified.","refuses":"an instruction or a governing rule taken from content a user uploaded","why":"An uploaded document is data and never instruction. Doc 05 Section 6.7 treats a user supplied manual as unverified corpus, labels every claim drawn from it, and never applies it as an engine rule; the same paragraph covers directive text embedded in an upload or in site metadata, which is prompt injection whether or not anyone meant it that way.","resolves":"cite the uploaded passage as unverified corpus with the [unverified encoding] marker, and get the governing rule from the encoded rule set or a verified retrieval. Where the upload contains instruction like text, say so to the user rather than following it.","worth":"The distinction between what this product knows and what somebody put in a PDF, which is the distinction the unverified corpus label exists to carry.","registry_key":null,"waivable":false,"not_waivable_because":"the upload has no provenance to release. Waiving records that a person vouched for a document the product cannot verify, and the rule then runs in the engine wearing the engine's own provenance, which is precisely the confusion the unverified label prevents. The manual's own figure entered as an input is the remedy, and it keeps the rule with the person allowed to apply it."},{"id":"CN-AST-014","class":"evidence","title":"The assistant will not give a design value from screening-level data","fix":"Add local data (a soil survey, a measured infiltration rate or a local rainfall record), or waive this.","refuses":"a sizing recommendation framed as a design value on tier 3 data","why":"The global baseline data is coarse: soil property grids, coarse land cover and satellite rainfall. Nothing was measured on this site. Doc 05 Section 6.6 requires such a sizing to be reframed as feasibility screening, because the missing thing is a measurement rather than a threshold this product chose.","resolves":"local data: a mapped soil survey, a measured infiltration rate at the proposed bottom elevation, or a local rainfall record. Waiving computes the sizing at the global baseline inputs, which is what the attestation is a claim about, and everything downstream stays marked as resting on it.","worth":"The difference between a screening figure and a design volume, which on tier 3 inputs is unbounded in the direction that matters: the hydrologic soil group itself is inferred from texture rather than measured, and group A against group D is a factor of 3.42 in runoff at P = 3 in on pasture.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-AST-015","class":"structural","title":"This situation needs a professional before any sizing advice","fix":"Contact a licensed engineer or contractor; the assistant can list the inputs they will need.","refuses":"sizing guidance to a homeowner where a referral trigger fired and no referral was issued","why":"Doc 07 Section 6.5 makes structural adequacy, dam and embankment safety, flood risk to habitable structures, slope stability and contaminated site drainage hard refusals in the homeowner tier. There is no licensed intermediary to catch an inapplicable result, and in the slope case the exposure is life safety.","resolves":"issue the referral unprompted, before the sizing guidance rather than after it, naming the specific trigger rather than a generic caution, and offer the assumptions and inputs summary that a professional or contractor can work from.","worth":"A saturated foundation, a destabilised slope or a discharge onto a neighbor's property. These are property damage and nuisance exposures and, in the slope case, a life safety one.","registry_key":null,"waivable":false,"not_waivable_because":"the trigger fired on a condition of the site and a waiver does not unfire it. Waiving would record that somebody accepted sizing guidance next to a slope stability question, and the guidance is not more correct for having been accepted: the computation behind it never modeled the slope at all. The referral costs one sentence and is the only thing here that addresses the actual exposure."},{"id":"CN-AST-016","class":"structural","title":"The assistant stated a curve number that is not the table's value","fix":"Ask again; it has to quote the TR-55 value for the cover and soil group named.","refuses":"a stated curve number that is not the published cell for the cover and hydrologic soil group the sentence names","why":"A tabulated curve number is not a number, it is a number at a key, and the key is the cover, the hydrologic condition and the soil group together. Read without the key it is indistinguishable from the three cells beside it in its own row, which on TR-55 Tables 2-2a to 2-2d differ by enough to change a pipe size. A response that names the cell and states a different figure has misattributed a published value, which is the one failure this product cannot absorb: every number it shows is supposed to carry where it came from.","resolves":"state the figure the transcribed table publishes for the cover and group named, or name the cell the figure really belongs to. The engine's own lookup returns one cell for one group and will say which.","worth":"The difference between two rows of the same table. Open space in poor condition on group C is 86 and the fair row's group D cell is 84, and a response that offered the second as the first was shown to a hydrologist on 20 September 2026 with the guard raising nothing.","registry_key":null,"waivable":false,"not_waivable_because":"there is no threshold behind it to release. The published table says what it says, and a waiver would record that somebody accepted a figure attributed to a cell that does not hold it, which does not make the cell hold it. The remedy costs one lookup and the waiver costs the provenance of every other number on the page."},{"id":"CN-GEO-004","class":"structural","title":"The boundary is not a closed shape","fix":"Use at least three distinct points. If a latitude is out of range, the longitude and latitude are probably swapped.","refuses":"a ring that is not a ring","why":"Fewer than three points encloses no area, and a longitude or latitude outside its own range is not a coordinate on this ellipsoid. Both are malformed input rather than a hard site.","resolves":"supply a ring of at least three distinct points with longitudes in [-180, 180] and latitudes in [-90, 90]. GeoJSON order is longitude first, which is the usual cause when the latitude is out of range.","worth":"Nothing is computable from it. A degenerate ring measures zero and an out of range coordinate measures nonsense.","registry_key":null,"waivable":false,"not_waivable_because":"there is no polygon here to measure. A waiver cannot supply the third point or move a latitude back inside its own range, and those are the whole of what is missing."},{"id":"CN-OBS-001","class":"evidence","title":"The observed record has no unit, or one CurveNumber does not convert","fix":"Give the unit: cfs or m3/s for flow, in, mm or cm for rainfall.","refuses":"an observed series whose unit is absent, or is one this engine does not convert","why":"Discharge arrives in cubic feet per second and in cubic meters per second, rainfall in inches and in millimeters, and the two discharge units differ by a factor of 35.3. A series whose unit is guessed from the size of its numbers is guessed correctly on most records and wrongly on small catchments, where a plausible figure in one unit is a plausible figure in the other. The engine does not guess.","resolves":"declare the unit on the series. Discharge is accepted as cfs, ft3/s, m3/s or cms; rainfall as in, mm or cm. A unit outside that set is converted by the caller, who knows what it is, rather than by this engine, which would be inferring it.","worth":"The whole record. A discharge series read as cfs when it is m3/s understates the runoff volume by a factor of 35.3 and the fitted curve number falls to the bottom of its range, which looks like a well drained catchment rather than like a unit error.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-OBS-002","class":"structural","title":"The observed record's times have no time zone, or are out of order","fix":"Export the record with a time zone offset on every time, in order, with no repeats.","refuses":"a series whose timestamps are naive, out of order, or repeated","why":"A timestamp with no offset is not an instant. In a zone that observes daylight saving, one local hour each autumn occurs twice and one each spring does not occur at all, so a naive series across either has no ordering the engine can recover and an hour of discharge that is either duplicated or missing. Out of order or repeated timestamps are the same failure arriving already visible.","resolves":"attach an offset to every timestamp: pass timezone aware datetimes, in UTC or in the local zone with its offset. A USGS RDB file gives the zone on each row in its tz_cd column (EST, EDT and so on), and the upload reads that column. A record exported to a spreadsheet and back is the usual way the offset is lost.","worth":"Nothing is computable. A duplicated hour integrates twice into the runoff volume and a missing one integrates not at all, and neither is visible in the result.","registry_key":null,"waivable":false,"not_waivable_because":"there is no instant behind a naive local timestamp for a waiver to release. A signature cannot say which of the two one o'clocks a reading was taken at, and the engine would still have to pick one."},{"id":"CN-OBS-003","class":"policy","title":"A gap in the observed record is too long to fill in","fix":"Get the missing interval from the agency, pick events that avoid it, or waive this.","refuses":"bridging a missing interval longer than the interpolation limit","why":"A straight line through a gap is a fabricated measurement that is indistinguishable from the real ones on either side of it. Short gaps between events sit on a baseflow recession that is changing slowly, where the line is close to harmless; long ones are not, and there is no length at which the engine can tell which it is dealing with except by the threshold this product chose.","resolves":"shorten the gap by retrieving the interval from the agency, which often publishes a revised record later; select events that do not span it, which the event selection does automatically; or waive the threshold, which records that a named person accepted a straight line of a stated length.","worth":"The discharge across the gap, which enters the direct runoff volume of any event that spans it. Every interpolated sample is flagged on the series and the flag reaches the report, so a waived gap is visible in the record rather than only in the waiver.","registry_key":"observed.max_interpolated_gap_hours","waivable":true,"not_waivable_because":""},{"id":"CN-OBS-004","class":"structural","title":"An event has missing data during its runoff","fix":"Leave the event out, or get the missing interval from the agency.","refuses":"integrating direct runoff across a missing interval inside the event","why":"The quantity being measured IS the area under the hydrograph, and a gap is a piece of that area that was not measured. This is a different refusal from CN-OBS-003 and not a stricter setting of it: outside an event a gap sits on a slowly changing baseflow, and inside one it sits on the limb that carries the volume the whole calibration rests on.","resolves":"drop the event from the fitting set, which the selection does on request and which costs one event out of however many the record holds; or obtain the missing interval, which is the only thing that recovers the volume.","worth":"The event, not the record. Every other event stands, and the per event curve numbers of the surviving events are unaffected.","registry_key":null,"waivable":false,"not_waivable_because":"the volume across the gap was not measured, and a waiver does not measure it. What a waived integration would report is the area under a line this engine drew, presented as the area under a hydrograph the gauge recorded, which is the one substitution the whole product is sold on refusing."},{"id":"CN-OBS-005","class":"structural","title":"The agency marks these flow readings as unreliable","fix":"Pick events outside the affected period, or use the agency's revised values.","refuses":"a discharge sample whose quality flag says the rating does not apply","why":"Ice affected, equipment malfunction and backwater affected are not statements that a discharge is uncertain. They are statements that the stage the gauge recorded does not correspond to a discharge through the published rating, because the relationship the rating describes was not in force. The number beside such a flag is a stage put through a curve that does not apply to it.","resolves":"select events outside the affected period, which on an ice affected gauge means the warm season and on a backwater affected one means events not coincident with the backwater source; or obtain the agency's later revised estimate for the period, which will carry an estimated flag and is then governed by CN-OBS-007 rather than by this refusal.","worth":"Every sample so flagged and every event that contains one. Nothing else on the record is affected.","registry_key":null,"waivable":false,"not_waivable_because":"there is no discharge behind the flag to release. The agency is not withholding a figure; it is saying that the figure shown was produced by applying a rating to a condition the rating does not cover, and a signature does not make the rating cover it."},{"id":"CN-OBS-006","class":"evidence","title":"The observed record uses a quality code CurveNumber does not know","fix":"Say what the code means, from the agency's published list.","refuses":"a quality flag this engine holds no meaning for","why":"The flag vocabularies of the public services are published, revised, and extended, and a code this engine does not hold may mean approved, may mean estimated, or may mean that the rating was not in force. Treating an unknown code as benign is the assumption that fails silently, because the three treatments differ by whether the sample is used, marked or refused.","resolves":"map the code, by naming what it means from the agency's own published list when the series is built. CurveNumber holds the codes it was transcribed with, says which list they came from, and says that the list has not been independently checked.","worth":"The samples carrying the unknown code. Whether that is the whole record or none of it depends on the code, which is the reason it cannot be assumed.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-OBS-007","class":"policy","title":"Too much of this event is provisional or estimated data","fix":"Wait for the agency's review, pick older events, or waive this.","refuses":"an event more of whose samples are provisional or estimated than the threshold admits","why":"A provisional value is a real measurement the agency has not yet reviewed and may revise; an estimated one is the agency's own model output at an interval where nothing was measured. Neither is wrong and neither is a reviewed observation, and a curve number fitted mostly to estimates is a fit to somebody else's model with a gauge's name on it.","resolves":"wait for the agency's review, which converts provisional values to approved ones on a published schedule; select older events, which are more likely to be reviewed; or waive the threshold, which records that a named person accepted the proportion.","worth":"The event. The proportion of qualified samples is carried on every event whether or not it is refused, so a reviewer sees the figure rather than only the verdict.","registry_key":"observed.max_qualified_fraction","waivable":true,"not_waivable_because":""},{"id":"CN-GAU-001","class":"structural","title":"The gauge's drainage area is needed to relate it to the site","fix":"Enter the gauge's drainage area, as a boundary or at least an area.","refuses":"a relationship between a gauge and a site where the gauge's contributing watershed was not supplied","why":"Without the contributing area there is nothing to test. Proximity is not the relationship: the watershed boundary can run between a gauge and a parcel a few hundred feet from it, and a parcel ten miles upstream can be inside it. An engine that answered from a distance would be answering a different question from the one asked.","resolves":"supply the delineated contributing area at the gauge, as a boundary or at minimum as an area, together with the site boundary. The agencies that publish gauge records publish the drainage area with them, and a delineation from a digital elevation model produces the boundary.","worth":"Every claim that a gauged fit says anything about this site. The fit itself is unaffected and is still reported, as a property of the gauged catchment, which is what it is in every case.","registry_key":null,"waivable":false,"not_waivable_because":"there is no contributing area to compare the site against, so waiving this produces no finding. Containment is not a threshold a person can take a different view of; it is a question about where a divide runs, and with no divide supplied the engine would record a signature where a measurement should be. Supply the delineated contributing area and the question is answered rather than overruled, which is the same act a waiver here would be claiming to have performed."},{"id":"CN-GAU-002","class":"structural","title":"The site is not inside the gauge's drainage area","fix":"Use a gauge downstream of the site, or gauge the site's own outfall.","refuses":"transferring a gauged fit to a site that is not inside the gauge's contributing watershed","why":"Water that falls on the site does not pass the gauge. The record at the gauge is a measurement of other ground, and no property of the site appears in it at any weight. A site that is partly inside is the same statement about the part that is outside, and the engine cannot say what fraction of the measured runoff came from the part that is inside.","resolves":"use a gauge whose contributing area contains the site, which is usually the next gauge downstream; or gauge the site's own outfall, which is the only measurement that is of the site.","worth":"Nothing is being withheld. There is no figure here that describes the site, because the record does not contain the site's water.","registry_key":null,"waivable":false,"not_waivable_because":"a waiver cannot move the watershed divide. What the refusal says is a fact about where water goes, and a signature under it produces the same fitted number attributed to ground that does not drain to the gauge it was fitted at."},{"id":"CN-GAU-003","class":"policy","title":"The site is too small a part of the gauged area to share its curve number","fix":"Use the fit as the gauged area's curve number, gauge the site itself, or waive this.","refuses":"calling a gauged fit this site's curve number when the site is a small fraction of the gauged watershed","why":"The fitted figure is an area weighted property of everything that drains to the gauge. Where the site is a small part of that, almost all of the information in the fit comes from ground the site does not contain, and the figure describes the watershed. This is the sentence the task list puts plainly: nearby gauges are not automatically site calibration, and the engine refuses rather than warning, because a warning beside a number is read as a number.","resolves":"gauge the site's own outfall, which makes the fraction one; use the fit as what it is, a calibration of the gauged catchment, which this engine reports either way and which is a legitimate and useful figure; or waive the threshold with the argument for why this site and the rest of that watershed respond alike, which is the claim being made and which the waiver then records in the person's own words.","worth":"The attribution and not the arithmetic. The fitted curve number, its interval and its diagnostics are identical either way; what the refusal governs is whether the product will print it against this site's name.","registry_key":"calibration.min_site_fraction_of_gauge","waivable":true,"not_waivable_because":""},{"id":"CN-GAU-004","class":"policy","title":"One rain gauge cannot stand for rainfall over an area this large","fix":"Use an areal rainfall estimate, fit a smaller area, or waive this.","refuses":"one rain gauge treated as the areal rainfall of a catchment larger than the single gauge limit","why":"A rain gauge measures a point about eight inches across and the fit needs the mean depth over the catchment. The difference between the two is absorbed entirely into the curve number, where it is indistinguishable from a property of the soil, and its sign is not predictable: a gauge that caught the cell reads high and the fitted curve number comes out low, and a gauge that missed it does the reverse.","resolves":"supply an areal rainfall estimate, from a radar product or from a gauge network already reduced to an areal depth by whoever holds the network; or restrict the fit to a catchment small enough that the point assumption is defensible; or waive the threshold, stating the basis for treating this gauge as representative of this catchment.","worth":"The rainfall depth of every event, which is one of the two numbers the fit sees. It is the input the fitted curve number is most sensitive to and the one least often questioned.","registry_key":"calibration.single_rain_gauge_area_sqmi","waivable":true,"not_waivable_because":""},{"id":"CN-GAU-005","class":"structural","title":"CurveNumber does not combine several rain gauges","fix":"Combine them into one areal series elsewhere, name the method, and upload that.","refuses":"combining two or more rainfall series into an areal depth","why":"This engine holds no areal weighting method. Thiessen polygons, isohyetal analysis and inverse distance weighting each produce a different areal depth from the same gauges, each needs the gauge positions and the catchment boundary, and the choice between them moves the fitted curve number. Averaging them, which is what a caller handed several series would expect, is none of the three.","resolves":"reduce the gauges to one areal series outside this engine, with the method named, and supply that series with its basis recorded; the engine will carry the statement through to the report.","worth":"Nothing is withheld, because there is no areal depth here to release. There are several series and no method in this engine for combining them.","registry_key":null,"waivable":false,"not_waivable_because":"a waiver would authorize an arithmetic this engine does not contain. There is no weighting to release and no default to fall back to, and a mean of the gauges is a fourth method nobody chose."},{"id":"CN-CAL-001","class":"evidence","title":"Too few events to fit a curve number","fix":"Add more events, usually a longer record from the same gauge.","refuses":"a fitted curve number from fewer events than the floor, and any interval formed from them","why":"A curve number fitted to one event is that event's own inversion and carries no information about any other storm. A bootstrap over a handful of events has few distinct resamples, so the interval it returns describes the resampling rather than the record, and an interval that describes its own procedure is worse than no interval because it prints in the place a real one would.","resolves":"supply more events, which usually means a longer record from the same gauge rather than a different gauge. Below the floor the engine still reports the per event curve numbers, which are arithmetic on each event and are not a fit, and they are the right thing to look at while the record is short.","worth":"The fitted value and its interval. The per event inversions, the separated hydrographs and the event volumes are all reported and are unaffected.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-CAL-002","class":"structural","title":"A curve number cannot be fitted to peak flows alone","fix":"Fit to runoff volume, then compare the peaks as a check.","refuses":"a curve number inferred from a peak flow match alone","why":"The peak of a simulated hydrograph depends on the time of concentration, the unit hydrograph's shape and peak rate factor, and the temporal distribution of the rainfall, as much as it depends on the curve number. A curve number chosen to make the peaks agree is therefore absorbing the error in whichever of those is wrong, and it will reproduce the peak while getting the volume wrong, which is the quantity practices are sized on.","resolves":"fit to the direct runoff volume, which is what the curve number method produces and what the calibration does. Once the volume is fitted, compare the peaks as a check: a volume fit that reproduces the peak is evidence about the unit hydrograph, and one that does not is the same evidence pointing the other way. The calibration reports both.","worth":"Nothing that should be released. A peak matched curve number exists and is computable, and what it is worth is a number that reproduces one quantity the method does not predict while misstating the one it does.","registry_key":null,"waivable":false,"not_waivable_because":"the curve number method has no peak in it. Q = (P - Ia)^2 / (P - Ia + S) is a depth, and every peak this engine computes comes from putting that depth through a unit hydrograph. A waiver would release a parameter fitted through three other parameters' errors, and the signature would be under the one number in the chain that was not being tested."},{"id":"CN-CAL-003","class":"policy","title":"The curve number and the abstraction cannot be fitted together from these events","fix":"Fit with the abstraction fixed (the default), or add events with a wide range of rainfall.","refuses":"a joint fit whose parameters are correlated above the identifiability threshold","why":"The curve number and the initial abstraction ratio are not independently identifiable from runoff volumes. Raising the ratio takes water off the front of the storm and lowering the curve number takes it off throughout, and over a set of events of similar size the two are very nearly the same operation. The objective is then a ridge, every point on which fits the data about as well, and the pair reported is the point the search stopped at.","resolves":"fit with the abstraction fixed, which is the default path and is identifiable; or supply events that separate the two parameters, which means events spanning a wide range of rainfall depth and especially events near the abstraction threshold, where the ratio's effect is largest relative to the retention's; or waive the threshold, which records that a named person accepted a pair the data does not separate.","worth":"The split of the loss between the abstraction and the retention. The total volume the fitted pair reproduces is right and is reported; what is not determined is either parameter on its own, and it is the parameters that get quoted.","registry_key":"calibration.max_parameter_correlation","waivable":true,"not_waivable_because":""},{"id":"CN-CAL-004","class":"structural","title":"The events do not settle on one curve number","fix":"Read the per-event curve numbers against rainfall, or add larger events.","refuses":"a single fitted curve number for a record whose per event curve numbers do not settle","why":"Hawkins (1993) separates catchments whose per event curve numbers decline with rainfall depth toward a constant, where one curve number describes the catchment, from those that decline without approaching anything, which he calls complacent. On a complacent record the fitted value is a function of the largest event in the set: add a larger storm and the fit moves again, with no sign of stopping.","resolves":"report the per event curve numbers against rainfall depth, which is the honest description of a complacent catchment and which this module returns; or extend the record with larger events, which is the only thing that shows whether an asymptote exists beyond the range observed so far.","worth":"Nothing that can be released. A complacent record has no curve number to withhold: the sequence the data traces does not converge, and a number taken from the end of it is the last observation dressed as a parameter.","registry_key":null,"waivable":false,"not_waivable_because":"the refusal is a statement about the shape of the data and not about a threshold in the product. A waiver would release the fitted figure, which is the fit's value at the largest observed rainfall and which moves whenever a larger storm is added. Signing for it fixes nothing and records a parameter that the next year of record will contradict."},{"id":"CN-CAL-005","class":"evidence","title":"The baseflow method was not chosen","fix":"Choose a baseflow method; CurveNumber also shows the range across all of them.","refuses":"a separation of baseflow with no convention named","why":"Nothing measures baseflow. Separation is a family of conventions for dividing a hydrograph that arrives undivided, the conventions disagree, and the disagreement moves the fitted curve number by more than this product's own smallest override band. A default here would be one convention chosen by whoever wrote the module, applied invisibly, and reported as though the separation were a measurement.","resolves":"name the baseflow convention. CurveNumber lists the conventions it holds, each with its source and its parameters, and refits the record under every one of them and reports the range, which is the figure that says what the choice was worth on this record.","worth":"The direct runoff volume of every event, and so the fitted curve number. It is the largest single discretionary influence on the answer in this whole module.","registry_key":null,"waivable":true,"not_waivable_because":""},{"id":"CN-CAL-006","class":"structural","title":"Curve numbers fitted at different abstraction ratios cannot be compared","fix":"Fit at the table's ratio (the default), or compare runoff depths instead.","refuses":"comparing a curve number fitted at one abstraction ratio with a curve number tabulated at another","why":"TR-55 Table 2-2 was fitted with the initial abstraction taken as 0.2 S, and the retention is the term that absorbed the fit. A curve number fitted at another ratio is a parameter of a different relation that happens to be written with the same letters, and the difference between it and a tabulated value is not a departure of the site from the table. The one published conversion CurveNumber applies is from 0.2 to 0.05.","resolves":"fit at the tabulated ratio, which makes the comparison sound and is what the fixed abstraction path does by default; or compare the two relations on the quantity they both predict, which is the runoff depth at a stated rainfall, and which this module reports.","worth":"Nothing is withheld. Both numbers are reported; what is refused is their difference, which is not a quantity.","registry_key":null,"waivable":false,"not_waivable_because":"the two figures are not measurements of one thing. A waiver would release a subtraction between parameters of two different relations, and the result has no units in which to be wrong, which is why it would be quoted."},{"id":"CN-CAL-007","class":"structural","title":"An event shows more runoff than rainfall","fix":"Check the drainage area and the rain gauge, and leave out snowmelt or release events.","refuses":"an event whose observed direct runoff depth is not less than its rainfall depth","why":"The curve number method returns a runoff depth strictly below the rainfall depth for every curve number in its range, approaching it only as the retention approaches zero. An event with as much runoff as rainfall therefore has no curve number that fits it, and the inversion runs to the top of the range and reports 100, which reads as an impervious catchment rather than as an impossibility. The usual causes are real and worth naming: a rain gauge that missed the storm, a contributing area smaller than the one supplied, snowmelt, or an upstream release.","resolves":"check the contributing area, which enters the runoff depth directly as a divisor; check the rainfall record against a second gauge; and exclude events with snowmelt or a known upstream release, neither of which the curve number method describes.","worth":"The event. Nothing is being withheld from it, because no curve number produces it.","registry_key":null,"waivable":false,"not_waivable_because":"there is no curve number that fits the event. A waiver would release the top of the search range, 100, which is not a fit to the data but the boundary the search ran into, and it would enter a fitting set as though it were an observation of an impervious catchment."},{"id":"CN-CAL-008","class":"policy","title":"An event's runoff is cut off by the next storm","fix":"Pick events with longer dry periods between them, or waive this.","refuses":"integrating direct runoff for an event whose recession is cut off by the next event","why":"The integration window has to contain the whole of the event's direct runoff and none of the next event's. Where the hydrograph has not returned toward baseflow before the next storm begins, both conditions fail at once: this event's tail is missing and the next event's rise is included, and the two errors have opposite signs on the two events.","resolves":"select events with a longer inter event period, which drops events rather than corrupting them; or waive the threshold, recording the fraction the hydrograph actually returned to, which the refusal carries.","worth":"The event's runoff volume, one sided low, and the next event's, one sided high. The fraction the recession actually reached is on the refusal, so the size of the truncation is visible rather than only the fact of it.","registry_key":"calibration.recession_return_fraction","waivable":true,"not_waivable_because":""},{"id":"CN-DIA-001","class":"structural","title":"A fit cannot be checked against the events it was fitted to","fix":"Hold some events out for checking before fitting.","refuses":"validating a fit against an event the fit was made on","why":"A model evaluated on the data it was fitted to reports how well the fitting worked and not how well the model predicts. The curve number fit has one parameter and a handful of events, so the difference is large: the fitted set's volume error is driven to near zero by construction, and that number is the one that gets quoted.","resolves":"hold events out before fitting. The record is split into fitting events and checking events that share no event, and the check is only ever run on the checking events.","worth":"Nothing is withheld. The fitting set's own errors are computed and reported under their own name, which is the honest use of them; what is refused is calling them validation.","registry_key":null,"waivable":false,"not_waivable_because":"the number a waiver would release already exists and is already reported, as the fit's residuals. There is no second quantity here being held back. Relabelling residuals as validation is the whole of what the waiver would buy, and that is a statement about the evidence rather than a threshold to release."},{"id":"CN-DIA-002","class":"structural","title":"One goodness-of-fit number is not shown on its own","fix":"Read the volume, peak and timing errors reported with it.","refuses":"a single goodness of fit number reported on its own","why":"Volume error, peak error and timing error are three different failures and a model can be excellent at one and useless at another. A design volume comes from the volume, a pipe size comes from the peak, and a downstream coincidence comes from the timing, so collapsing them into one figure discards precisely the information a reader would use to decide whether the model is fit for their purpose.","resolves":"report the three errors, which Diagnostics.summary does and which every caller in this engine uses. Nash-Sutcliffe is computed and carried alongside them with its pathologies stated on the value itself; it is not withheld, it is simply never alone.","worth":"Nothing. Every component figure is reported; what is refused is a weighting of them that nobody published and that would be read as a verdict.","registry_key":null,"waivable":false,"not_waivable_because":"there is no published weighting of volume against peak against timing for a waiver to release. Any single number would be this product's own weighting presented as a score, and a reader cannot recover the three from the one."},{"id":"CN-DIA-003","class":"structural","title":"Nash-Sutcliffe is undefined when the observed flow never varies","fix":"Read the volume, peak and timing errors instead.","refuses":"a Nash-Sutcliffe efficiency on a series whose observed variance is zero","why":"The efficiency is one minus the ratio of the residual sum of squares to the variance of the observations about their own mean. On a flat observed series that denominator is zero, and the expression is not large or small but undefined. This is the clearest case of the pathology the statistic has everywhere: it is normalized by the observed variance, so it flatters a model on a variable record and punishes the same model on a flat one, and efficiencies from two events are not comparable.","resolves":"read the volume, peak and timing errors, which are defined on this series and are reported; or compare against a series with variation in it, which is any event hydrograph.","worth":"Nothing. The quantity is undefined rather than withheld, and the three errors the summary leads with are all available.","registry_key":null,"waivable":false,"not_waivable_because":"the denominator is zero. There is no value of the statistic here for a signature to release, and substituting a convention such as zero or negative infinity would put a comparable looking number beside efficiencies that mean something."}],"classes":{"policy":"A threshold this product chose. There IS a number behind the refusal and a waiver releases it.","evidence":"A missing measurement rather than a chosen threshold. A waiver is an attestation about the world, so it demands what the attestation rests on, and everything computed downstream stays marked as resting on it.","structural":"There is no number behind the refusal to release. A waiver cannot be constructed at all: the attempt answers 422 with the reason waiving would not produce a number and what would actually resolve it."},"note":"An id is allocated once and never reused, not even after it is retired, and it names the refusal rather than the code that raises it. These ids go into reports and customers' email and have to mean the same thing next year."}